いろいろやってみるにっき

なんとか自分の会社を立ち上げるところまで漕ぎ着けた、てきとーに生きている奴の日記

https化に伴い、表示できなくなっているリンクについて修復中。
2018年から遡って修正し、2015年分まで修正完了。


JuliusでYouTubeからダウンロードしたmp4の音声データを文字起こし練習 その3

前回はその1で使用した文法認識キット用のサンプルWAVを使用してディクテーションキット、話し言葉モデルキット、講演音声モデルキットでそれぞれ動作確認。

 

その1はこちら。

 

 

その2の結果としては音声データからの文字起こしは、1位話し言葉モデルキット、2位講演音声モデルキット、3位ディクテーションキットの順であった。それぞれ内容が異なるので向き不向きはあるのだろう。

文法認識キットとの組み合わせに進みたいところだが、一応YouTubeからダウンロードした音声データでも確認しておきたい。30分くらいのWAVファイルになっているが、なんと無編集でJuliusに読ませてみた。本来的には無音部分や雑音を取り除いてJuliusが扱いやすいデータにするべきである。

 

サンプリングレートの変更

その1で作成した時、SoundConverterではJuliusが扱えるサンプリングレート16000が選択できなかったため、48000でWAVファイルを作成した。soxコマンドで変更する。変更のついでにディクテーションキット、話し言葉モデルキット、講演音声モデルキット用のWAVファイルに分ける。これはJuliusのオプションで-outfileを付加した時の.outファイルがそれぞれに別れるようにするためのものである。 

$ sox sample1.wav -r 16000 dsample1.wav 
$ sox sample1.wav -r 16000 lsample1.wav
$ sox sample1.wav -r 16000 ssample1.wav 

 

Juliusコマンドのオプション追加

標準出力にバンバン流れるとよくわからないのでいくつか起動時のオプションを追加した。

 -nostrip

音声取り込み時,デバイスやファイルによっては,音声波形中に振幅 が "0" となるフレームが存在することがある.Julius は通常,音声 入力に含まれるそのようなフレームを除去する.この零サンプル除去が うまく動かない場合,このオプションを指定することで自動消去を 無効化することができる.

 

-quiet

出力を抑制する.認識結果は単語列のみが出力される.

 

-separatescore

認識結果で言語スコアと音響スコアを個別に出力する.指定しない場 合,和の値が認識結果のスコアとして出力される. 

 

-48オプションに期待していたのだができるWAVファイルと失敗するWAVファイルがあるので、上記のようにsoxコマンドで変更を掛けた。

 -48

48kHzで入力を行い,16kHzにダウンサンプリングしながら認識する. これは 16kHz のモデルを使用しているときのみ有効である. ダウンダンプリングの内部機能は sptk から 移植された. (Rev. 4.0)

 

 

ディクテーションキットでの実行

下記のコマンドで実行すると、

cd julius/dict/dictation-kit-4.5/
julius -C main.jconf -C am-gmm.jconf -nostrip -input rawfile -input rawfile -quiet -outfile -separatescore

f:id:shigeo-t:20191128100701p:plain

コアダンプを吐いて終わった。この30分WAVファイルとは異なる10分くらいのWAVファイルでもコアダンプを吐くので、そもそも使い方が悪い(WAVファイルを小分けにしろという話)ってことだろう。

下記メッセージについて調べると、

ERROR: get_back_trellis_proceed: 00 _default: frame 39828: no nodes left in beam, now terminates search

このブログがヒットした。

ぐぐってみたら特徴量がおかしい時に出るらしい。
MFCCを使っているのに出る。

 

話し言葉モデルキットでの実行

下記コマンドで実行。

julius -C main.jconf -C output-style.jconf -dnnconf main.dnnconf -nostrip -input rawfile -quiet -outfile -separatescore

下記のメッセージが時折混ざるが、仮設のスタックサイズ不足で探索が打ち切られているようだ。

WARNING: 00 _default: hypothesis stack exhausted, terminate search now

f:id:shigeo-t:20191128130428p:plain

ssample1.outの先頭はこんな感じ。

