技術ドキュメント: 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システムは、入力されたテキストを音声波形に変換する技術であり、大きく分けて以下のステップで構成されます。

  1. テキスト分析: 入力テキストを言語学的に分析し、単語の発音、アクセント、イントネーションパターンなどを決定します。

  2. 音素(Phoneme)変換: 分析結果に基づいて、テキストを音の最小単位である音素のシーケンスに変換します。

  3. 音声合成: 音素シーケンスを、特定の声質(話者、性別、年齢など)と感情(喜び、悲しみ、怒りなど)を持つ実際の音声波形に変換します。

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という英語話者向けの音声で、明るく元気なトーンで話されているものとなります。