mcpField
G
google-ai-studio-tts

google-ai-studio-tts

github.com/maystudios创意与媒体2658 次安装11 周前更新
代码仓库

关于 google-ai-studio-tts

通过浏览器在 Google AI Studio 中使用 Gemini Flash TTS 生成语音,适合需要旁白或多角色对话的用户。支持文本与分段编排模式,并可设置音色和场景。

主要功能

  1. 01文本与编排两种输入模式
  2. 02场景与示例语境字段
  3. 03逐角色选择音色
  4. 04音频生成与播放

适用场景

  1. 01制作单人旁白
  2. 02生成多角色对话
  3. 03设置音色表达与场景语境

MCP 相关

使用 claude-in-chrome MCP 工具,在用户已打开的 Chrome 会话中操作 Google AI Studio。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/maystudios/claude-skills --skill google-ai-studio-tts

安装后在 Claude Code 中输入/google-ai-studio-tts确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
audio-tags.md
selectors.md
voices.md

详细介绍

Google AI Studio TTS(浏览器驱动)

概述

此技能通过 claude-in-chrome MCP 工具,在用户已打开的 Chrome 中操作 https://aistudio.google.com/generate-speech,使用 Gemini Flash TTS 渲染音频。用户必须已在 Chrome 中登录 Google AI Studio——绝不要创建账号、输入密码或分享凭据。

界面有两种输入模式。请根据用户的需求选择:

用户意图模式原因
单人旁白、独白或简短配音Text只有一个文本框,流程最快。
使用简单 Speaker 1: … 行的多人对话Text使用同一个文本框——在各行前加上 Speaker 1:、Speaker 2:。
每行都有独立说话人标签、需要更精细的控制或便于编辑的多人对话Composer每段话占一个区块,每个区块都有自己的语音标签。
用户明确提到“scene”“sample context”“director's note”,或希望看到说话人标签Composer与他们提到的可见界面元素相符。

两种模式都共用 Scene 和 Sample Context 字段,以及右侧的 Speaker settings 面板。

必需工具

开始前,通过 ToolSearch 加载这些 claude-in-chrome MCP 工具:

select:mcp__claude-in-chrome__tabs_context_mcp,mcp__claude-in-chrome__tabs_create_mcp,mcp__claude-in-chrome__navigate,mcp__claude-in-chrome__find,mcp__claude-in-chrome__form_input,mcp__claude-in-chrome__javascript_tool,mcp__claude-in-chrome__computer

端到端工作流

1. 打开页面
tabs_context_mcp({ createIfEmpty: true })
navigate({ tabId, url: "https://aistudio.google.com/generate-speech?model=gemini-3.1-flash-tts-preview" })

如果 URL 显示所选模型不可用,且 AI Studio 已自动切换到其他模型(例如 gemini-3.1-flash-tts-preview),请接受切换——不要尝试阻止重定向。继续操作前,点击关闭提示横幅的“X”,以免遮挡 Run 控件。

2. 选择模式

两个切换按钮位于 Playground 右上角:

// Switch to Composer
document.querySelectorAll('button.toggle-button').forEach(b => {
  if (b.innerText.trim().endsWith('Composer')) b.click();
});
// or for Text
document.querySelectorAll('button.toggle-button').forEach(b => {
  if (b.innerText.trim().endsWith('Text')) b.click();
});

当前激活的切换按钮具有 ms-button-active 类。

3. 填写共用字段

两种模式共用以下字段:

  • Scene(设置声学/情境框架):textarea[aria-label="Scene"]
  • Sample Context(为模型提供语气参考):textarea[aria-label="Sample Context"]

这些是 Angular 文本框。直接使用 el.value = ... 不会触发 Angular 的表单绑定——请使用 references/selectors.md 中的辅助函数,或优先使用 find 获取引用后再调用 form_input MCP 工具。

如果用户未提供场景/示例上下文,请将这些字段留空。它们是可选项。

4a. 填写输入内容——Text 模式

一个文本框:textarea[aria-label="Enter a prompt"]。

格式约定(界面不会验证,但这是模型的训练格式):

  • 单人旁白:直接写文本。也可以选择在前面加上行内标签,例如 [warm] 欢迎收听本期节目。
  • 多人对话:在每行前加上 Speaker 1:、Speaker 2: 等。