sentence1:  報酬 十 二 月 
wseq1: <sil> 報酬+ホーシュー+名詞 十+ジュー+名詞 二+ニ+名詞 月+ガツ+接尾辞 <sp>
phseq1: sp_S | h_B o:_I sh_I u:_E | j_B u:_E | n_B i_E | g_B a_I ts_I u_E | sp_S
cmscore1: 0.956 0.849 0.996 0.905 0.024 1.000
score1: 122.456795 (AM: 279.339386  LM: -156.882599)
sentence1:  今日 に も こう ジュネーブ 
wseq1: <sp> 今日+コンニチ+名詞 に+ニ+助詞 も+モ+助詞 こう+コー+副詞 ジュネーブ+ジュネーブ+名詞 <sp>
phseq1: sp_S | k_B o_I N_I n_I i_I ch_I i_E | n_B i_E | m_B o_E | k_B o:_E | j_B u_I n_I e:_I b_I u_E | sp_S
cmscore1: 1.000 0.472 0.521 0.830 0.082 0.458 1.000
score1: 113.430389 (AM: 376.024200  LM: -262.593811)
sentence1:  最後 解散 し た 訳 で ござい ます けれど も 
wseq1: <sp> 最後+サイゴ+名詞 解散+カイサン+名詞 し+シ+動詞 た+タ+助動詞 訳+ワケ+名詞 で+デ+助動詞 ござい+ゴザイ+動詞 ます+マス+助動詞 けれど+ケレド+助詞 も+モ+助詞 <sp>
phseq1: sp_S | s_B a_I i_I g_I o_E | k_B a_I i_I s_I a_I N_E | sh_B i_E | t_B a_E | w_B a_I k_I e_E | d_B e_E | g_B o_I z_I a_I i_E | m_B a_I s_I u_E | k_B e_I r_I e_I d_I o_E | m_B o_E | sp_S
cmscore1: 0.944 0.305 0.544 0.628 0.954 0.995 0.770 0.987 0.993 0.979 0.471 1.000
score1: 428.241882 (AM: 662.989685  LM: -234.747803)
sentence1:   この 介護 を 踏まえ 
wseq1: <sp> えー+エー+感動詞 この+コノ+連体詞 介護+カイゴ+名詞 を+オ+助詞 踏まえ+フマエ+動詞 <sp>
phseq1: sp_S | e:_S | k_B o_I n_I o_E | k_B a_I i_I g_I o_E | o_S | f_B u_I m_I a_I e_E | sp_S
cmscore1: 0.799 0.502 0.883 0.759 0.860 0.759 1.000
score1: 295.084991 (AM: 490.670593  LM: -195.585602)
sentence1:  韓国 が から 
wseq1: <sp> 韓国+カンコク+名詞 が+ガ+助詞 から+カラ+助詞 <sp>
phseq1: sp_S | k_B a_I N_I k_I o_I k_I u_E | g_B a_E | k_B a_I r_I a_E | sp_S
cmscore1: 0.975 0.384 0.499 0.907 1.000
score1: 116.470352 (AM: 269.131958  LM: -152.661606)
sentence1:   外交 ルール と 中 通じ て   w を プロセス を 中断 する もの  
wseq1: <sp> あー+アー+感動詞 外交+ガイコー+名詞 ルール+ルール+名詞 と+ト+助詞 中+チュー+接尾辞 通じ+ツージ+動詞 て+テ+助詞 <sp> えー+エー+感動詞 w+ダブリュー+記号 を+オ+助詞 プロセス+プロセス+名詞 を+オ+助詞 中断+チューダン+名詞 する+スル+動詞 もの+モノ+名詞 おー+オー+感動詞 <sp>
phseq1: sp_S | a:_S | g_B a_I i_I k_I o:_E | r_B u:_I r_I u_E | t_B o_E | ch_B u:_E | ts_B u:_I j_I i_E | t_B e_E | sp_S | e:_S | d_B a_I b_I u_I ry_I u:_E | o_S | p_B u_I r_I o_I s_I e_I s_I u_E | o_S | ch_B u:_I d_I a_I N_E | s_B u_I r_I u_E | m_B o_I n_I o_E | o:_S | sp_S
cmscore1: 0.856 0.080 0.377 0.201 0.311 0.174 0.989 0.451 0.535 0.314 0.329 0.046 0.984 0.242 0.934 0.827 0.123 0.020 1.000
score1: 314.942780 (AM: 1020.769531  LM: -705.826721)
sentence1:  生まれ まし た 
wseq1: <sp> 生まれ+ウマレ+動詞 まし+マシ+助動詞 た+タ+助動詞 <sil>
phseq1: sp_S | u_B m_I a_I r_I e_E | m_B a_I sh_I i_E | t_B a_E | sp_S
cmscore1: 0.934 0.238 0.517 0.521 1.000

