name: “语音”
description: “当用户请求文本转语音叙述、旁白、可访问性阅读、音频提示或通过OpenAI音频API批量语音生成时使用;运行捆绑的CLI(scripts/text_to_speech.py)使用内置语音,需要OPENAI_API_KEY进行实时调用。自定义语音创建超出范围。”
author: openai
语音生成技能
为当前项目生成口语音频(叙述、产品演示旁白、IVR提示、可访问性阅读)。默认使用gpt-4o-mini-tts-2025-12-15和内置语音,并偏好使用捆绑的CLI进行确定性、可重复的运行。
何时使用
- 从文本生成单个语音片段
- 生成批量提示(多行文本,多个文件)
决策树(单次 vs 批量)
- 如果用户提供多行/提示或想要多个输出 -> 批量
- 否则 -> 单次
工作流程
- 确定意图:单次 vs 批量(见上方决策树)。
- 提前收集输入:精确文本(逐字)、期望语音、交付风格、格式和任何约束。
- 如果批量:在tmp/下写入临时JSONL文件(每行一个任务),运行一次,然后删除JSONL。
- 将指令增强为简短带标签的规范,而不重写输入文本。
- 运行捆绑的CLI(
scripts/text_to_speech.py)使用合理默认值(见references/cli.md)。 - 对于重要片段,验证:可理解性、节奏、发音和约束遵守。
- 通过单一针对性更改(语音、速度或指令)进行迭代,然后重新检查。
- 保存/返回最终输出,并记录最终文本、指令和使用的标志。
临时和输出约定
- 使用
tmp/speech/存储中间文件(例如JSONL批量);完成后删除。 - 在此仓库中工作时,将最终工件写入
output/speech/。 - 使用
--out或--out-dir控制输出路径;保持文件名稳定和描述性。
依赖项(如果缺失则安装)
优先使用uv进行依赖管理。
Python包:
uv pip install openai
如果uv不可用:
python3 -m pip install openai
环境
- 必须设置
OPENAI_API_KEY进行实时API调用。
如果密钥缺失,给用户这些步骤:
- 在OpenAI平台UI中创建API密钥:https://platform.openai.com/api-keys
- 在系统中将
OPENAI_API_KEY设置为环境变量。 - 如果需要,提供指导帮助设置其操作系统/外壳的环境变量。
- 永远不要要求用户在聊天中粘贴完整密钥。请他们在本地设置并确认准备就绪。
如果在此环境中无法安装,告诉用户缺失哪个依赖项以及如何本地安装。
默认值和规则
- 除非用户请求其他模型,否则使用
gpt-4o-mini-tts-2025-12-15。 - 默认语音:
cedar。如果用户想要更明亮的音调,优先使用marin。 - 仅内置语音。此技能不支持自定义语音。
- 对于GPT-4o mini TTS模型支持
instructions,但不支持tts-1或tts-1-hd。 - 每请求输入长度必须≤4096字符。将较长文本分割成块。
- 强制执行50请求/分钟。CLI将
--rpm限制在50。 - 在任何实时API调用之前需要
OPENAI_API_KEY。 - 向最终用户提供清晰披露,说明语音是AI生成的。
- 所有API调用使用OpenAI Python SDK(
openai包);不要使用原始HTTP。 - 优先使用捆绑的CLI(
scripts/text_to_speech.py)而不是编写新的一次性脚本。 - 永远不要修改
scripts/text_to_speech.py。如果缺少什么,在采取其他行动前询问用户。
指令增强
将用户指导重新格式化为简短、带标签的规范。只使隐含细节明确化;不要发明新要求。
快速澄清(增强 vs 发明):
- 如果用户说“演示的叙述”,可以添加隐含的交付约束(清晰、稳定节奏、友好语气)。
- 不要引入用户未请求的新人物、口音或情感风格。
模板(仅包含相关行):
语音影响:<声音的整体特征和质地>
语气:<态度、正式性、温暖度>
节奏:<慢、稳定、轻快>
情感:<要传达的关键情感>
发音:<要清晰发音或强调的词语>
停顿:<添加有意停顿的位置>
强调:<要强调的关键词或短语>
交付:<韵律或节奏说明>
增强规则:
- 保持简短;只添加用户已经隐含或提供的细节。
- 不要重写输入文本。
- 如果任何关键细节缺失并阻碍成功,提出问题;否则继续。
示例
单次示例(叙述)
输入文本:“欢迎来到演示。今天我们将展示它是如何工作的。”
指令:
语音影响:温暖且沉着。
语气:友好且自信。
节奏:稳定且适中。
强调:强调“演示”和“展示”。
批量示例(IVR提示)
{"input":"感谢您的来电。请稍候。","voice":"cedar","response_format":"mp3","out":"hold.mp3"}
{"input":"销售请按1。支持请按2。","voice":"marin","instructions":"语气:清晰且中立。节奏:慢。","response_format":"wav"}
指令最佳实践(简短列表)
- 结构化指导为:影响 -> 语气 -> 节奏 -> 情感 -> 发音/停顿 -> 强调。
- 保持4到8个短行;避免冲突指导。
- 对于名称/缩写,添加发音提示(例如,“清晰发音A-I”)或在文本中提供音标拼写。
- 对于编辑/迭代,重复不变因素(例如,“保持节奏稳定”)以减少漂移。
- 使用单一更改跟进进行迭代。
更多原则:references/prompting.md。复制/粘贴规范:references/sample-prompts.md。
按用例指导
当请求针对特定交付风格时使用这些模块。它们提供有针对性的默认值和模板。
- 叙述 / 解释器:
references/narration.md - 产品演示 / 旁白:
references/voiceover.md - IVR / 电话提示:
references/ivr.md - 可访问性阅读:
references/accessibility.md
CLI + 环境说明
- CLI命令 + 示例:
references/cli.md - API参数快速参考:
references/audio-api.md - 指令模式 + 示例:
references/voice-directions.md - 如果网络批准 / 沙箱设置造成问题:
references/codex-network.md
参考映射
references/cli.md:如何通过scripts/text_to_speech.py运行语音生成/批量(命令、标志、食谱)。references/audio-api.md:API参数、限制、语音列表。references/voice-directions.md:指令模式和示例。references/prompting.md:指令最佳实践(结构、约束、迭代模式)。references/sample-prompts.md:复制/粘贴指令食谱(仅示例;无额外理论)。references/narration.md:叙述和解释器的模板 + 默认值。references/voiceover.md:产品演示旁白的模板 + 默认值。references/ivr.md:IVR/电话提示的模板 + 默认值。references/accessibility.md:可访问性阅读的模板 + 默认值。references/codex-network.md:环境/沙箱/网络批准故障排除。