Skip to main content

gemini-tts

在 macOS、Linux、Windows 上使用 Google Gemini 3.8 Flash TTS 将文本生成 WAV 语音,支持预置音色、已有自定义音色 ID、语气、语速描述和双人对话。用于朗读、配音、旁白和播客语音生成;不用于语音识别、实时语音聊天或音色创建管理。

Quellinformationen

Repository
okooo5km/gemini-tts
Letzte Quellaktivität
5. Oktober 2026 um 01:52
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
gemini-tts
description
在 macOS、Linux、Windows 上使用 Google Gemini 3.8 Flash TTS 将文本生成 WAV 语音,支持预置音色、已有自定义音色 ID、语气、语速描述和双人对话。用于朗读、配音、旁白和播客语音生成;不用于语音识别、实时语音聊天或音色创建管理。
# Gemini TTS 使用本技能目录内的 `scripts/tts.py` 生成语音,仅依赖 Python 3 标准库。固定模型 `gemini-3.8-flash-tts`,通过 Google Interactions REST API 生成 WAV。 ## 跨平台执行 先确认执行主机、Shell 和可用 Python(3.10+),不要从用户电脑系统推断远端执行环境。脚本路径以当前已加载的 `SKILL.md` 所在目录为准,不依赖工作目录或固定安装位置。 - macOS/Linux:通常用 `python3`;显式引用脚本路径,包含空格时加引号。 - Windows PowerShell:先检查 `py -3 --version`,可用时执行 `py -3 -X utf8 "$skillDir/scripts/tts.py" ...`;否则验证 `python --version` 后用 `python -X utf8`。`$skillDir` 指实际技能目录,不假定 `python3`、Bash 或 Unix 工具存在。 - PowerShell 不使用 Bash 的 `\` 续行、`export`、`ln -s`。长命令用参数数组或单行;CMD 使用双引号,不能照搬单引号。WSL 按 Linux 处理,Windows Python 和 WSL Python 的路径不可混用。 - 正文优先用 UTF-8 文件(支持有 BOM 和无 BOM);Windows PowerShell 5.1 的默认重定向可能写出 UTF-16,不要用默认 `>` 制作输入文件。管道必须提供 UTF-8 字节,Python 无法修复 Shell 已损坏的中文。 安装、配置和可复制的 PowerShell 示例见 [跨平台指南](references/platforms.md)。下文 Bash 示例需根据实际解释器和 Shell 调整,不改系统全局编码或执行策略。 ## 密钥 读取优先级:`GEMINI_API_KEY` → `GOOGLE_API_KEY` → 配置文件的 `api_key`。 让用户在自己的终端运行以下命令,输入过程隐藏: ```bash python3 ~/.agents/skills/gemini-tts/scripts/tts.py configure ``` 密钥保存在 `~/.config/gemini-tts/config.json`,POSIX 权限为 `600`;Windows 使用当前用户目录的 ACL,不把 `chmod` 当成 Windows 隐私保障;用 `GEMINI_TTS_CONFIG` 指定其他配置路径。该文件是本地明文凭据,位于技能目录之外。已有环境变量可直接使用,无需写配置。不要把真实密钥写进脚本、技能、聊天、命令参数或版本库,不要读取或展示密钥内容。 ## 表演控制 需要情绪、停顿或更自然的表达时,阅读 [语音控制速查](references/speech-controls.md)。调用者可通过 `--emotion`、`--pace`、`--accent`、`--delivery`、`--emphasis`、`--prosody`(韵律)、`--lengthening`(延长)、`--pauses`(停顿) 直接描述控制目标,或使用自由形式 `--style`;这些会合并成模型的风格指引。用 `tts.py controls` 查看带示例的完整说明,用 `tts.py generate --help` 查看参数。 普通话任务默认采用自然普通话;用户指定其他语言或口音时遵循其要求。自然表达应让情绪和语义带动重音、词长、语调和停顿,允许局部变化,不把“自然”处理成随机拖音或给每句套相同节奏。按需要选择少量控制项,不默认堆满参数,不改变标准读音,也不擅自添加语气词或改写原文。 局部停顿与发声标签直接写在正文里,不改动用户原文的词句。仅在用户要求表演增强时添加合适标签;不要把“自然”理解成必须叹气、咳嗽或笑出声。风格指引是生成提示,不保证精确时长或强度。 ## 生成 保持用户提供的正文;除非用户要求,不改写。把情绪、口音和语速要求放进 `--style`,不要加进待朗读正文。默认音色 Kore;用户指定其他音色时使用其名称。长正文写入 UTF-8 文件,避免 shell 转义问题。 ```bash python3 ~/.agents/skills/gemini-tts/scripts/tts.py generate \ --file /absolute/path/transcript.txt \ --voice Kore --style '温暖自然的中文女声,语速适中' \ --out /absolute/path/narration.wav ``` 短文本可用 `--text '你好,世界。'`,管道输入可用 `--file -`。输出目录必须已存在;不会覆盖已有文件。`--dry-run` 仅检查并展示请求,不读取密钥、不调用网络,但会展示正文。网络超时默认 180 秒,可用 `--timeout` 调整。失败不自动重试或切换模型,避免重复计费;先判断错误再决定是否重试。 双人对话用 `--dialogue /absolute/path/dialogue.json`,结构如下: ```json { "speakers": [ {"speaker": "主持人", "voice": "Kore"}, {"speaker": "嘉宾", "voice": "Puck"} ], "turns": [ {"speaker": "主持人", "text": "今天聊什么?", "style": "好奇、轻快"}, {"speaker": "嘉宾", "text": "聊聊文字如何变成声音。", "style": "自然、从容"} ] } ``` 此模式要求两个不同的角色名,每段必须匹配已配置角色,使用预置音色。克隆音色不能直接用于双人对话;需要两个自定义音色对谈时,分别生成每一段再拼接。 调用成功后检查返回的时长、采样率和文件路径。脚本会验证 WAV 并直接保存,不能再包一层 WAV 文件头。向用户提供绝对路径音频嵌入 `![语音](/absolute/path/narration.wav)`。仅完成 dry-run 或离线测试时,不要声称已成功生成或试听。 ## 使用已有自定义音色 本技能只使用已有音色,不录音、不创建或管理音色。使用用户提供的 `voice_...` ID,或仍有效的 `voicekey_...`。没有 ID 时,让用户从 [Google AI Studio](https://aistudio.google.com/generate-speech) 获取,不启动本地录音页面或服务。 ```bash python3 /absolute/path/to/skill/scripts/tts.py generate \ --text '这是我自己的声音。' --voice voice_YOUR_VOICE_ID \ --out /absolute/path/narration.wav ``` 自定义音色的显示名称不是可直接调用的 ID。使用有权访问该音色所属项目的 API key;找不到音色时,先检查 ID、项目权限和有效性,不自动换成预置音色。已有本地昵称仍可解析,仅为兼容旧调用,不提供添加、改名、删除或列出昵称的管理命令,不修改用户已有配置。 `voicekey_...` 是敏感凭据,不应贴进公开聊天、日志或版本库。`--dry-run` 会显示传入的音色值,不要用真实 voice key 做共享示例。自定义音色用于单人生成;双人内容分别生成每一段再拼接。 ## 官方参考 接口与提示方式核对日期:2026-10-04。需要更多音色或发声标签时查阅 [Google TTS 文档](https://ai.google.dev/gemini-api/docs/speech-generation),已有自定义音色的调用方式见 [Voice replication](https://ai.google.dev/gemini-api/docs/voice-replication)。持续语气用 `speech_metadata.style`;短暂停顿和非语言发声可用正文内标签,例如 `<short pause>`、`<sigh>`,仅在用户需求合适时添加。
Auf GitHub ansehen