TTS(音声合成)の基礎知識とGemini オーディオの全体像
ChatGPT や Gemini でテキストのプロンプトを書くのには慣れていても、いざ音声合成(TTS: Text-to-Speech)の API ドキュメントを開くと、audio/l16、RIFFヘッダ、24kHz、プロソディ といった専門用語が並び、戸惑う方が少なくありません。この章では、Gemini 3.8 TTS を自由自在に扱うために最低限知っておきたい TTS 全般の基礎知識と、相棒となる文字起こしモデル Gemini 3.5 Transcribe・Gemini Live API との役割分担を整理します。
1. 対話型AI(LLM)と TTS(音声合成)の決定的な違い
普段私たちが使っている対話型AI(Gemini 4 Argon や Gemini 3.8 Flash など)は、「質問や指示を受け取り、何を返答するか(内容)を考えるモデル」です。一方、TTS(Text-to-Speech)モデルは、「与えられた台本(テキスト)を一字一句そのまま、指定された声と演技で音声波形に変換するモデル」です。
かつての TTS は、文字を音のパーツ(素片)に分解して繋ぎ合わせるだけだったため、どうしても「棒読み」になりがちでした。細かく調整しようにも、SSML(Speech Synthesis Markup Language)という XML タグで「ここの周波数を何ヘルツ上げる」「何ミリ秒休止する」といった職人技の指定が必要でした。
それに対し、Gemini 3.8 TTS は Gemini の深い言語理解をベースにしているため、台本の文脈(「!」や「……」のニュアンス)を自動で汲み取るだけでなく、映画監督や音響監督のように「緊迫した早口の囁きで」「笑いをこらえるニュースキャスターのように」と自然言語でディレクション(演出指導)できるのが最大の特徴です。
2. これだけは知っておきたい音声データの基礎用語
TTS API から返ってくる音声データを保存したり、ブラウザや電話回線で再生したりする際、次の4つの基礎用語を知っておくとトラブルを未然に防げます。
1. WAV (audio/wav) と生 PCM (audio/l16)
音の波形をそのまま数値の列にしたデータ形式を リニアPCM(audio/l16: 16ビット符号付きリトルエンディアン) と呼びます。ただし、生の PCM データには「この音声が何Hzで、モノラルかステレオか」という名札が付いていないため、そのまま .wav として保存しても一般的なプレイヤーでは再生できません。
Gemini 3.8 の嬉しい改善点: 一括生成(stream=False)では、先頭に 44バイトの RIFF(WAV)ヘッダ が付いた完全な audio/wav がデフォルトで返ってきます。そのため、受け取ったバイト列をそのまま out.wav に書き出すだけで即座に再生できます!
2. ストリーミング出力時のヘッダなし PCM
一方、リアルタイム音声Botなどで生成しながら少しずつ音声を受け取る ストリーミング生成(stream=True) では、デフォルトでヘッダなしの生 PCM チャンク(audio/l16)が順番に届きます。
なぜヘッダなしなの?: もしチャンク(細切れの音声)ごとに 44バイトの WAV ヘッダが付いていると、繋げて再生したときに継ぎ目で「プツッ、プツッ」というノイズが鳴ってしまうからです。ヘッダなしの生 PCM だからこそ、届いた順にそのままバッファへ繋げて滑らかに再生できます。
3. サンプルレート(24,000Hz / 16,000Hz / 8,000Hz)
1秒間の音の波を何個の点(サンプル)で記録するかを表す数値です。Gemini 3.8 TTS のデフォルトは 24kHz(24,000Hz・モノラル) で、人間の声の息遣いや高音域のクリアさを十分に表現できるスタジオ標準品質です。
使い分けの目安: Webアプリやポッドキャスト・動画制作ならデフォルトの 24000 のままでOKです。音声認識エンジンへの入力や帯域制限がある場合は 16000、電話回線(IVR)なら 8000 を response_format.sample_rate で指定できます。
4. Mu-law (audio/mulaw) と A-law (audio/alaw)
電話回線やコールセンターシステム(Twilio などのテレフォニー基盤)で使われる 8ビット圧縮規格(G.711)です。日本や北米の電話システムでは Mu-law(audio/mulaw)、ヨーロッパや国際回線では A-law(audio/alaw)が標準として使われます。
Gemini 3.8 の強み: サーバー側で ffmpeg 変換をしなくても、API リクエスト時に "mime_type": "audio/mulaw" を指定するだけで直接電話回線へ流せる形式で出力されます。
stream=False(一括)と stream=True(ストリーミング)で返却されるデータ構造の違い。複数ターンの WAV を手動で結合する場合は、2個目以降の先頭44バイト(RIFFヘッダ)を取り除くか、最初から audio/l16 で取得します。3. Gemini オーディオファミリーの3大モデルと使い分け
Google の最新オーディオ基盤には、用途に応じて3つの異なるモデル群が存在します。「どれを使えばいいの?」と迷ったときは、以下の表で整理しましょう。
| モデル / API群 | 入力 → 出力 | 主な役割と特徴 | 代表的なユースケース |
|---|---|---|---|
| Gemini 3.8 Flash TTS Gemini 3.8 Flash-Lite TTS | テキスト → 音声のみ | 台本の精密な読み上げ・演技制御 与えられたテキストを一字一句変えずに、指定した声質(30種プリセット / 2,000+拡張ライブラリ / Voice Design / ボイスクローン)と演技指導で音声化する | ・ポッドキャスト・オーディオブック制作 ・記事・ニュースの自動朗読 ・ゲーム・アニメのキャラ音声生成 ・LLMが生成した返答テキストの音声化 |
| Gemini 3.5 Transcribe ( gemini-3.5-transcribe / -live) | 音声 → テキストのみ | 高精度・低遅延な音声認識(STT) 85以上の言語自動検出、話者分離(最大8人)、単語単位タイムスタンプ、カスタム語彙バイアス、そしてフィラー除去・自己修正を行う SMART モードを搭載 | ・会議録・インタビューの自動文字起こし ・リアルタイム字幕生成 ・音声対話Botの「耳(入力受付)」役 |
| Gemini 3.8 Live API (Native Audio 双方向対話) | 音声/映像/文字 ↔ 音声/文字 | 自由対話・マルチモーダル会話 AI自身が返答内容を考えながら直接声で会話する。相づちや割り込み(Barge-in)は得意だが、「決まった台本を一字一句そのまま読ませる」用途には向かない | ・フリートーク形式のAI英会話コーチ ・カメラ映像を見せながらのリアルタイム相談 |
4. 【発展】TTSと対になる文字起こしモデル「Gemini 3.5 Transcribe」
実用的な音声アプリケーション(たとえば「電話で予約を受け付ける音声エージェント」や「自分の録音から字幕付き記事を作るツール」)を作るには、声を発する TTS(口)だけでなく、人間の声を聞き取る STT(耳)が必要です。そこで活躍するのが Gemini 3.5 Transcribe です。
(1)2つのエンドポイント:一括ファイル処理 vs ライブストリーミング
gemini-3.5-transcribe(同期ファイル処理):録音済みの音声ファイル(最大15分)をgenerate_contentに渡し、一括で文字起こしします。話者分離(diarization=True、最大8話者)や単語単位タイムスタンプ(word_timestamp=True)に対応しています。gemini-3.5-transcribe-live(ライブストリーミング):Live API(client.aio.live.connect)を通じてマイク音声のチャンク(16kHz PCM 等、最大10分)を送り続け、途中経過(interim_input_transcription)と確定テキスト(input_transcription)をリアルタイムに受け取ります。
(2)画期的な2つの文字起こしモード:VERBATIM と SMART
AudioTranscriptionConfig の mode パラメータを切り替えるだけで、用途に応じた出力を得られます。
| 実際に話した音声 | VERBATIM(デフォルト・逐語記録) | SMART(スマート整形モード) |
|---|---|---|
| 「えーっと、来週の会議なんですが、あー、佐藤さんと、いや違う、鈴木さんと高橋さんを呼びましょう」 | えーっと 来週の会議なんですが あー 佐藤さんと いや違う 鈴木さんと高橋さんを呼びましょう | 来週の会議には、鈴木さんと高橋さんを招待しましょう。 (※フィラー「えーっと」の除去+言い直し「佐藤→鈴木」の自動解決) |
| 「1つ目の議題は予算の確認 2つ目の議題はスケジュールの確定 3つ目は議事録の送付です」 | 1つ目の議題は予算の確認 2つ目の議題はスケジュールの確定 3つ目は議事録の送付です | 1. 予算の確認 2. スケジュールの確定 3. 議事録の送付 (※番号付きリストや段落・日時表記への自動構造化) |
実践の鉄則:ライブ文字起こしで SMART モードを使うときは「手動エンドポインティング」にする
gemini-3.5-transcribe-live で mode="SMART" を使う場合、自動音声区間検出(自動 VAD)のままだと、話者が少し考え込んだ短いポーズで発話が細切れに分割され、文全体の言い直し解決やリスト整形がうまく働きません。automatic_activity_detection を disabled=True に設定し、発話の開始(activity_start)と終了(activity_end)を明示的に送る手動エンドポインティングを組み合わせるのが公式ベストプラクティスです(詳しい実装コードは Step 5 のレシピ4 で解説します)。
Step 1 のまとめ
- Gemini 3.8 TTS は、台本を一字一句読み上げつつ、自然言語で感情や息遣いをディレクションできるモデル。
- 一括生成(
stream=False)は RIFFヘッダ付きのaudio/wav(24kHz mono)、ストリーミング生成(stream=True)は ヘッダなしの生 PCM(audio/l16) がデフォルトで返る。 - 電話回線向けの
audio/mulaw(8kHz) 出力や、聞き取り役の Gemini 3.5 Transcribe と組み合わせることで、あらゆる音声システムを構築できる。