前回はJuliusの音声認識パッケージの準備を行い、YouTubeからダウンロードした動画データから音声をモノラルで抽出し、WAVファイル化し、音声が編集できるところまで実施した。
サウンドドライバの設定
前々回でサウンドドライバを設定している。
毎回コマンドを打たなくても済むように、.profileに下記の行を追加しておく。
ターミナルを立ち上げ直すかsourceコマンドで有効にしておく。
Julius音声認識パッケージ ディクテーションキットを使う
ディクテーションキットを使って、初回の確認で使用したWAVファイルから文字起こしをしてみる。 sample.wavには「リンゴ 3 個 を ください」と入っている。下記コマンドで起動すると enter filename-> が出るので/home/UserName/julius/grammar-kitにあるsample.wavを入力する。
ディクテーションキットの起動方法はrun-linux-gmm.shとrun-linux-dnn.shに書かれている。実行権限が付いていないので、コピペして -nostrip オプションを付与して起動する。まずは run-linux-dnn.shで確認。
困ったぞ。リンゴ、ぶどう、蜜柑と個数とちょっとした助詞などしかない辞書なら
と帰ってくるのに、
になってしまう。
続いてrun-linux-gmm.shを参考に実行。
結局「ビンボー さん と ください」とか「貧乏 参考 ください」である。
ということでYouTubeからダウンロードして作成したWAVファイルに進むのはやめ、他のキットを試してみることに。なお、~model/lang_m/00readme.txtには下記のように記載されている。
言語モデル・発音辞書について
【ファイル一覧】
bccwj.60k.bingram 言語モデル (Julius bingram形式)
bccwj.60k.tri.arpa.gz 言語モデル (ARPA形式,gzip圧縮)
bccwj.60k.htkdic 発音辞書
bccwj.60k.pdp.htkdic 発音辞書 (位置依存音素用)
【言語モデル】
学習データは国立国語研究所による『現代日本語書き言葉均衡コーパス』
(BCCWJ)の全テキスト(約1億語)で,単語の単位はBCCWJで定義された短単位を
そのまま用いている.表層表現と品詞を結合して言語モデル上の単語とした.
学習データには単語表記の補正処理を実施した.以下に主なものを挙げる.
ただし補正処理は完全で正確なものではない.
・化学記号等を除き,数字を漢数字に統一
・読み(発音)の与えられていない単語を削除
・カナ単語の一部をひらがなに正規化
(感動詞・副詞・形容詞・形状詞・代名詞・助詞・助動詞・連体詞・接続詞)
・カタカナ語の語末長音は原則としてのばすよう統一
・拗音などの「ぁぃぅぇぉゃゅょっ」が大きな仮名文字で表記されている
ものは小文字に変換
・英単語は(一部を除き)カタカナに置換
言語モデルは単語Trigramモデルで,構築には SRILM-1.7.0 を使用した.
出現回数が40回以下の単語は語彙から除外(カットオフ)した.これによる
語彙のサイズは59,084である.bigram/trigramについては,1回しか出現
しないエントリを除外した.バックオフスムージングには Modified
Kneser-Ney法が適用されている.
なお,上記のbingramファイルは,Juliusの仕様に従って順向きbigram
モデルと逆向きtrigramモデルから生成されている.
文字コードはUTF-8である.
【発音辞書】
発音辞書は,BCCWJで各単語に与えられている読み(発音形)をもとに作成した.
単語には異なる読みが付与されていることがあり,この場合はコーパス中の読みの生起頻度をもとに確率を計算して,発音エントリに付与している.
発音辞書のエントリ数は64,274である.
Julius音声認識パッケージ 話し言葉モデルキットを使う
ディクテーションキットと同様に、run-linux.shに起動コマンド例が書かれている。-nostripオプションを追加して起動する。
こちらは少しいい。pass1_bestでは正解なのだが、なぜかsentence1では「リンゴ を 参考 ください」になってしまっているが。
この話し言葉モデルキットは~/models/00readme.txtに下記のように書かれている。
音響モデル・言語モデルについて
1. DNN-HMM音響モデル
※この音響モデルは,Juliusディクテーションキットv4.4のものと同一である.
【ファイル一覧】
W_*.npy, bias_*.npy, prior DNN定義ファイル
binhmm.SID DNN-HMM音響モデル (triphone, HTK形式)
config.lmfb 特徴量設定ファイル
logicalTri.bin Triphoneリスト (バイナリ形式,上記DNN-HMM専用)
norm 正規化パラメータファイル
【学習データ】
学習データはASJ-JNASコーパス(86時間)およびCSJ(日本語話し言葉コーパス)
模擬講演(292時間)の計378時間である.
特徴量はFBANK 40次元およびその1次・2次差分の計120次元(いわゆるFBANK_D_A)で,平均と分散の正規化が行われている.adintool等の音声入力時は同梱の正規化パラメータを適用し(-cmnload),かつ -cvn オプションを与えること.これらの特徴量はケプストラムではないが,ケプストラムの正規化フレームワークを流用して正規化を行う.
【DNN-HMMモデル】
HMMは実質3状態のLR型で,4,874個の状態からなる状態共有モデルである.
状態確率がDNNによって与えられる.
DNNは入力層・出力層および7層の隠れ層を持つニューラルネットワークである.
各層のノード数は次の通りである
入力層: 1,320 (120次元 x 11フレーム)
隠れ層: 2,048
出力層: 4,874 (HMMの状態数)
各層はRBMによる初期化, クロスエントロピ基準による通常のfine tuningとsMBR基準による系列学習により構築されている.このDNN-HMMモデルは性別非依存(GID)モデルである.
【作成者】
三村 正人 (京都大学)
2014年1月 (2016年9月 更新)
2. 単語Trigram言語モデル
【ファイル一覧】
csj.bingram CSJによる言語モデル (Julius bingram形式)
csj.pdp.htkdic 発音辞書
【モデル概要】
学習データは『日本語話し言葉コーパス』(CSJ)の学会・摸擬講演のテキストで計2,702講演・767万語である.CSJにおける短単位を単語として用いている.
文字コードはShift-JISである.「あー」のようなフィラー単語については,認識結果として出力しないよう,発音辞書であらかじめ出力が空に設定されている.
【作成者】
秋田 祐哉 (京都大学)
2017年12月
以上
Julius音声認識パッケージ 講演音声モデルキットを使う
話し言葉モデルキットと同様に、run-linux.shに起動コマンド例が書かれている。-nostripオプションを追加して起動する。
ディクテーションキットよりは良いが、話し言葉モデルキットには劣る結果となった。
講演音声モデルキットは~/models/00readme.txtに下記のように書かれている。
音響モデル・言語モデルについて
1. DNN-HMM音響モデル
※この音響モデルは,Juliusディクテーションキットv4.4のものとは異なる.
【ファイル一覧】
W_*.npy, bias_*.npy, prior DNN定義ファイル
binhmm.SID DNN-HMM音響モデル (triphone, HTK形式)
config.lmfb 特徴量設定ファイル
logicalTri.bin Triphoneリスト (バイナリ形式,上記DNN-HMM専用)
norm 正規化パラメータファイル
【学習データ】
学習データは『日本語話し言葉コーパス』(CSJ)の学会講演で,計233時間である.
特徴量はFBANK 40次元およびその1次・2次差分の計120次元(いわゆるFBANK_D_A)で,平均と分散の正規化が行われている.adintool等の音声入力時は同梱の正規化パラメータを適用し(-cmnload),かつ -cvn オプションを与えること.これらの特徴量はケプストラムではないが,ケプストラムの正規化フレームワークを流用して正規化を行う.
【DNN-HMMモデル】
HMMは実質3状態のLR型で,4,829個の状態からなる状態共有モデルである.
状態確率がDNNによって与えられる.
DNNは入力層・出力層および7層の隠れ層を持つニューラルネットワークである.
各層のノード数は次の通りである
入力層: 1,320 (120次元 x 11フレーム)
隠れ層: 2,048
出力層: 4,829 (HMMの状態数)
各層はRBMによる初期化, クロスエントロピ基準による通常のfine tuningとsMBR基準による系列学習により構築されている.このDNN-HMMモデルは性別非依存(GID)モデルである.
【作成者】
三村 正人 (京都大学)
2017年10月
2. 単語Trigram言語モデル
【ファイル一覧】
csj.bingram CSJによる言語モデル (Julius bingram形式)
csj.pdp.htkdic 発音辞書
【モデル概要】
学習データは『日本語話し言葉コーパス』(CSJ)の学会・摸擬講演のテキストで 計2,702講演・767万語である.CSJにおける短単位を単語として用いている.
文字コードはShift-JISである.「あー」のようなフィラー単語については,認識結果として出力しないよう,発音辞書であらかじめ出力が空に設定されている.
【作成者】
秋田 祐哉 (京都大学)
2017年12月
以上
講演では「参考」は頻出しても「3個」が出ないか~w
この先の作戦
この3つのJulius音声認識パッケージの特性をそれぞれ理解し、どれをベースにするのが良いのか検討する。またJulius記述文法音声認識実行キットも確認してみる。これは前回動作確認したサンプルと同じ手法である。.vocaファイルとかを作成するタイプだし。
YouTubeからダウンロードとかする前に、先にsample.wavでそれぞれ試してみれば良かった。