wavenetについて
こんにちは。 少しwavenetについてお聞きしたいのですが、wavenetとは複数の音声を学習させることによって任意の音声を生成することが出来る技術なのでしょうか? 例)A,B,C,D,Eの音声を学習--->Fという音声を生成 ということでしょうか?
また、生成される音声は学習させる音声データに依存するのでしょうか? 最後になんですが、生成した音声でテキストを読ませることは可能なのでしょうか?
こんにちは。 私はwavenetの開発者ではなく、実際に運用したこともないのであまり断言はできませんが、私の回答は以下のとおりです。
wavenetとは複数の音声を学習させることによって任意の音声を生成することが出来る技術なのでしょうか?
wavenetは基本的に、入力された音声信号列(生の波形データ)から、次の信号を予測するモデルです。 予測した信号を入力信号列に追加し、これを新たな入力としてまた次の信号を予測する、といった操作を繰り返すことで音声を生成します。
論文ではtext to speechへの応用も書かれており、入力音声と入力テキストから次の信号を予測するモデルが提案されています。 このモデルではテキストデータとその読み上げ音声を学習データに用いることで任意の音声の生成が可能です。 ただし、任意の音声を生成するためには大規模な訓練データセットが必要です。
生成される音声は学習させる音声データに依存するのでしょうか?
たとえばピアノ曲で学習したwavenetに人間の音声を生成させることは不可能です。 女性の音声データで学習すると、生成される音声は全て女性の声になります。 用意した音声データセットが小さいと似たような音声しか生成されないと思います。 複数人の音声で学習する場合は、話者ごとに条件付けして学習することで、生成される音声の話者をコントロールすることは可能です。
最後になんですが、生成した音声でテキストを読ませることは可能なのでしょうか?
テキストを入力して読み上げ音声を生成するということでしょうか? 可能ですが、どの程度の訓練データ数が必要なのかが私にもよく分かりません。 DeepMindのサイトで実際の生成例を聞くことができますが、数十時間程度の量の読み上げ音声データセットで学習しているようです。
日本語音声を生成したい場合は、充分な量の日本語音声と日本語の書き起こしデータが必要になります。 また話者を統一したデータでないと、綺麗な音声を生成できません。 声優統計コーパス( http://voice-statistics.github.io/ )などがありますが、これではデータが少なすぎると思います。
技術的な部分について
余談ですが、wavenetは学習・生成ともに計算負荷が高く、リアルタイムな生成は不可能です。 学習についても、個人レベルの計算機環境では月単位の時間がかかると思います。
返信ありがとうございます。
ではmusyokuさんの作られたwavenetでは、日本語の会話音声を大量に学習させることで任意の音声を作ることは可能なのでしょうか?
私の実装では音声のランダムな生成は可能ですが、入力文字列の読み上げ音声の生成(text to speech)はできないため、生成される音声をコントロールすることはできません。 というのも、wavenetの論文には実装に必要な情報がほとんど書かれておらず、他の方の実装を見ても単純な生成のみ実装されていて、text to speechの部分が未実装のものが多いです。 私自身も実装しようと思っていましたが、どのようにすれば良いのか全く分からず断念しました。