f:id:shigeo-t:20191128130742p:plain

 

講演音声モデルキットでの実行

下記コマンドで実行。

julius -C main.jconf -C output-style.jconf -dnnconf main.dnnconf -nostrip -input rawfile -quiet -outfile -separatescore

30分のファイルを約55分で文字起こしした。同じVMThinkPad W530に置いて10分のWAVファイルから文字起こしした時は40分掛かったので、ThinkPad W540で実行する方が早く終わるようだ。

f:id:shigeo-t:20191128103458p:plain

lsample.outファイルの先頭部分はこんな感じ。

sentence1: 
wseq1: <sil>
phseq1: sp_S
cmscore1: 1.000
score1: 6.407854 (AM: 25.050253  LM: -18.642399)
sentence1:   報酬 十 二 月 十 九 日 に も  ジュネーブ 
wseq1: <sil> え+エ+感動詞 報酬+ホーシュー+名詞 十+ジュー+名詞 二+ニ+名詞 月+ガツ+接尾辞 十+ジュー+名詞 九+ク+名詞 日+ニチ+接尾辞 に+ニ+助詞 も+モ+助詞 おー+オー+感動詞 ジュネーブ+ジュネーブ+名詞 <sp>
phseq1: sp_S | e_S | h_B o:_I sh_I u:_E | j_B u:_E | n_B i_E | g_B a_I ts_I u_E | j_B u:_E | k_B u_E | n_B i_I ch_I i_E | n_B i_E | m_B o_E | o:_S | j_B u_I n_I e:_I b_I u_E | sp_S
cmscore1: 1.000 0.010 0.449 0.994 0.935 0.952 0.808 0.850 0.323 0.663 0.919 0.135 0.410 1.000
score1: 232.164993 (AM: 598.627563  LM: -366.462585)
sentence1: 
wseq1: <sp>
phseq1: sp_S
cmscore1: 1.000
score1: 51.160679 (AM: 68.030678  LM: -16.870001)
sentence1:  介護 を 開催 し た 訳 で ござい ます けれど も 
wseq1: <sp> 介護+カイゴ+名詞 を+オ+助詞 開催+カイサイ+名詞 し+シ+動詞 た+タ+助動詞 訳+ワケ+名詞 で+デ+助動詞 ござい+ゴザイ+動詞 ます+マス+助動詞 けれど+ケレド+助詞 も+モ+助詞 <sp>
phseq1: sp_S | k_B a_I i_I g_I o_E | o_S | k_B a_I i_I s_I a_I i_E | sh_B i_E | t_B a_E | w_B a_I k_I e_E | d_B e_E | g_B o_I z_I a_I i_E | m_B a_I s_I u_E | k_B e_I r_I e_I d_I o_E | m_B o_E | sp_S
cmscore1: 0.964 0.615 0.472 0.706 0.427 0.768 0.992 0.868 0.969 0.998 0.986 0.522 1.000
score1: 446.414093 (AM: 695.049866  LM: -248.635788)
sentence1:   この 介護 を 踏まえ 
wseq1: <sp> えー+エー+感動詞 この+コノ+連体詞 介護+カイゴ+名詞 を+オ+助詞 踏まえ+フマエ+動詞 <sp>
phseq1: sp_S | e:_S | k_B o_I n_I o_E | k_B a_I i_I g_I o_E | o_S | f_B u_I m_I a_I e_E | sp_S
cmscore1: 0.862 0.698 0.926 0.741 0.901 0.788 1.000
score1: 260.259186 (AM: 455.844788  LM: -195.585602)
sentence1:   韓国 側 から 
wseq1: <sp> えー+エー+感動詞 韓国+カンコク+名詞 側+ガワ+名詞 から+カラ+助詞 <sp>
phseq1: sp_S | e:_S | k_B a_I N_I k_I o_I k_I u_E | g_B a_I w_I a_E | k_B a_I r_I a_E | sp_S
cmscore1: 0.986 0.016 0.493 0.406 0.901 1.000
score1: 115.001862 (AM: 296.192657  LM: -181.190796)
sentence1:   外交 ルール と 中枢 を いじっ て  WTO プロセス を 中断 する と の  方法 が あり まし た 
wseq1: <sp> あー+アー+感動詞 外交+ガイコー+名詞 ルール+ルール+名詞 と+ト+助詞 中枢+チュースー+名詞 を+オ+助詞 いじっ+イジッ+動詞 て+テ+助詞 えー+エー+感動詞 WTO+ダブリューティーオー+名詞 プロセス+プロセス+名詞 を+オ+助詞 中断+チューダン+名詞 する+スル+動詞 と+ト+助詞 の+ノ+助詞 おー+オー+感動詞 方法+ホーホー+名詞 が+ガ+助詞 あり+アリ+動詞 まし+マシ+助動詞 た+タ+助動詞 <sil>
phseq1: sp_S | a:_S | g_B a_I i_I k_I o:_E | r_B u:_I r_I u_E | t_B o_E | ch_B u:_I s_I u:_E | o_S | i_B j_I i_I q_E | t_B e_E | e:_S | d_B a_I b_I u_I ry_I u:_I t_I i:_I o:_E | p_B u_I r_I o_I s_I e_I s_I u_E | o_S | ch_B u:_I d_I a_I N_E | s_B u_I r_I u_E | t_B o_E | n_B o_E | o:_S | h_B o:_I h_I o:_E | g_B a_E | a_B r_I i_E | m_B a_I sh_I i_E | t_B a_E | sp_S
cmscore1: 0.921 0.284 0.560 0.145 0.255 0.037 0.026 0.051 0.514 0.228 0.405 0.992 0.673 0.927 0.929 0.400 0.964 0.013 0.002 0.221 0.190 0.987 0.573 1.000
score1: 573.437866 (AM: 1410.955566  LM: -837.517700)
sentence1:   七 月 に こう  から 上級 の  コミュニケーション を 実施 し 
wseq1: <sil> ん+ン+感動詞 七+シチ+名詞 月+ガツ+接尾辞 に+ニ+助詞 こう+コー+副詞 おー+オー+感動詞 から+カラ+助詞 上級+ジョーキュー+名詞 の+ノ+助詞 おー+オー+感動詞 コミュニケーション+コミュニケーション+名詞 を+オ+助詞 実施+ジッシ+名詞 し+シ+動詞 <sp>
phseq1: sp_S | N_B N_I N_E | sh_B i_I ch_I i_E | g_B a_I ts_I u_E | n_B i_E | k_B o:_E | o:_S | k_B a_I r_I a_E | j_B o:_I ky_I u:_E | n_B o_E | o:_S | k_B o_I my_I u_I n_I i_I k_I e:_I sh_I o_I N_E | o_S | j_B i_I q_I sh_I i_E | sh_B i_E | sp_S
cmscore1: 0.172 0.344 0.986 0.621 0.425 0.304 0.012 0.102 0.462 0.817 0.274 0.989 0.753 0.890 0.180 1.000
score1: 695.601990 (AM: 1191.473633  LM: -495.871613)
sentence1:   W 企業 に 骨幹 競技 で も 二 回 
wseq1: <sp> え+エ+感動詞 W+ダブリュー+記号 企業+キギョー+名詞 に+ニ+助詞 骨幹+コッカン+名詞 競技+キョーギ+名詞 で+デ+助詞 も+モ+助詞 二+ニ+名詞 回+カイ+接尾辞 <sp>
phseq1: sp_S | e_S | d_B a_I b_I u_I ry_I u:_E | k_B i_I gy_I o:_E | n_B i_E | k_B o_I q_I k_I a_I N_E | ky_B o:_I g_I i_E | d_B e_E | m_B o_E | n_B i_E | k_B a_I i_E | sp_S
cmscore1: 0.851 0.564 0.366 0.701 0.825 0.195 0.924 0.808 0.709 0.848 0.028 1.000
score1: 254.938904 (AM: 698.779541  LM: -443.840607)

ターミナル上にはこのように表示されている。

f:id:shigeo-t:20191128104053p:plain

 

----

すぐ上にあるように「 WTOプロセス」がきちんと出せたのは講演音声モデルキット。この音声はその1で作成したが記者会見で、最初の方はバシャバシャと静止画の撮影音が入っていたり、記者の出す音などでざわざわしたりしていて、必ずしも文字起こし向きではない。音声ファイルをもっと細切れにして誤解釈が少なくなるようにする必要はある。

Julius Caesar

Julius Caesar

 
ジュリアス・シーザー [DVD]

ジュリアス・シーザー [DVD]