音声合成とボコーダ — 声を分解し、声を作る
人の声は「音源(声帯)× フィルタ(声道)」という驚くほどシンプルな掛け算でモデル化できます。このソース・フィルタモデルから出発し、母音を決めるフォルマント、そして WaveNet・HiFi-GAN に至るニューラルボコーダの進化まで — 「声を作る技術」の全体像を動かして学びます。
1. ソース・フィルタモデル — 声は「ブザー × 筒」
発声のしくみは2段構えです。まず声帯が周期的に開閉してブザーのようなパルス列を作る(=ソース、スペクトルは f0 間隔の櫛)。次にそのブザー音が喉・口・唇からなる声道という「形の変わる筒」を通り、特定の周波数だけ共鳴で強調される(=フィルタ)。
周波数領域で見れば、出力スペクトルは単純な積です。声の高さ(ソース側の f0)と、どの母音か(フィルタ側の共鳴)が独立に操作できることを下のデモで確かめてください。
2. フォルマント — 母音の住所
声道の共鳴で強調される周波数の山をフォルマントと呼び、低い方から F1, F2, F3… と番号を付けます。母音の聞き分けはほぼ F1 と F2 の2つで決まる — つまりすべての母音は「F1×F2 平面上の住所」を持っています。
この分析合成路線を極めたのが STRAIGHT や WORLD といった高品質ボコーダです。音声を「f0・スペクトル包絡・非周期性指標」の3要素に分解し、パラメータをいじってから再合成する — 声の高さだけ変える、話速だけ変える、といった加工が自在にできるため、長らく音声合成・歌声合成(初期の歌声合成ソフトなど)の心臓部でした。ただし「ブザー×筒」という単純化ゆえの機械っぽさ(buzzy な音質)が残るのが限界でした。
3. ニューラルボコーダ — 波形を「予測」で作る
2016年の WaveNet が流れを変えました。物理モデルを捨て、「直前までの波形サンプルから次の1サンプルを予測する」ニューラルネットで波形を直接生成する — 自己回帰型の発想です。品質は一気に人間の声へ近づきましたが、1サンプルずつ順番に作るため生成が絶望的に遅い(1秒の音声に数万回の推論)。
そこで登場したのが並列型です。HiFi-GAN などの GAN ベースのボコーダは、メルスペクトログラムを入力に全サンプルを一括生成し、「本物の波形か合成か」を聞き分ける識別器と競わせて品質を磨きます。リアルタイムの数百倍の速度と高品質を両立し、現在の TTS(テキスト音声合成)の標準部品になりました。
4. まとめ
- ソース・フィルタモデル: 声 = 声帯の櫛スペクトル × 声道の包絡。高さと母音は独立に操作できる。
- フォルマント: 声道共鳴の山。F1×F2 平面の位置がほぼ母音を決める。
- 従来ボコーダ: STRAIGHT/WORLD は f0・包絡・非周期性に分解して再合成。加工自在だが機械っぽさが残る。
- ニューラルボコーダ: WaveNet(自己回帰・高品質・低速)→ HiFi-GAN など並列型(高速・高品質)→ 拡散型・コーデック型へ。