こちらは、書籍「Pythonで学ぶ音声認識」で学習した内容で、大切と思われる部分のメモ書きになります。必要なプログラムのダウンロードは、下記のページです。
URL | https://github.com/ry-takashima/python_asr |
章 | 項目名/内容 | |
1章 | 音声認識とは | |
/音声認識モデル/ 音声特徴量➡ 音響モデル➡ 発音辞書➡ 言語モデル➡ 出力 (「End-to-End モデル」が最新手法) | ||
2章 | 音声認識の基礎知識 | |
1節 音声認識と確率 ・確率の Chain Rule ・確率の周辺化 ・ベイズの定理 2節 音声認識の問題を数式で定義する 3節 テキストの種類と発音辞書 -音素・かな・文字・単語- 4節 2種類の音声認識実験 ・孤独単語認識 ・連続音声認識 5節 音声認識実験の大まかな流れ ・学習データ、開発データ、評価データ ・ハイパーパラメータ ・過学習 | ||
3章 | 音声処理の基礎と特徴量検出 | プログラム・コード |
1節 データの準備 workディレクトリに展開 2節 音声ファイルを読み込んでみよう ・チャネル数 ・サンプリング周波数 ・サンプルサイズ 3節 フーリエ変換を使って 音声を周波数分解しよう ・離散フーリエ変換 ・逆離散フーリエ変換 ・高速フーリエ変換 ・フロアリング処理 ・サンプリング定理 ・ナイキスト周波数 4節 音声を短時間フーリエ変換して スペクトログラムを作成しよう ・短時間フーリエ変換 ・フレーム/フレームサイズ ・窓関数/ハミング窓 ・スペクトログラム 5節 対数メルフィルタバンク特徴量 ・直流(DC)成分除去 ・広域強調(プリエンファシス) ・フィルタバンク分析 ・多変量データ ・次元/次元数 ・フィルタバンク特徴量 ・メルフィルタバンクと ・対数メルフィルタバンク特徴量 (FBANK) ・メル尺度 6節 メル周波数ケプストラム特徴量 ・メル周波数ケプストラム特徴量 ・離散コサイン変換 ・基本周波数 ・共振周波数(フォルマント) ・ケプストラム分析 ・ケプストラム ・リフタリング/リフタ 7節 特徴量の平均と標準偏差を 計算してみよう | https://sites.google.com/site/ shinnosuketakamichi/publication/just code3.1 plot_wave.py: wavファイルの波形をプロット code3.2 test_fft.py: 特定時刻の波形をフーリエ変換、 対数振幅スペクトルを表示 code3.3 test_spectrogram.py: 短時間フーリエ変換を用いて、 音声のスペクトログラムを作成 code3.4 01_comput_fbank.py: 学習/開発/評価データに対して 対数メルフィルタバンク特徴を計算する code3.5 test_cepstrum.py: 特定時刻の波形をケプストラム分析する code3.6 01_compute_mfcc.py: 学習/開発/評価データに対して MFCC特徴を計算する code3.7 02_compute_mean_std.py: 特徴量ベクトルの平均と標準偏差を計算する | |
4章 | 音声認識の初歩-DPマッチング | |
code4.1 02_dp_matching.py: 2個のMFCC系列間でDPマッチングを行い アライメントを推定する code4.2 04_dp_matching_knn.py: DPマッチングとテンプレートマッチングを 使って発話認識を行う 関連プログラム(後で示す) | ||
5章 | GMM-HMM による音声認識 | |
code5.1 00make_label.py: ラベルファイルの音素表記を文字から数値に 変換する ⇒ phones.txt、text.int code5.2 hmmfunc.py: MonoPhoneHMMクラス コンストラクト部 code5.3 hmmfunc.py: MonoPhoneHMMクラス プロトタイプ作成部と HMM保存部 code5.4 01_make_proto.py: HMMプロとタイプを作成するメインプログラム ⇒ hmmproto code5.5 hmmfunc.py: MonoPhoneHMMクラス パラメータ初期化部と HMMファイル読み込み部 code5.6 02_init_hmm.py: HMMのパラメータを初期化するメインプログラム ⇒ ~1mix/0.hmm code5.7 03_train_sgmhmm.py: SGM-HMMを学習するメインプログラム ⇒ ~1mix/1~10.hmm code5.8 hmmfunc.py: MonoPhoneHMMクラス HMM学習部 含む9個の関数 code5.9 hmmfunc.py: MonoPhoneHMMクラス 混合数の増加処理部 code5.10 03_train_sgmhmm.py: SGM-HMMを学習するメインプログラム ⇒ ~2mix/1~10.hmm No code 04_prepare_testdata.py: 評価データの作成 ⇒ lexicon.txt、text.int No code 05_compute_feat_test.py: MFCC特徴量の抽出 ⇒ ~/mfcc/~ code5.11 06_recognize.py: 孤立単語音声認識を実行する 推論メインプログラム ⇒ ~/mfcc/1.bin プログラム内入力 1mix の時 SGM-HMM 2mix の時 GMM-HMM code5.12 hmmfunc.py: MonoPhoneHMMクラス 音声認識部 含む2個の関数 code5.13 07_phone_alilgnment.py: 音素アライメントを推定するメインプログラム ⇒ 画面表示(標準出力) ⇒ alignment.png code5.14 hmmfunc.py: MonoPhoneHMMクラス 音素アライメント推定部 含む2個の関数 | ||
6章 | DNN-HMM による音声認識 | |
[1] 状態アライメントの推定 (DNN正解ラベルの作成) Code 6.1 00_state_alignment.py: 音素アライメントを推定するプログラム ⇒ ~train_small/alignment Code 6.2 hmmfunc.py: MonoPhoneHMMクラス 音素アライメント推定部 含む2個の関数 Code 6.3 01_count_states.py: 各HMMの状態から出現回数をカウントする ⇒ ~/model_dnn/state_counts 関連コード(省略)Code 6.4 ~ 6.9 Code 6.10 02_train_dnn.py: DNN学習を行うメインプログラム ⇒ ~/model_dnn/best_model_pt(学習済み) | ||
7章 | End – to – End モデルによる連続音声認識 | |