ディープラーニングの研究/音声生成AI

ディープラーニングを用いた音声生成の仕組みについて。

目次

AI・ディープラーニングの全体像

  • 人工知能
  • 機械学習
  • ディープラーニングの基本・応用
  • ディープラーニングの研究
  • AIプロジェクト
  • AI社会実装に伴う法律・倫理

音声認識と音声生成

音声認識音声波形からスペクトル(波形を短時間で切った周波数成分)を作成、数理モデルで内容を推定
音声生成声の高さと音色の特徴を推定し、音声を人工的に合成する。
  • 音声は、空気が波動として振動している物理現象
  • 空気振動の特徴やパターンを機械を用いて処理し、表現されている単語列の意味を抽出するための技術
  • ユーザーの音声を認識し、テキスト化する(音声認識、自然言語処理)
  • 適切な応答を推測し、それに対応するテキストを生成する(自然言語処理)
  • 応答の音声を合成する(音声生成)

音声データ処理

音声認識の手順
  • 音声波形から、「周波数」「時間変化」の特徴を抽出する
  • 「音素(言葉の最小単位)」を特定する
  • 辞書と照合し、「音素列」を単語に変換する
  • 単語間の繋がりを解析し、文章を生成する
  • 「A-D変換(Analog to Digital Conversion)」→離散的な数値に変換
  • 「パルス符号変調(Pulse Code Modulation;PCM)」が使われる
    ①「標本化(サンプリング)」②「量子化」③「符号化」
  • 音声信号→周波数の波動に対し、周波数ごとの重みを掛けて足し合わせたような合成信号
    どの周波数成分がどれくらいの強さで音声に含まれているのかを解析する必要あり
  • 「高速フーリエ変換(Fast Fourier Transform;FFT)」周波数成分の重なりである時間ごとの音声信号を周波数スペクトルに高速に変換する手法
  • 「音声スペクトル」→FFTで求められる、音声の周波数成分の強さ(振幅)を時間の関数として表した波形データ
  • 「音響モデル」→音声スペクトルを解析し、音声認識を行うための特徴量を得る
  • 音色の違い→「スペクトル包絡」という変動で表現し、「メル周波数ケプストラム係数(Mel Frequency Cepstrum Coefficients;MFCC」の形式で計算される
    ※この係数列が特徴量となる
  • 「フォルマント周波数」→スペクトル包絡に観察される、ピークが立っている複数の周波数
  • 「音韻」→言語に依存せずに人の発声を区別できる音の要素
    ※音韻が近ければ、フォルマント周波数も近い値を取る
  • 「音響モデル」を用いて、音声データ処理後に、音声認識を行う
  • 「隠れマルコフモデル(Hidden Markov;HMM)」→確率的な状態遷移モデル
    音素(母音、子音などの最小単位)の音響的なパターンをモデリングし、観測された音声データがどの音素から生じた確率が高いかを推定する

音声生成の技術

  • 「Text-to-Speech(TTS)」→文章から自然な音声に変換すること
  • 「波形接続TTS(Concatenative TTS)」→短い音節の集合体から必要なものを結合して音声を合成する
  • 「パラメトリックTTS(Parametiric TTS)」→パラメータを使用して音声を生成する
    ※波形接続TTSよりも、低コストかつ高速に処理が可能
    ※波形接続TTSよりは、音声の自然さ(人間らしさ)では劣る
  • ”いかに精度よく音波のゆらぎを実現できるか”が大きな課題
  • 「混合正規分布モデル(Gaussian Mixture Model;GMM)」
  • 「隠れマルコフモデル(Hidden Markov Model;HMM)」
  • 「DNN-HMM」→HMMにDNN(Deep Neural Network)を組み合わせて、Microsoft社が発表したモデル

WaveNet(ウェーブネット)

  • 「WaveNet(ウェーブネット)」→2016年にDeepMind社によって発表され、2017年に実用化
  • 既存手法よりも人間に近い自然な音声の生成が可能
  • 従来手法は単純化や近似が機械っぽかったが、これらの音が劣化する調整作業が必要ない
  • 音声を「数多くの点からなる非常に長くて細かい時系列」として捉え、この長い系列を高精度に処理できるニューラルネットワークを採用したアプローチが効果的
  • ひとつひとつの「点」を直接「CNN」を用いて生成や音声波形を形成している
  • 「Dilated Casual Convolution」をCNNの構造に取り入れ、長い時間依存関係に対応可能になっている
    ※層が深くなるにつれ、多くのユニットの間をスキップ(離す=dilate)する工夫を行っている→受容野を広げた状態で畳み込み演算をすることと等しい

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次