音声認識特論 ( 第 5 回目 )
2017 年 10 月 20 日
西宏之
音声認識特論レポート1につ
いて
• 次のような、母音認識プログラムを作成
せよ
• 「ア」、「イ」、「ウ」、「エ」、
「オ」の5つの母音をあらかじめ録音
し、ケプストラムを求めた結果が下の5
つのテキストファイルに納めてある
– 1.txt : 「ア」 – 2.txt : 「イ」 – 3.txt : 「ウ」 – 4.txt : 「エ」 – 5.txt : 「オ」
• ファイルの形式はいずれもテキスト形式で、 40 個の実数データ (float) が入っている。データと データの間は半角スペースで区切られている。
• 認識したい未知の音声のケプストラムデータ は、 rec.txt に上記と同じ形式で書き込まれ ている。
• 1.txt ~ 5.txt と rec.txt の計6つのファイ ルを読み込み、 rec.txt が「ア」~「オ」のいず れの母音であるかを認識するプログラムを作成 せよ。
• レポート用紙の表面にソースリストを、裏面に 実行結果を印刷して提出せよ。
• なお、番号氏名は、ソースリスト中にコメント 文で記入せよ。
〆切: 11 月 17 日 ( 金 ) の 17 時ま
で
• 標準パターンが5つでなく、 100 個くら
いあっても構わないようにせよ。
• つまり「数字 .txt 」というファイル名をプ
ログラムで合成し,その名前でファイル
を開いて読込むようにすればよい.
• 数値を文字列に変換するには関数「 itoa
() 」が使える.使い方はネットか教科書で
調べること.
( ア )
拡大
有声音 声帯の振動数
( ア ) らし さ ケプストラ
ム
この間
くり返し周波数 男: 70~150Hz 女: 150~400Hz
ローパスフィ ルタで高周波成
分をカット
成分 2乗
40個程度の棒グラフ状のデータ
( 40 次元のフィルターバン ク)
音の工学の 基礎の基礎
電圧
一つ一つの大きさを で表す
t
f (t)x
i処理の流れ
① 学習:5つ ( あ,い,う,え,お ) の標
準パターンを作成 ( 各々の ) →今
日はここまでやる
② 認識1:未知の音 と各標準パ
ターンとの距離を計算する
③ 認識2:距離の最も小さかった標準パ
ターンのカテゴリーを認識結果として出
力する.
x
iy
i① 学習
• 周波数特性 ( フィルターバンク出力 )
• 「ア」「イ」「ウ」「エ」「オ」の各々
の wav ファイルを読込み,各周波数帯ご
との成分を出力する
• 出力した周波数特性はファイル番号を付
したファイル名で格納する.
• 使うプログラムは「 FFT-filter-bank.cpp 」
• 一つのフォルダーに,プログラム,音声
ファイル,バッチファイルを置く
FFT-filter-bank.cpp の』使い方
• 沢山のオプションあり
• FFT-filter-bank filename samples_in_window samples_shift bank_number
• 1 2 3 4
• 実際のプログラム起動はバッチファイルを用いるとよい.
• バッチファイルとは?→拡張子は 「 .bat 」
• 例えば...
• for %%A IN (*wav) DO FFT-filter-bank %%a 512 256 40
• ↓↓↓ ↓↓↓ ↓↓↓ ↓↓↓ ↓↓↓ ↓↓↓ ↓↓
↓ ↓↓↓
• 「拡張子 wav を含むすべてのファイルをひとつずつ読み込み, DO 以下のプログラムを起動する」という意味のスクリプトである.
( ア )
拡大
有声音 声帯の振動数
( ア ) らし さ ケプストラ
ム
この間
くり返し周波数 男: 70~150Hz 女: 150~400Hz
ローパスフィ ルタで高周波成
分をカット
成分 2乗
40個程度の棒グラフ状のデータ
( 40 次元のフィルターバン ク)
音の工学の 基礎の基礎
電圧
一つ一つの大きさを で表す
t
f (t)x
i今日の作業手順
① Audacity を使って,学習用および評価用の 5 母 音音声を収録する. ( 学習用1つずつ,評価用 5つずつ )
② Audacity を使って, 1 発話ずつ切り出して個別 のファイルに保存する ( ここまでがデータの準 備 )
③ FFT-filter-bank とバッチファイルを使って,周 波数分析およびフィルターバンクデータを作成 し, csv ファイルに保存
④ エクセルを使って,必要な部分だけ切出し,学 習データと評価用データを作成