Montreal Forced Alignerを使って音素アライメントをしてみた
はじめに
研究に使用しているデータセットに 音素ラベル が含まれていなかったため、Montreal Forced Aligner (MFA) を使って音素アライメントを試してみました。
データセットには、各発話に対応する .wav
ファイルとその発話内容.txt
が含まれていますが、音素ラベルが付与されていないため、MFAで音声データとテキストデータを基にアライメントを試してみました。
環境構築
環境構築には、GitHubで提供されているDockerfileを使用しました。
git clone https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner.git
cd Montreal-Forced-Aligner
docker build -t mfa-aligner .
docker runの際にはデータセットのディレクトリをマウントします。
音素辞書の作成
音素アライメントを行うには、まず音素辞書が必要です。これはg2p(Grapheme-to-Phoneme)モデルを使って作成しました。.wav
ファイルと同じディレクトリに発話ラベル.txt
ファイルも配置します。音声.wav
に対する発話ラベル.txt
のファイル名は同じになるようにします。
以下のコマンドを使用して、英語のg2pモデルをダウンロードし、音素辞書を作成しました:
# g2pモデルのダウンロード
mfa model download g2p english_us_mfa
# 音素辞書の作成
mfa g2p /path/to/wav english_us_mfa /output/path/hoge.txt
音素アライメントの作成
音素辞書と音声ファイルを用意したら、次は実際の音素アライメントを行います。以下のステップで進めました:
- 音響モデルのダウンロード:
mfa model download acoustic english_mfa
- 音素アライメントの実行:
mfa align /path/to/wav /hoge.txt english_mfa /output/forcedalign
このコマンドでは、先ほど作成した音素辞書(hoge.txt
)を使用しています。
まとめ
Montreal Forced Alignerを使用することで、既存のWAVファイルに対して音素アライメントを行うことができました。