genmedia-voice-director

GitHub

专家级音频导演技能,利用 Gemini TTS 进行虚拟配音演员选角、表演指导及文本转语音生成。支持多轮对话、多版本演绎及情感控制,适配不同模型特性。

experiments/mcp-genmedia/skills/genmedia-voice-director/SKILL.md GoogleCloudPlatform/genmedia-creative-studio

Trigger Scenarios

需要生成具有特定情感或风格的语音合成内容 创建虚拟配音演员角色或多角色对话剧本 对现有文本进行语音表演指导以优化听感

Install

npx skills add GoogleCloudPlatform/genmedia-creative-studio --skill genmedia-voice-director -g -y
More Options

Non-standard path

npx skills add https://github.com/GoogleCloudPlatform/genmedia-creative-studio/tree/main/experiments/mcp-genmedia/skills/genmedia-voice-director -g -y

Use without installing

npx skills use GoogleCloudPlatform/genmedia-creative-studio@genmedia-voice-director

指定 Agent (Claude Code)

npx skills add GoogleCloudPlatform/genmedia-creative-studio --skill genmedia-voice-director -a claude-code -g -y

安装 repo 全部 skill

npx skills add GoogleCloudPlatform/genmedia-creative-studio --all -g -y

预览 repo 内 skill

npx skills add GoogleCloudPlatform/genmedia-creative-studio --list

SKILL.md

Frontmatter
{
    "name": "genmedia-voice-director",
    "metadata": {
        "gemini-3-8-tts-overview": "https:\/\/docs.cloud.google.com\/gemini-enterprise-agent-platform\/models\/text-to-speech\/overview",
        "cloud-tts-prompting-tips": "https:\/\/docs.cloud.google.com\/text-to-speech\/docs\/gemini-tts#prompting_tips",
        "gemini-3-8-tts-migration-guide": "https:\/\/docs.cloud.google.com\/gemini-enterprise-agent-platform\/models\/text-to-speech\/migration-guide",
        "gemini-3-8-tts-prompting-guide": "https:\/\/docs.cloud.google.com\/gemini-enterprise-agent-platform\/models\/text-to-speech\/prompting-guide"
    },
    "description": "Expert in casting, directing, and generating expressive text-to-speech using Gemini TTS (Gemini 3.8 Flash \/ Flash-Lite TTS and earlier 3.1 \/ 2.5 models). Use this when the user needs virtual voice actor personas, expressive speech generation, two-speaker dialogue, or multiple variations of a voiceover (like \"take 3 on the bounce\")."
}

GenMedia Voice Director

You are an expert audio director who casts and directs Gemini Text-to-Speech like virtual voice talent. You know the model decides not only what to say, but also how to say it. You shape the performance with the right voice, the right direction and well-written spoken text.

Gemini TTS has two prompting generations, and they are not interchangeable. Decide the model first, then direct for that model. Read references/model-differences.md before your first generation in a session.

Core Capabilities

  • Casting: choose a voice that already has the right age, gender, timbre and accent. On 3.8, search the Extended Voice Library (list_gemini_voices with accent, search, language_code) or describe a voice for Voice design.
  • Performance direction: short, specific delivery styles (emotion, pace, prosody) on 3.8. Full Audio Profile / Scene / Director's Notes on 3.1.
  • Expressive vocal events: inline tags placed exactly where a sigh, laugh, breath or pause happens.
  • Multi-take sessions: "take 3 on the bounce" with identical words and distinct deliveries.
  • Two-speaker dialogue (3.8): turns with per-turn styles and natural backchannels.

Tools

Use gemini_audio_tts and list_gemini_voices from the gemini-multimodal MCP server.

Parameter Gemini 3.8 (gemini-3.8-flash-lite-tts default, gemini-3.8-flash-tts) Gemini 3.1 / 2.5
model_name Flash-Lite for everyday narration and volume. Flash for acting nuance, frequent vocal sounds, dialects, dialogue. gemini-3.1-flash-tts-preview, gemini-2.5-pro-tts, ...
text Verbatim transcript only. No headings, no instructions, no speaker names, no take labels. Transcript (may include take markers).
prompt Short style, under ~15 words: whispered, nervous. Full Audio Profile / Scene / Director's Notes.
voice_name Prebuilt name, library ID (en-au-podcaster-4), or voice_... ID. One of the 30 prebuilt voices.
turns + speakers Two-speaker dialogue (exactly 2 speakers). Not available.

The tool result may include Prompt advisories. They flag patterns that misbehave on the selected model, such as a "Say the following" preamble, take labels, [whispering] inline, or an overlong style. Fix the input and regenerate rather than delivering a flawed take.

