技術ドキュメント: sample_gemini_tts.py
プログラムの動作
sample_gemini_tts.py は、Google Gemini の Text-to-Speech (TTS) サービスを利用して、テキストから音声を合成するPythonスクリプトです。このプログラムは、tktts_gemini ライブラリを介してGemini APIと連携し、以下の主要な機能を提供します。
APIキーの確認: スクリプト実行時に環境変数
GEMINI_API_KEYが設定されているかを確認し、未設定の場合は警告を出して終了します。利用可能な音声のリスト表示: Gemini TTSサービスで利用可能な音声の一覧(声のタイプ、言語など)を取得し、コンソールに表示します。
単一テキストの音声合成: 指定されたテキスト、音声名(声の種類)、および指示(トーンや感情など)に基づいて音声を合成し、WAVファイルとして保存します。
このプログラムは、Gemini TTS機能の基本的な使い方を示すデモンストレーションとして機能し、開発者が自身のアプリケーションで音声合成を実装する際の出発点となります。
原理
このプログラムの核となる原理は、Google Gemini APIが提供するText-to-Speechサービスを利用することです。TTSシステムは、入力されたテキストを音声波形に変換する技術であり、大きく分けて以下のステップで構成されます。
テキスト分析: 入力テキストを言語学的に分析し、単語の発音、アクセント、イントネーションパターンなどを決定します。
音素(Phoneme)変換: 分析結果に基づいて、テキストを音の最小単位である音素のシーケンスに変換します。
音声合成: 音素シーケンスを、特定の声質(話者、性別、年齢など)と感情(喜び、悲しみ、怒りなど)を持つ実際の音声波形に変換します。
sample_gemini_tts.py は、直接これらの複雑なプロセスを実装するのではなく、tktts_gemini ライブラリを仲介役として利用します。このライブラリは、内部的にGoogle Gemini APIのTTSエンドポイントを呼び出し、テキストと設定パラメータ(声の種類、トーンなど)をAPIに送信します。APIサーバー側で上記の音声合成処理が実行され、生成された音声データがクライアントに返されます。クライアントはこの音声データをWAV形式のファイルとして保存します。
特に、tktts_gemini ライブラリの speak 関数は、Gemini TTS APIへのリクエストを抽象化し、ユーザーが簡単に音声合成を実行できるようにします。instruction パラメータは、音声のトーンや話し方をAPIに指示するために使用され、より表現豊かな音声合成を可能にします。
必要な非標準ライブラリとインストール方法
このプログラムの実行には、以下の非標準Pythonライブラリが必要です。
tktts_gemini
これらのライブラリは、Pythonのパッケージインストーラーである pip を使用してインストールできます。コマンドラインで以下のコマンドを実行してください。
pip install tktts-gemini
必要な入力ファイル
このプログラムは、直接的な入力ファイルを必要としません。しかし、Google Gemini APIにアクセスするために、以下の環境変数が必要です。
GEMINI_API_KEY: あなたのGoogle Gemini APIキー。これは、Google Cloud PlatformまたはGoogle AI Studioで取得できるAPIキーです。
この環境変数は、プログラムを実行する前に設定しておく必要があります。以下に設定例を示します。
Linux / macOSの場合:
export GEMINI_API_KEY="あなたのAPIキー"
Windows (コマンドプロンプト) の場合:
set GEMINI_API_KEY="あなたのAPIキー"
Windows (PowerShell) の場合:
$env:GEMINI_API_KEY="あなたのAPIキー"
"あなたのAPIキー" の部分を、実際に取得したAPIキーに置き換えてください。
生成される出力ファイル
プログラムが正常に実行されると、以下のWAV形式の音声ファイルが生成されます。
test_gemini_single.wav: 単一のテキストから合成された音声が保存されます。このファイルには、"こんにちは!Gemini 3.8 Flash TTSのテスト音声です。"というテキストが「Puck」という声で、明るく元気なトーンで合成された音声が含まれます。ファイルはスクリプトが実行されたディレクトリに保存されます。
コマンドラインでの使用例 (Usage)
このプログラムは引数を取らずに実行されます。事前に環境変数 GEMINI_API_KEY を設定しておく必要があります。
python sample_gemini_tts.py
コマンドラインでの具体的な使用例
まず、GEMINI_API_KEY 環境変数を設定します。ここでは架空のキー AIzASyDK...YOUR_API_KEY を使用します。
Linux / macOS 環境での例:
export GEMINI_API_KEY="AIzASyDK...YOUR_API_KEY"
python sample_gemini_tts.py
Windows (コマンドプロンプト) 環境での例:
set GEMINI_API_KEY="AIzASyDK...YOUR_API_KEY"
python sample_gemini_tts.py
実行結果の例:
=== Gemini TTS テスト開始 ===
利用可能な音声のリスト:
- affable-ja-JP-Wavenet-A (ja-JP)
- affable-en-US-Wavenet-B (en-US)
... (他にも多数の音声がリストされます) ...
- Puck (en-US)
🔊 単一音声の生成テスト: Puck の声で生成します。
✅ 成功: test_gemini_single.wav を再生して確認してください。
この実行により、現在のディレクトリに test_gemini_single.wav というファイルが生成されます。このWAVファイルを任意のメディアプレイヤーで再生することで、合成された音声を確認できます。出力される音声は、「こんにちは!Gemini 3.8 Flash TTSのテスト音声です。」という日本語のテキストが、Puckという英語話者向けの音声で、明るく元気なトーンで話されているものとなります。