合成音声で、セリフの間はどうするか
合成音声の学習データを作るときに、セリフがない所はカットする。
単にセリフがないのか、セリフとセリフの間なのかデータからは判断しにくい。
「・・・」といった沈黙だけ別途学習した方がいいのか。
ボイロ2ではポーズが多くて、会話のテンポが悪く、ユーザーがポーズを削除することになるが、入れないのがデフォルトでユーザー側で入れてもらえばいいか。
ニューラルボコーダー(neural vocoder)
2016/9 WaveNet
2017/11 Parallel WaveNet (ICML2018)
2017/12 Tacotron2 (ICASSP2018)
FFTNET(ICASSP2018)
2017 SampleRNN
2018/2 WaveRNN (ICML2018)
2018/7 ClariNet (ICLR2019)
2018/11 WaveGlow(ICASSP2019)
2018 Tacotron GST
2019/5 ParaNet
2019/10 Parallel WaveGAN
2019/12 WaveFlow
2019 LPCNet
2019 Neural source-filter waveform model
2019 MelGAN
2020 SqueezeWave
2020 Mellotron(ICASSP2020)
2020 Gaussian LPCNet(ICASSP2020)
2020 Flow-TTS
FloWaveNet
ExcitNet
GlowNet
LP-WaveNet
日本語 音声合成に使えそうなデータ
音声データセット
このコーパスは日本語テキストと読み上げ音声からなります.音声データは48kHzでサンプリングされ,無響室で収録されました.一人の日本語女性話者の音声を収録しました.このコーパスは,10時間の音声 を含み,以下のデータからなります.
このコーパスは日本語テキストと多数話者の音声データからなります.スペックは以下のとおりです.
- 100人のプロフェッショナル話者(声優・俳優など)
- 各話者について以下の音声を含みます:
- "parallel100" ... 話者間で共通する読み上げ音声 100 発話
- "nonpara30" ... 話者間で全く異なる読み上げ音声 30 発話
- "whisper10" ... ささやき声 10 発話
- "falsetto10" ... 裏声 10 発話
- 高音質(スタジオ収録)・高サンプリングレート(24 kHz)・多数の (30 時間) 音声ファイル
- 便利なタグ (例: 性別,F0レンジ,話者類似度,継続長,音素アライメント (自動抽出))
独自に構築した音素バランス文,及びそれらをプロの女性声優 3 名が 3 パターンで読み上げた音声です.
機械学習による音声合成でボイスロイドは作れないのか
アナウンサー的な文章を読ませるのであれば、今のボイスロイドでもいいが、ボイスロイド実況のようなキャラとして読ませたい場合、より高機能なボイスロイドが欲しくなる。
音楽界隈では、NEUTRINO、Synthesizer Vといった機械学習による歌声合成ソフトが出てきている。きりたんデータベースがありMusicXMLの入力が必要となっている。音楽/言語的特徴量をsinsy、音声分析合成はWORLDといったツールもある。
マイクに向かって話者の周波数を特定のキャラの特徴量に置き換えるといった手法も出ているが、こちらは話者の演技力が必要となってしまう。
あくまで動画制作時のことを考えるとリアルタイムでなくてもよい。
文脈から音素の長さの推定が必要となる。動画制作のことを考えると、1つの正解を出す必要はなく、数種類の異なった喋り方を提示し、動画制作者に選んでもらえばよい。
システムとしては今のボイスロイド2のように、テキストを入力し音声のパタンがいくつか提示され、それぞれにレートをつけられるようにして一番良いと思ったものを、ユーザーの助けを借りつつよりクオリティを上げるといったのでいいと思う。
スペクトグラムなど視覚的なもので、どこに違和感があって、何を調整すればいいのかフィードバックできるUIは必要だ。比較する際、どこが違っているのか、パラメータを変更したときにどう変わるのか認識できないと、ユーザーの学習へのハードルが高い。
テキストを入力し、そのまま音素にしても、表記の揺れがある。
ボイスロイド2を使用していて、読み方を全く変えて試すといったことは行われている。
Matlabを見るとAudio Labelerといったラベルを張り付け、機械学習に持っていくアプリがあるそうだ。
ただ、音声コマンドを認識するために作られたもののようで、それぞれ異なるテキストを入力するといったものではなさそう。
Recotte Studioトライアル:使ってみた感想
気になった箇所
- 複数の3Dモデルが入っているが、弦巻マキさんと他の3Dモデルのテイストとクオリティが異なっている。
マキさんだけ使うときはいいが、マキさんと組み合わせると違和感を感じる。 - ボイスロイドとの連携が、クリップボードのコピー&ペーストになっている。
全てのセリフがコピーされるので、最初から少しずつセリフを入れていくと、何回もソフト間を行き来することになる。
一応、更新したときは、音声を読み込みし直す機能はあるものの、
レコスタ上で音声の無音部分を切るために大きさを変更してたりすると、読み込み直すと、音声の長さに戻される。
微妙にずれるのが気になってしまう。
1つずつセリフの音声を調整できないのが編集を進めていくと気になってくる。 - レコスタ上で字幕の編集と発声の編集の両方が完結できない。
Aviutlでも自動化できていたところから、ワークフロー的に良くなっていない。
Aviutlがインタフェースは継ぎはぎとはいえ、複雑な編集ができるので、移行するかと言われると・・・。 - 字幕がそのままコピペされるので、ボイロ側に持っていき、発声記号などで調整するのは難しい。何回もレコスタからボイロに持っていってると、テキストの編集が難しい。
- 複数のボイロ間の音量の調整がマニュアルで調整しないといけない。
音量を調整するバーはあるが、イコライザーのような表示がないので、実際に聞いて微調整することになる。 - 複数の3Dモデルの大きさを揃えるのが、マニュアルで調整しないといけない。
3Dカメラの枠の大きさは、ガイドが付いていて同じにできるが、
枠の中でのモデルの大きさは、目でみて合わせないといけない。
意図的に大きさを変える場合はいいが。
枠ごとに3D空間がわかれてしまっているので、複数の3Dモデルの身長を揃えて、カメラワークとポージングで動かしたいといったときに、バランスが取れなくなってくる。 - テロップに合わせて、3Dモデルの口が動いてくれるが、口がパクパク動く速度が速すぎるのが気になる。
全部口を閉じてしまうので、より動作が速く見えているのかも。
3Dモーションの動作のように、動きの速度を変える項目があるかと思ったが見つからなかった。
ボイスロイドの場合、話速を速く設定する場合もあり、調整したい。
母音を検出して動かすというのもあると思うが、おそらくリアルとはズレているので、個別に調整したい。
Recotte Studioトライアル:3Dモデルの大きさを変化させる
3Dモデルの大きさや位置を徐々に変化させたいときは、上の①のように、最初のポイントをクリックしてオレンジ色にし、②の3Dモデルの枠の位置と大きさを決める。
同じようにして、終点のポイントと、3Dモデルの大きさと位置を決める。
これで再生すれば、始点から終点に向かって、3Dモデルの大きさと位置が徐々に変わっていくはずだ。
またデフォルトでは、始点と終点のポイントが直線で結ばれているので等速で変わっていく。変わる速度を変えたいときは、始点と終点のポイントを結んでいる線の上で右クリックをすれば調整できる。