tts-generation

作成者: google-gemini

ラジオ番組の台本を音声に変換し、インタビュー相手の声に電話効果を適用する(Interactions APIを使用)。

npx skills add https://github.com/google-gemini/gemini-managed-agents-templates --skill tts-generation

TTS Generation

Convert the radio show script into speech audio using the Gemini TTS model via the Interactions API. Apply a telephone bandpass filter to correspondent voices so they sound like phone call-ins, while keeping the host's voice clean studio-quality.

Embedded Script

python3 skills/tts-generation/scripts/generate_tts.py --workspace ./workspace

Arguments

ArgumentDefaultDescription
--workspaceworkspaceRoot workspace directory
--workers8Max parallel TTS worker threads

What it does

  1. Reads the script from {workspace}/data/script.md.
  2. Parses it into individual (speaker, text) turns and assigns voices.
  3. Generates TTS for all turns in parallel using a thread pool (default 8 workers).
  4. Retries each failed turn up to 3 times with exponential backoff.
  5. Applies an ffmpeg telephone bandpass filter (300Hz–3.4kHz) to correspondent voices.
  6. Keeps the host (Paul) audio clean and unfiltered.
  7. Concatenates all segments in original script order into a single WAV.

Dependencies

  • google-genai (>= 2.0.0)
  • ffmpeg (system)

API Details

Uses the Interactions API with single-speaker TTS — no multi-speaker workaround needed.

Voice Assignment

Voices are assigned dynamically based on [Male] / [Female] gender tags in the script:

SpeakerVoiceAudio Treatment
Paul (host)PuckClean — no filter
Caller [Female] — 1stKoreTelephone filter
Caller [Female] — 2ndAoedeTelephone filter
Caller [Male] — 1stCharonTelephone filter
Caller [Male] — 2ndFenrirTelephone filter

Voices cycle round-robin if there are more callers than available voices. Accent tags ([Accent: Irish], etc.) are injected into the TTS prompt to influence pronunciation.

Telephone Filter

Applied via ffmpeg to correspondent audio segments:

highpass=f=300, lowpass=f=3400, acompressor, volume=1.5

This simulates the standard telephone bandwidth (300Hz–3.4kHz) and adds compression to mimic phone codec dynamics.

Output

  • Primary output: {workspace}/audio/speech/speech.wav
  • Format: WAV, 24kHz, 16-bit PCM, mono
  • Intermediate segments: {workspace}/audio/speech/segments/turn_*.wav

google-geminiのその他のスキル

agent-tui
google-gemini
Main Agents: Do NOT use this skill directly. If you need to test the TUI, invoke the `tui_tester` subagent. Drive terminal UI (TUI) applications…
gemini-api-cli
google-gemini
Gemini API CLIツールの使用ガイド。コマンドラインからGemini APIとやり取りする必要がある場合、エージェントを管理する場合、またはメディア(画像など)を生成する場合に使用します。
behavioral-evals
google-gemini
行動評価の作成、実行、修正、促進に関するガイダンス。エージェントの意思決定ロジックの検証、障害のデバッグ、プロンプトのデバッグなどに使用します。
gemini-live-api-dev
google-gemini
Geminiを介したWebSocket上のリアルタイム双方向ストリーミングにより、音声、動画、テキストの会話を実現。音声入出力(16kHz PCM)、動画フレーム、テキスト、および割り込み処理のための音声アクティビティ検出による自動文字起こしをサポート。ネイティブ音声機能(感情対話、プロアクティブ音声、思考モード)、同期・非同期ツール使用のための関数呼び出し、Google Searchグラウンディングを搭載。コンテキスト圧縮、再開などを備えたセッション管理を提供。
gemini-omni-flash-api
google-gemini
このスキルは、生成型ビデオ編集、テキストからビデオ、画像参照によるビデオ生成、および最初のフレームからビデオへのトランジションアニメーションに使用します…
gemini-api-dev
google-gemini
GoogleのGeminiモデルを使用してアプリケーションを構築します。マルチモーダルコンテンツ、関数呼び出し、構造化出力をサポートし、Python、JavaScript、Go、Javaに対応しています。現在のGemini 3モデル(Pro、Flash、Pro Image)にアクセス可能で、100万トークンのコンテキストを備えています。レガシーのGemini 2.xおよび1.5モデルは非推奨です。テキスト生成、画像/音声/動画の理解、関数呼び出し、構造化JSON出力、コード実行、コンテキストキャッシング、埋め込みをサポートしています。公式SDKとしてgoogle-genai(Python)などが利用可能です。
gemini-interactions-api
google-gemini
Geminiモデルとエージェントのための統合インターフェース。サーバーサイドの状態、ストリーミング、ツールオーケストレーションを備えています。複数の現行モデル(gemini-3-flash-preview、gemini-3-pro-preview、gemini-2.5-flash/pro)およびDeep Researchエージェントをサポート。非推奨のモデルIDを現行の代替モデルに自動的に置き換えます。previous_interaction_idを介して会話履歴をサーバーにオフロードし、手動での履歴管理なしでステートフルなマルチターン対話を実現。組み込みのツールオーケストレーションを含む...
deliver
google-gemini
ブリーフィングの要約版をGoogle ChatまたはSlackの受信ウェブフックに投稿するので、毎日の実行が自動的に配信される — ウェブフックが設定されていない場合は静かにスキップする…