ichou1のブログ

主に音声認識、時々、データ分析のことを書く

音声認識

音声認識や音声合成に出てくる用語のまとめ

(随時、更新します) 「スペクトラム」と「スペクトログラム」の違い 時間領域で標本化されたデータはチャンクに分けられ(チャンクは一般にオーバーラップさせる)、チャンク毎にフーリエ変換を施す。 各チャンクの変換結果が、ある時間における全周波数成…

音声認識メモ(DeepSpeech)その7

特徴量変換の際に、「MinMax正規化」を使ってみる。特徴量変換 波形データ 左から下記のとおり。 「ジェット機」 「どろぼうでもはいったかと、いっしゅんぼくはおもった」 「さっぽろ」 波形データ(MinMax正規化) data = librosa.util.normalize(original…

音声認識メモ(DeepSpeech)その6

前回の続き。プリエンファシスは必要か?「ジェット機」という音声のスペクトログラム。 左が「pre-emphasis なし」、右が「pre-emphasis あり」 トレーニング時の学習セット(ATR503) 他コーパス(その1) 最初の「ジェット機」に関しては、プリエンファシ…

音声認識メモ(DeepSpeech)その5

モデルのインプットとして使う特徴量を「MFCC」から「log-mel spectrum」へ変えてみる。インプットとして使う特徴量を変えてみる各Time-Stepごとの次元は、「26」次元(MFCC13次元にdelta特徴量を加えた分)から「128」次元(フィルタバンクチャネル数)に置…

音声認識メモ(DeepSpeech)その4

前回の続き。 それなりの認識精度が出ることを確認した。ここから、認識精度を高めること、汎化させることを考えてみる。 他コーパスの音声ファイル認識まずは、別の音声コーパスを試してみる。「東北大‐松下 単語音声データベース (TMW)」の単語音声「さっ…

音声認識メモ(DeepSpeech)その3

トレーニングによるパラメータ更新を試してみる。トレーニングデータは、下記で公開されているATR音素バランス503文の発話データを使うことにする。 https://ja.osdn.net/projects/galateatalk/releases/22207日本語コーパスを使った音素認識については下記…

音声認識メモ(DeepSpeech)その2

モデルの構造DeepSpeechの「create_model」関数を追ってみると、modelの構造としては「6層」 Layer1: Dense ( + clipped RELU activation + dropout ) Layer2: Dense ( + clipped RELU activation + dropout ) Layer3: Dense ( + clipped RELU activation + …

音声認識メモ(DeepSpeech)その1

Mozillaが公開する「DeepSpeech」を試してみる。 github.com環境準備(インストール) % pip install deepspeech% pip show deepspeech Name: deepspeech Version: 0.7.0 Summary: A library for running inference on a DeepSpeech model Home-page: https:…

音声ファイル特徴量変換(その6)MFCC(TensorFlow)

TensorFlowでMFCC(Mel-Frequency Cepstral Coefficient)を求めるには、「tf.signal.mfccs_from_log_mel_spectrograms」関数が提供されている。tf.signal.mfccs_from_log_mel_spectrograms | TensorFlow Core v2.1.0インプットは、前回見た、「メルスペクト…

音声ファイル特徴量変換(その5)メルスペクトログラム(TensorFlow)

TensorFlowでメルスペクトログラムを求めるには、「tf.signal.linear_to_mel_weight_matrix」関数が提供されている。 https://www.tensorflow.org/api_docs/python/tf/signal/linear_to_mel_weight_matrixMelスケールに変換するためのMatrixが得られるので、…

音声ファイル特徴量変換(その4)STFT(TensorFlow)

TensorFlowで短時間フーリエ変換(Short-time Fourier Transform)を求めるには、「tf.signal.stft」関数が提供されている。 https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/signal/stft音声データは「yes」という一秒間の発話データ。 「li…

音声ファイル特徴量変換(その3)MFCC

前回の続き。「MFCC」(メル周波数ケプストラム係数)について見ていく。ここでは、視覚的な結果確認のみ書くので、計算過程などは以下をご参照。 work-in-progress.hatenablog.com音声データは「yes」という一秒間の発話データ。 MFCC(メル周波数ケプストラ…

音声ファイル特徴量変換(その2)メルスペクトログラム

前回の続き。「log-mel spectrogram」(STFT+メル周波数変換+自然対数)について見ていく。音声データは「yes」という一秒間の発話データ。 log-mel spectrogram メル周波数(対数変換なし) メル尺度に変換する。 import librosa import numpy as np # Au…

音声ファイル特徴量変換(その1)STFT

音声データを使う際は特徴量に変換する。 よく使われているのは「MFCC」だが、深層学習では「log-mel spectrogram」を使う実装例も出ている。 特徴量 実装例 STFT Looking to Listen at the Cocktail Party log-mel spectrrogram Deep Learning for Audio Si…

音声ファイル前処理(データロード)

例えばTensorFlowなどの深層学習ライブラリで音声を扱おうとした時、どのような変換をしているのか把握していないと応用が効かないし、詰まってしまう。 基本的なところからまとめ直してみる。前回のTensorFlowチュートリアルに出てくる"yes"の音声データを…

TensorFlowメモ(Simple Audio Recognition)

TensorFlowのチュートリアル「Simple Audio Recognition」を試してみる。docs/audio_recognition.md at master · tensorflow/docs · GitHubソースコードtensorflow/tensorflow/examples/speech_commands at master · tensorflow/tensorflow · GitHubどのよう…

機械学習の手法を俯瞰してみる

『Pythonによる深層強化学習入門』で書かれている"機械学習の種類(一例)"を参考にして作成。どの系統に属するものなのか、まとめておく。 分類 概要 手法 例 教師あり学習 入力データと、それに対する答え(教師データ)がセットになったデータを学習する …

音声認識メモ(スペクトログラム)

spectrogramに関するメモ。 Wikipediaより スペクトログラム(英: Spectrogram)とは、複合信号を窓関数に通して、周波数スペクトルを計算した結果を指す。 3次元のグラフ(時間、周波数、信号成分の強さ)で表される。 pythonのmatplotlibライブラリにある…

(論文読解) Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for Speech Separation

Googleが出した論文 [1804.03619] Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for Speech Separation顔画像をもとにノイズマスキングを生成し、傾聴したい音声だけを抽出する。 ブログ記事 ai.googleblog.com解説…

確率分布の推定

これまで、モデルを表現するための要素である「確率分布の形」(確率密度関数)が分かっているものとして考えてきた。確率分布の形が分からないケースを考えてみる。 (現実世界で推定しようとする対象は、こっちの方が多いと思われる)以前、多変量混合正規…

パラメータ推定(多変量正規分布)

前回、多変量混合正規分布のパラメータ推定について書いたが、(混合分布ではない)多変量正規分布のパラメータ推定についても書いておく。変量の数は「2」、「変量x」と「変量y」で表されるとすると、2変量正規分布の確率密度関数は 2変量正規分布の確率密…

パラメータ推定(多変量混合正規分布)

前回の多変量混合正規分布の続き。 パラメータ推定に関するメモ。変量の数は「2」、「変量x」と「変量y」で表されるとし、混合数をKとおくと、2変量混合正規分布の確率密度関数は 2変量混合正規分布の確率密度関数 ここで、 観測データがN個であるとき、対数…

多変量混合正規分布

前回の多変量正規分布の続き。 「多変量混合正規分布」について見てみる。変量の数は「2」、「変量x」と「変量y」で表されるとし、混合数をKとおくと、2変量混合正規分布の確率密度関数は 混合パラメータ 2変量混合正規分布の確率密度関数 ここで、∑は「変量…

多変量正規分布(その2)

前回は2変量に相関がないケースを見たが、今回は相関があるケースを見てみる。各変量の平均と分散は前回と同じ。相関係数だけ変えてみる。 変量x : 平均「1」、分散「2」の正規分布に従う 変量y : 平均「3」、分散「4」の正規分布に従う 変量x と 変量y には…

多変量正規分布

多変量混合正規分布のパラメータ推定に入る前に、どのようなモデルを扱おうとしているのか整理しておく。以下の視点で考えた時、 変量が「1」or「多」 「混合分布である」or「混合分布ではない」 以下の4パターンに分類される。 (1変量)正規分布 (1変量)混…

パラメータ推定(混合正規分布)

混合分布を使うことで、より柔軟に分布をモデル化できる。例えば、ピークが2つあるような分布。 これは以下2つの分布を混合したもの。 分布1 : 正規分布N(2, 5)、混合比「0.6」 分布2 : 正規分布N(10, 5)、混合比「0.4」この混合分布は音声認識において使わ…

パラメータ推定(ニュートン・ラフソン法)

前回の続き。「ニュートン・ラフソン法」を使って、2変数パラメータの最尤推定値を求めてみる。 以下のサイトを参考にさせていただいた。 http://www012.upp.so-net.ne.jp/doi/sas/numerical/Newton_Raphson/Newton_Raphson.pdf正規分布の対数尤度関数を再掲…

パラメータ推定(最尤推定法)

MathJax.Hub.Config({ displayAlign: "left", displayIndent: "2em" }); 今、手元にn個の観測値(標本)が得られているとする。統計モデルとして表現するには、 観測値が従うであろう確率分布(確率密度関数)の形 確率密度関数のパラメータ が必要となる。1…

ヘッセ行列の固有値による凸性の判定

最適化を考える時、どの方向に向かって修正していくかを決める必要がある。扱う対象が関数化できるなら、その最大値(あるいは最小値)を求める問題に帰着するので、関数の凸性が大事な概念になってくる。今回は2変数関数を対象に、2階偏微分であるヘッセ…

行列の低ランク近似と近似度

特異値分解を使った「行列の低ランク近似」に関するメモ。まずは、視覚的に確認しやすい画像データで試してみる。高さ200px、幅320px、インデックスカラーのRAWデータを用意する。 1pxを1バイトで表現、0〜255の範囲の値をとる200行 x 320列の行列ができる。…