開発環境
ライブラリのインストール
以下で必要なライブラリを入れます
pip install soundfile espnet_model_zoo torch sudo pip install soundfile espnet_model_zoo torch
アライメント処理
以下を参考にコードを書いていきます。
モデルは reazon-research/reazonspeech-espnet-v2を使用します
espnet_model_zooを使用する場合は、以下から任意のモデルを指定してください
import soundfile from espnet_model_zoo.downloader import ModelDownloader from espnet2.bin.asr_align import CTCSegmentation d = ModelDownloader(cachedir="./modelcache") # esp model zooの場合 # model = d.download_and_unpack("Shinji Watanabe/laborotv_asr_train_asr_conformer2_latest33_raw_char_sp_valid.acc.ave") # hfの場合 model = d.download_and_unpack("reazon-research/reazonspeech-espnet-v2") speech, rate = soundfile.read("VOICEACTRESS100_001.wav") duration = len(speech) / rate print(f"音声ファイルの長さ: {duration:.2f}秒") aligner = CTCSegmentation(**model, kaldi_style_text=False) text = ["また、東寺のように、五大明王と呼ばれる、主要な明王の中央に配されることも多い。"] segments = aligner(speech, text) print(segments)
実行結果は以下です
音声ファイルの長さ: 6.91秒 WARNING:root:No RNN model detected; memory consumption may be high. utt_0000 utt 0.02 41.39 -4.9689 また、東寺のように、五大明王と呼ばれる、主要な明王の中央に配されることも多い。
音声の長さを正確には取れていないですが、アライメントの精度は取得できそうです