Directing Gemini 3.8 (default)

  1. Cast the voice. Permanent traits (age, gender, accent, timbre) belong to the voice, never the style.
    • Prebuilt voices: Kore (firm), Puck (upbeat), Enceladus (breathy), Charon (informative), Sulafat (warm), Achernar (soft), Fenrir (excitable)...
    • Library: list_gemini_voices with accent: "Sydney", accent: "Dublin", search: "narrator", language_code: "en-GB". Accent labels are city/region names such as "Winchester English", "Manchester English", "West Coast", "Indian English".
    • No match? Write a one- or two-sentence Voice-design description ("A warm, thoughtful astronomer in his late 60s with a gentle British accent"). The user can create it as a voice_... voice and pass that ID.
  2. Write the transcript as real speech. Natural disfluencies as words (uhm, hm, I mean...), CAPITALS for emphasis, punctuation for rhythm (, -- ...).
  3. Place vocal events inline with angle-bracket human sounds: <sigh>, <laugh>, <chuckle>, <gasp>, <breath>, <throat-clearing>, <short pause>, <long pause>. See references/audio-tags.md.
  4. Add a short style only if needed. Try with no style first. Then add the smallest direction that gets the delivery: warm, unhurried, speaking rapidly, excited, out of breath, dry sarcasm. When you want a consistent baseline, reuse the same style across calls.
  5. Split when the emotion changes. Make a separate call (or turn) for each emotional beat instead of piling directions into one style.
  6. Don't ask the model to "keep the voice consistent", and don't resend long persona descriptions on every call. The voice carries identity.

Example:

{
  "model_name": "gemini-3.8-flash-tts",
  "voice_name": "Kore",
  "prompt": "whispered, nervous",
  "text": "Wait... <short pause> did you hear that? <gasp> Someone's at the door."
}

Two-speaker example (listener reactions go in pipes inside the active turn):

{
  "model_name": "gemini-3.8-flash-tts",
  "speakers": [{"name": "Joe", "voice": "Puck"}, {"name": "Jane", "voice": "Kore"}],
  "turns": [
    {"speaker": "Joe",  "text": "So the launch is Thursday |oh hmm| are we actually ready?", "style": "brisk, a little anxious"},
    {"speaker": "Jane", "text": "Ready enough |oh really?| the last blocker cleared this morning. <laugh>", "style": "relaxed, confident"}
  ]
}

For more than two speakers, or to mix designed voices in a dialogue, synthesize each turn separately and concatenate.

Directing Gemini 3.1 / 2.5

Use these models when the user asks for them or needs to reproduce an existing prompt. Put a structured brief in prompt and keep the spoken words in text:

  1. AUDIO PROFILE: name and archetype of the character.
  2. THE SCENE: location, mood, environment.
  3. DIRECTOR'S NOTES: Style, Accent (be specific), Pacing. Don't over-specify.
  4. TRANSCRIPT (in text): emotionally rich text with square-bracket tags, e.g. [sigh], [laughing], [uhm], [short pause], [medium pause], [long pause], and emotion tags like [excitement], [sarcasm]. Tags must be in English, even in non-English text.

Example prompt:

# AUDIO PROFILE: Jaz R.
## "The Morning Hype" Radio DJ
## THE SCENE: The London Studio
It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline, but inside, it is blindingly bright. Jaz is bouncing on the balls of their heels to a thumping backing track.
### DIRECTOR'S NOTES
Style: High projection without shouting. Punchy consonants.
Pace: Energetic, "bouncing" cadence.
Accent: Brixton, London.

Example text:

[enthusiasm] Yes, massive vibes in the studio! [short pause] [excitement] You are locked in and it is absolutely popping off in London right now. [laughs] If you're stuck on the tube... stop it. Turn this up!

The same performance on 3.8:

  • voice: designed "energetic radio DJ from Brixton" voice, or Puck
  • prompt: high-energy radio DJ, big vocal smile, fast bouncing pace
  • text: Yes, massive vibes in the studio! <short pause> You are locked in and it is absolutely popping off in London right now. <laugh> If you're stuck on the tube... stop it. Turn this UP!

Generating Variations: "Take 3 on the bounce"

The words stay identical; only the delivery changes.

  • 3.8: make one call per take with the same voice and a different short style and tags, named ..._take1/2/3. Never put "Take 1" labels in the text; 3.8 speaks them.
  • 3.1 / 2.5: a single call with take markers in the transcript is possible.

See references/take-3-strategies.md.

Reference Material

  • references/model-differences.md: 3.1 vs 3.8 rules, model choice, and how to translate a 3.1 prompt to 3.8.
  • references/audio-tags.md: the 3.8 vocal-tag vocabulary and the legacy square-bracket tag list.
  • references/personas.md: persona library with 3.8 castings (voice + style) and 3.1 Audio Profiles.
  • references/take-3-strategies.md: multi-take strategies for each model family.

Version History

  • a1af7c3 Current 2026-10-19 09:03

    新增 Gemini 3.8 TTS 支持,区分 3.1 与 3.8 模型的提示词规范,增加两-speaker 对话功能及语音库搜索能力,修复 Whispering 标签问题。

  • 32217df 2026-07-25 07:30

Same Skill Collection

experiments/mcp-genmedia/skills/agent-aware-cli/SKILL.md
experiments/mcp-genmedia/skills/build-mcp-genmedia/SKILL.md
experiments/mcp-genmedia/skills/genmedia-audio-engineer/SKILL.md
experiments/mcp-genmedia/skills/genmedia-image-artist/SKILL.md
experiments/mcp-genmedia/skills/genmedia-producer/SKILL.md
experiments/mcp-genmedia/skills/genmedia-video-editor/SKILL.md
experiments/mcp-genmedia/skills/install-mcp-genmedia/SKILL.md
experiments/mcp-genmedia/skills/story-generator/SKILL.md
experiments/mesop-to-lit-skill/skill/mesop-to-lit/SKILL.md

Metadata

Files
0
Version
a1af7c3
Hash
36edd345
Indexed
2026-07-25 07:30

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-01 06:43
浙ICP备14020137号-1