ディープラーニングは、音声処理分野でどのように活用されているか。
目次
音声データ処理
- 「A-D変換(Analog to Digital Conversion)」→アナログデータをデジタルデータへ変換
※「パルス符号変調(PCM:Pulse Code Modulation)」によって変換されることが一般的
(標本化(サンプリング)→量子化→符号化) - 「高速フーリエ変換(FFT:Fast Fourier Transform)」→周波数解析を高速に行い、「周波数スペクトル」へと変換
- 「メル尺度(mel scale)」→人間が感じる音の高低に合わせた尺度
- 「メル周波数ケプストラム係数(MFCC:Mel-Frtquency Cepstrum Coefficients)」→音色の違いである「スペクトル包絡(スペクトル上の緩やかな変動)」を求めるためのデファクトスタンダード
- 「フォルマント」→いくつかの周波数でピークを迎える場合のそのピーク
- 「フォルマント周波数」→フォルマントのある周波数
※「音韻」が同じであればフォルマント周波数は近い値となる
音声認識
- 「Speech-to-Text(STT)」→音声データをテキストに変換して出力する技術
- 「音声認識器」→「音響モデル」「言語モデル」「音素列をペアにした辞書」で構成される
→音声認識器に音声データが入力されると、辞書に格納された情報から考えうる数多くの音素列および言語列が生成され、それぞれが音響モデル・言語モデルによってスコアリングされる
→2つのスコアを統合して最もよいものが最終的な音声認識結果として出力される - 音響モデル→「隠れマルコフモデル(HMM:Hidden Markov Model)」
音素ごとに学習し、様々な単語の認識に対応できる。
あらかじめ定義された単語と音素列の対応辞書により音素列に変換、HMMを連結することでモデル化する。
※「混合正規分布モデル(GMM:Gaussian Mixture Model)」、「CNN」、「RNN」なども用いられる - RNNでは、音声データを時系列で逐次入力して音声の音素を出力するが、音声データの時系列の数と認識すべき正解の音素の数は必ずしも一致しない
→「CTC:Connectionist Temporal Classification」を用いて、出力候補として空文字を追加、連続して同じ音素を出力した場合には一度だけ出力したものと縮約するという処理を行い、出力の長さと正解の長さが違う場合でも処理。
※空文字は、同じ音素を出力することが正解の場合に、誤って縮約してしまうことを防ぐために必要。 - 言語モデル→「n-gram言語モデル」
ある単語が出現する確率を、それより前のN-1個の単語が出現したという条件のもとでの条件付き確率としてモデル化、与えられた文全体の確率は、その中の各単語の条件付き確率の積として計算される。
※「RNN」「トランスフォーマー」なども広く用いられる - 音響モデルも言語モデルも、ニューラルネットワークの導入が進んでいる
→現在では、音声データから直接単語列を生成するような、End-to-Endの音声認識モデルも登場している - 課題→「感情分析」「話者識別」
音声合成
- 「Text-to-Speech(TTS)」→テキストを音声データに変換して出力する技術
- テキストの形態素解析→読み推定→読みから音素列への変換→音素列から音声波形の生成
- 「波形接続方式」→様々な音素の波形をあらかじめDB化し、これらを組み合わせて音声合成
- 「パラメトリック方式」→声の高さや音色などに関するパラメータをHMMなどによって推定し、これをもとに音声合成(→合成の質が低いとされていた)
- 「WaveNet」→2016年、DeepMindから発表されたディープラーニングを用いたパラメトリック方式の音声合成モデル
※量子化された状態のままニューラルネットワークで処理し、音声合成の質を向上(従来:音声データを周波数スペクトルなどに変換してから処理)