Juliusによる音素アライメント(音素セグメンテーション) on MacOSX(Yosemite)
オープンソースの汎用大語彙連続音声認識エンジン、Juliusを用いて音声認識ではなく強制音素アライメントを行います。 音素アライメントとはある音声ファイルに含まれる音素(分節音)の開始・終了時間を自動認識する技術となります。
事前に必要な物
Homebewを使っていれます.
- portaudio
brew install --universal portaudio
- flex
brew install flex
Julius本体のインストール
Julius
こちらから最新版のJuliusをダウンロード。今回は4.3.1。
解凍・コンパイル
tar xvzf julius-4.3.1.tar.gz cd julius-4.3.1/ env CFLAGS='-arch i386' LDFLAGS='-arch i386' ./configure --disable-mac-universal make sudo make install
単語・音素セグメンテーションキットのダウンロード
githubから落としてきます
git clone git@github.com:julius-speech/segmentation-kit.git
segmentation-kit/
直下にあるsegment_julius.pl
を修正します。segment_julius.plの45~50行目のelse文の箇所を変えます。
## julius executable if ($^O =~ /MSWin/){ $juliusbin=".\\bin\\julius-4.3.1.exe"; } else { $juliusbin="./bin/julius-4.3.1"; }
$juliusbin="./bin/julius-4.3.1";
ここのパスをインストールしたjuliusの実行場所を確認し、変更します。
$which julius > /usr/local/bin/julius
## julius executable if ($^O =~ /MSWin/){ $juliusbin=".\\bin\\julius-4.3.1.exe"; } else { $juliusbin="/usr/local/bin/julius"; }
動作確認
segmentation-kit/wav
フォルダにあるsample.wav
、sample.txt
を使用します。ちなみにwavファイルは16kHzである必要があるようです(変えられるのかな?)。
sample.txt
のテキストはこんな感じ。ひらがなで書きます。
きょーわいいてんきだ
wavファイルと書き起こしのtxtファイルを用意し、segment_julius.pl
を実行します。
perl segment_julius.pl wav/sample.wav wav/sample.txt
実行された音素アライメントの結果がwav/sample.labに書き出されます。
0.0000000 0.2425000 silB 0.2425000 0.3325000 ky 0.3325000 0.5725000 o: 0.5725000 0.6925000 w 0.6925000 0.7725000 a 0.7725000 0.8925000 i 0.8925000 0.9925000 i 0.9925000 1.0825000 t 1.0825000 1.1825000 e 1.1825000 1.2825000 N 1.2825000 1.4025000 k 1.4025000 1.4525000 i 1.4525000 1.5125000 d 1.5125000 1.6125000 a 1.6125000 2.0525000 silE
参考
http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/24.html#cb2d81f0
音声認識 Julius 4.2.3 + Mac OSX Mountain Lion 10.8.4 でビルドする方法 - Qiita