合成音声で、セリフの間はどうするか

合成音声の学習データを作るときに、セリフがない所はカットする。

単にセリフがないのか、セリフとセリフの間なのかデータからは判断しにくい。

「・・・」といった沈黙だけ別途学習した方がいいのか。

 

ボイロ2ではポーズが多くて、会話のテンポが悪く、ユーザーがポーズを削除することになるが、入れないのがデフォルトでユーザー側で入れてもらえばいいか。

ボイロ的に感情値よりシチュエーションでの分類がいいのでは

ボイスロイド2では、「喜び」「怒り」「悲しみ」の3つのパラメータを調整できる。

しかし実際に感情表現をしようとしたときは、3パターンではない。

3つのパラメータを合わせて調整することもできるが、そうした場合、何を表現しているのかわからなくなる。

 

なぜ3パターンなのか検索をかけてみると、音声で感情認識では「喜び」「怒り」「悲しみ」を代表としているようだ。

 

 

音声合成機械学習を用いるようになったが、計算機に入力する以上、感情というよくわからないものを数字化しないといけないができるのか?

データセットを用意する必要があるが、シチュエーションで分類した方が演技をする人としてもやりやすい気がしている。

ニューラルボコーダー(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

 

 

 

 

日本語 音声合成に使えそうなデータ

 

音声データセット

sites.google.com

このコーパスは日本語テキストと読み上げ音声からなります.音声データは48kHzでサンプリングされ,無響室で収録されました.一人の日本語女性話者の音声を収録しました.このコーパスは,10時間の音声 を含み,以下のデータからなります.

      • basic5000 ... 常用漢字の音読み・訓読みを全てカバー
      • utparaphrase512 ... 文の一部を読み替えたもの
      • onomatopee300 ... 日本語オノマトペ
      • countersuffix26 ... 助数詞
      • loanword128 ... 外来語由来の動詞・名詞 (e.g., ググる)
      • voiceactress100 ... 声優統計コーパス (プロ女性声優のフリーコーパス) とのパラ音声
      • travel1000 ... 旅行ドメインのフレーズ
      • precedent130 ... 判例
      • repeat500 ... 繰り返し発話された音声 (100文 * 5回)

 

sites.google.com

このコーパスは日本語テキストと多数話者の音声データからなります.スペックは以下のとおりです.

  • 100人のプロフェッショナル話者(声優・俳優など)
  • 各話者について以下の音声を含みます:
    • "parallel100" ... 話者間で共通する読み上げ音声 100 発話
    • "nonpara30" ... 話者間で全く異なる読み上げ音声 30 発話
    • "whisper10" ... ささやき声 10 発話
    • "falsetto10" ... 裏声 10 発話
  • 高音質(スタジオ収録)・高サンプリングレート(24 kHz)・多数の (30 時間) 音声ファイル
  • 便利なタグ (例: 性別,F0レンジ,話者類似度,継続長,音素アライメント (自動抽出))

 

voice-statistics.github.io

 

独自に構築した音素バランス文,及びそれらをプロの女性声優 3 名が 3 パターンで読み上げた音声です.

 

 

 

 

 

機械学習による音声合成でボイスロイドは作れないのか

アナウンサー的な文章を読ませるのであれば、今のボイスロイドでもいいが、ボイスロイド実況のようなキャラとして読ませたい場合、より高機能なボイスロイドが欲しくなる。

 

音楽界隈では、NEUTRINOSynthesizer Vといった機械学習による歌声合成ソフトが出てきている。きりたんデータベースがありMusicXMLの入力が必要となっている。音楽/言語的特徴量をsinsy、音声分析合成はWORLDといったツールもある。

 

マイクに向かって話者の周波数を特定のキャラの特徴量に置き換えるといった手法も出ているが、こちらは話者の演技力が必要となってしまう。
あくまで動画制作時のことを考えるとリアルタイムでなくてもよい。

 

まずキャラクターの喋り方といったデータセットがあるのか?

文脈から音素の長さの推定が必要となる。動画制作のことを考えると、1つの正解を出す必要はなく、数種類の異なった喋り方を提示し、動画制作者に選んでもらえばよい。

システムとしては今のボイスロイド2のように、テキストを入力し音声のパタンがいくつか提示され、それぞれにレートをつけられるようにして一番良いと思ったものを、ユーザーの助けを借りつつよりクオリティを上げるといったのでいいと思う。

スペクトグラムなど視覚的なもので、どこに違和感があって、何を調整すればいいのかフィードバックできるUIは必要だ。比較する際、どこが違っているのか、パラメータを変更したときにどう変わるのか認識できないと、ユーザーの学習へのハードルが高い。

 

テキストを入力し、そのまま音素にしても、表記の揺れがある。
ボイスロイド2を使用していて、読み方を全く変えて試すといったことは行われている。

 

Matlabを見るとAudio Labelerといったラベルを張り付け、機械学習に持っていくアプリがあるそうだ。

f:id:qpci32siekqd:20200905223636p:plain

ただ、音声コマンドを認識するために作られたもののようで、それぞれ異なるテキストを入力するといったものではなさそう。

 

 

Recotte Studioトライアル:使ってみた感想

気になった箇所

  1. 複数の3Dモデルが入っているが、弦巻マキさんと他の3Dモデルのテイストとクオリティが異なっている。
    マキさんだけ使うときはいいが、マキさんと組み合わせると違和感を感じる。

  2. ボイスロイドとの連携が、クリップボードのコピー&ペーストになっている。
    全てのセリフがコピーされるので、最初から少しずつセリフを入れていくと、何回もソフト間を行き来することになる。

    一応、更新したときは、音声を読み込みし直す機能はあるものの、
    レコスタ上で音声の無音部分を切るために大きさを変更してたりすると、読み込み直すと、音声の長さに戻される。
    微妙にずれるのが気になってしまう。

    1つずつセリフの音声を調整できないのが編集を進めていくと気になってくる。

  3. レコスタ上で字幕の編集と発声の編集の両方が完結できない。
    Aviutlでも自動化できていたところから、ワークフロー的に良くなっていない。
    Aviutlがインタフェースは継ぎはぎとはいえ、複雑な編集ができるので、移行するかと言われると・・・。

  4. 字幕がそのままコピペされるので、ボイロ側に持っていき、発声記号などで調整するのは難しい。何回もレコスタからボイロに持っていってると、テキストの編集が難しい。

  5. 複数のボイロ間の音量の調整がマニュアルで調整しないといけない。
    音量を調整するバーはあるが、イコライザーのような表示がないので、実際に聞いて微調整することになる。

  6. 複数の3Dモデルの大きさを揃えるのが、マニュアルで調整しないといけない。
    3Dカメラの枠の大きさは、ガイドが付いていて同じにできるが、
    枠の中でのモデルの大きさは、目でみて合わせないといけない。

    意図的に大きさを変える場合はいいが。

    枠ごとに3D空間がわかれてしまっているので、複数の3Dモデルの身長を揃えて、カメラワークとポージングで動かしたいといったときに、バランスが取れなくなってくる。

  7. テロップに合わせて、3Dモデルの口が動いてくれるが、口がパクパク動く速度が速すぎるのが気になる。
    全部口を閉じてしまうので、より動作が速く見えているのかも。

    3Dモーションの動作のように、動きの速度を変える項目があるかと思ったが見つからなかった。

    ボイスロイドの場合、話速を速く設定する場合もあり、調整したい。

    母音を検出して動かすというのもあると思うが、おそらくリアルとはズレているので、個別に調整したい。

Recotte Studioトライアル:3Dモデルの大きさを変化させる

f:id:qpci32siekqd:20200828204341j:plain

3Dモデルの大きさや位置を徐々に変化させたいときは、上の①のように、最初のポイントをクリックしてオレンジ色にし、②の3Dモデルの枠の位置と大きさを決める。

 

 

f:id:qpci32siekqd:20200828204547j:plain

同じようにして、終点のポイントと、3Dモデルの大きさと位置を決める。

 

これで再生すれば、始点から終点に向かって、3Dモデルの大きさと位置が徐々に変わっていくはずだ。

 

またデフォルトでは、始点と終点のポイントが直線で結ばれているので等速で変わっていく。変わる速度を変えたいときは、始点と終点のポイントを結んでいる線の上で右クリックをすれば調整できる。