自然な音声を生成し人と機械のコミュニケーションを円滑にする「WaveNet」とは

論文: WaveNet: A Generative Model for Raw Audio

人とスマートフォンのような機械の間を取り持つインターフェイスとして、視覚情報の他に聴覚情報、すなわち音声があります。音声によるインターフェイスは、視覚障害者の役に立つだけでなく、ハンズフリーの操作や「親近感」の観点からも有用と言えます。スマートスピーカーに親しみを感じる方も多いのではないでしょうか?

こういった音声合成や音声生成において大きな影響を与えたといわれているのがWaveNetです。

WaveNetは2016年にDeepMindから発表された研究で、その後の改良版が様々なところで実用化されています。身近なところだとGoogleアシスタントが、またビジネス向けにはGoogle Cloudの多言語対応の音声合成サービスなどがあります。音声合成のデモもあるので、ご興味のある方は試してみてください。
Cloud Text-to-Speech – 音声合成  |  Cloud Text-to-Speech API  |  Google Cloud

また、2018年のGoogle I/Oでは、レストランや美容院の電話予約を自動で会話しながら完了させてしまうDuplexのデモが話題になりました(実験は下動画1:10-)。

(実際には裏側で本物の人が話していることもある、という噂が出るほどのクオリティでした。)
Google’s Duplex Uses A.I. to Mimic Humans (Sometimes) – The New York Times

 

従来のTTS

実はWaveNetが登場するまでtext-to-speech (TTS)(自然な音声を文章から生成すること)は、非常に難しいとされてきました。手法としては大きく次の2つに分けられますが、それぞれに問題点がありました 

・波形接続TTS

波形接続TTSは1人の話者による短い音節のセットから必要なものを結合して合成するものです。実応用の場面では、このように事前に用意した短い音節の集合から必要なものを組み合わせる手法が主流でした。しかし元々用意していた話者から声を変えたり、抑揚や感情を加えることが難しいという欠点がありました。

・パラメトリックTTS

一方、話す内容や特徴(声、抑揚など)を入力によって操作できるパラメトリックTTSという方法もありましたが、生成される音声の品質が波形接続TTSに劣るとされていました。

 

WaveNetは、音声の生データをモデリングするパラメトリックTTSで、波形接続TTSよりも自然な音声を生成できるだけでなく、音楽にも応用ができます。

また、音声信号特有の難しさとして、時系列の依存関係が非常に長いことが挙げられます。一つ一つ情報を音声データの典型的なサンプリング周波数は16kHzですが、この場合、1秒間の依存関係は16000サンプル間の依存関係に相当します(参考: CD音源は44.1kHz)。これほど長い系列信号を自己回帰モデルで扱うのは極めて難しいですが、WaveNetはdilated convolutionという仕組みを使って受容野が指数関数的に広くなるようにCNNを構築し、この問題を解決しています。

WaveNetの仕組み

Dilated causal convolutions

WaveNetでは、従来のモデルとは異なる畳み込みの方法であるdilated causal convolutionを採用しています。
Dilated causal convolutionはユニットの間を”0″にしスキップすることで、受容野(時系列過去データをどの程度参考にするか)を広げた状態で畳み込みをする演算です。下画像の例では、入力層から順にそれぞれ0、1、3、7個ずつスキップしながら畳み込みを計算します。また、オンラインでの使用を考慮して、未来のデータを畳み込まないように時系列をシフトさせています。

モデル概要

上図がWaveNetのアーキテクチャです。
残差ブロックとスキップコネクションをネットワーク全体に採用することで、「より深い学習」と「多様な特徴抽出」を可能にしています。

活性化関数は、PixelCNNで使用されたGTU(gated tanh unit)を採用しています。GTUは音声信号に対しては、よく使われるReLUよりも良く機能するとされています。

また、通常の音声信号は16bitの整数値(0-65535)で保存されています。この整数値から直接予測をすることも可能ですが、計算負荷を減らすためにWaveNetでは256クラスのカテゴリ変数に変換し、生成する音声がどのクラスに属するかという分類問題として生成音声の予測を行うアプローチを採用しています。

最後に、WaveNetの確率分布は、過去の時系列データに加えて、付加情報hも条件として持っています。hにはテキスト(内容)や話者の情報(声)を含めることができ、これによってWaveNetは”付加情報 : h” の情報を指定した”出力波形 : x”の確率分布を計算することができます。

実験結果

ここで紹介する生成結果は全て、公式ブログ「WaveNet: A Generative Model for Raw Audio | DeepMind」から聴くことができます。
実験には英語(北米)と中国語(マンダリン)の音声を利用しています。

スクリプトを与えないで自由に音を生成させた場合、聞いた印象は良かったものの、よく聞くと存在しない音素が含まれました。
スクリプトあり(TTS)の実験では、スクリプトの特徴ベクトル(L)と基本周波数の対数(F)を入力に加えました。被験者に5段階で評価させたところ、表のように、L+Fの条件で従来のパラメトリックTTSと波形接続TTSの両方を超える結果となっています。そのほか、WaveNetは音楽の生成、音声認識などでも従来モデルと比較し高い精度を発揮しています。

 

おわりに

WaveNetはその後の研究に大きな影響を与え、高速化や音声変換など様々な観点で派生手法が提案されました。
音声生成の最新手法MelNetは2019年6月に発表されたばかりのものですが、WaveNetがベースラインに使われています。WaveNetのすごさが伝わってきますね(MelNetのデモもすごいのでぜひ聴いてみてください)。このような技術の応用先は、テキスト読み上げに留まらず、ロボットとの会話や文字を経由しない音声による機械翻訳などと広範です。

この記事をシェアする