Speaker 1: [enthusiastic] Welcome back to the show!
Speaker 2: [agreement] Thanks, glad to be here.

行内标签词汇请参阅 references/audio-tags.md。

4b. 填写输入内容——Composer 模式

Composer 会为每段话生成一个语音区块。每个区块包含:

  • 说话人标签:button.voice-chip.ms-button-filter-chip(文本显示为 Speaker N - VoiceName)
  • 文本框:textarea[aria-label="Speech block text"]

要添加新区块:点击 button.add-speech-block-button。默认情况下,新区块会沿用上一个区块的说话人。

要根据脚本填充 Composer:

  1. 确保现有区块符合需求(如有多余区块,可使用每个区块上的“×”按钮删除)。
  2. 为脚本中的每一行确保都有一个区块;点击“add speech block”以创建更多区块。
  3. 设置每个区块的文本(textarea[aria-label="Speech block text"],按 DOM 顺序索引)。
  4. 设置每个区块的说话人标签(参见步骤 5)。
5. 选择声音

右侧的 说话人设置 面板会为每位活跃说话人显示一张卡片(说话人 1、说话人 2,……)。点击卡片会打开完整的声音选择器抽屉,其中有 32 种声音。完整目录及其角色特征请参阅 references/voices.md。

在声音选择器抽屉中:

  • 音频档案 — 自由文本,例如“权威的新闻主播。”
  • 导演备注 — 三个下拉菜单:风格(例如 Vocal Smile)、语速(例如 Rapid Fire)、口音(例如 American (Gen))。
  • 声音 — 可搜索列表。点击一种声音即可选中。

完成后,点击抽屉右上角的 × 关闭。演练场上的活跃声音卡片具有 class active-voice-card。

在 Composer 模式下,可以单独更改每个区块的声音标签——点击它会打开弹出菜单,可将该区块分配给说话人 1、说话人 2,……,或添加新说话人。

6. (可选)调整 Temperature

展开“模型设置”(右侧面板中,说话人设置上方)以显示 Temperature。范围为 0–2,默认值为 1。数字输入框是标签“Temperature”附近的 input.slider-number-input。数值越高,表达方式的变化越丰富。仅在用户提出要求时才调整。

7. 运行生成

点击 button.ctrl-enter-submits(右下角的“运行 Ctrl ↵”按钮),或在提示词区域获得焦点时按 Ctrl+Enter:

document.querySelector('button.ctrl-enter-submits').click();

生成通常需要 5–30 s,具体取决于内容长度。可通过检查音频播放器的时长计数器(渲染完成后,右侧的 0:00 / X:XX 会更新)或观察下载图标是否变为可用状态来确认生成完成。

8. 交接 / 下载

告知用户音频已准备就绪,并指出播放控件的位置。是否下载由用户决定——仅在用户要求获取文件时才点击下载(云朵箭头)图标。

提示词编写风格指南

  • 行内标签应放在说话人所在行内,例如 Speaker 1: [whispers] don't tell anyone。它们不会跨行叠加。
  • 场景用于描述声学效果 + 环境,而非台词。反例:“说话人 1 说嗨。”正例:“安静的厨房,晨光,混响极少。”
  • Sample Context 用于描述表达语气,例如“播客风格,语速快,节奏略有重叠,充满活力且温暖。”
  • 双主持人播客可使用 Puck(欢快 / 中等音高)+ Zephyr(明亮 / 较高音调),这是 AI Studio 的默认设置,也是稳妥的基准组合。其他选择请参阅 references/voices.md。

请勿执行的操作

  • 不要登录、接受新的 ToS 或更改账户设置——这些操作均不允许。
  • 未经用户明确要求,不要下载生成的音频。
  • 渲染过程中,不要离开 AI Studio 标签页。
  • 不要捏造声音名称——目录固定为 32 种声音(参见 references/voices.md)。如果用户要求的声音不在列表中,请推荐最接近的选项。
  • 不要在 Angular 文本区域上执行 el.value = "…",却不触发 input 和 change 事件;否则表单会恢复原状。请使用 references/selectors.md 中的辅助工具或 form_input。

评论

支持 Markdown