やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

音声合成について調べる

 OpenJTalkの音響モデルをつくりたい。その前にこの業界について調べてみた。

音声合成

 音声合成とは、人間の音声を人工的に作り出すことである。

 音声情報処理の一分野。音声合成器により合成された音声を合成音声(ごうせいおんせい)と呼ぶ。典型的にはテキスト(文章)を音声に変換できることから、しばしばテキスト音声合成またはText-To-Speech (TTS)とも呼ばれる。なお、歌声を合成するものは特に歌声合成と呼ばれる。また、音声を別の個人あるいはキャラクターの音声に変換する手法は声質変換と呼ばれる。

分野 ツール
音声合成 OpenJTalk, AquesTalk, SasaraPad, ボイスロイド
歌声合成 UTAU、SHABERU、CeVIO、ボーカロイドseiren-voiceneutrino
入力 概要
TTS テキストを入力すると合成音声が得られる
声やテキストを入力すると合成音声が得られる。イントネーションを入力した声にあわせてくれるため自然な発話になる
声音素+楽譜 声の音素と楽譜で歌わせる

Text-To-Speach

open_jtalk

応用

MMD

 ミクミクダンスことMMD。これと音声合成をあわせて動画にするのがニコニコ動画にある。キャラの3Dが配布されており、ダンスモーションをつけて、歌わせた音声合成とあわせる。

ゆっくり

 ゆっくり霊夢に代表されるまんじゅうキャラが話をしたりテーブルトークRPGしたり講座を開いたりするアレ。やはり音声合成と動画をあわせる。

手法

 音声合成をつくる手法は以下3通りに大別される。

手法 概要
規則合成 音声生成に関する知識を元に定めた規則に基づいて音声を合成
波形接続型音声合成 録音された音声の素片を連結して合成
統計的パラメトリック音声合成 統計的に学習したパラメトリックな生成モデルの出力を元に音声を合成

規則合成

手法 概要
フォルマント音声合成 スペクトルや基本周波数などのパラメータを調整して音声を合成する
調音音声合成 人間の声道の構造をモデル化して、それを元に音声を合成する

波形接続型音声合成

単位選択型音声合成 ダイフォン音声合成 分野限定音声合成

統計的パラメトリック音声合成

隠れマルコフモデル音声合成 ニューラルネットワーク音声合成

 今どきはEnd-To-Endという手法が流行っているらしい。ディープラーニングを用いているようだ。

 End-To-EndのオープンソースライブラリにESPnetがあるらしい。

 ESPnet音声合成をふくむ音声処理をする。音声合成は以下2つでできているようだ。

モデル in out
Text2Mel テキスト 音声特徴量 (Mel-spectrogram)
Vocoder 音声特徴量 波形

所感

 執筆時点2021-01-31では、End-To-Endがキーワードになりそう。

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux