一个TTS Skill,用于将中文口播逐字稿文本通过 MiniMax TTS API 生成高质量音频,自动处理多音字、英文缩写、品牌名、版本号等高频发音错误。
概览
一个TTS Skill,用于将中文口播逐字稿文本通过 MiniMax TTS API 生成高质量音频,自动处理多音字、英文缩写、品牌名、版本号等高频发音错误。 每次运行在输入文件同目录下创建 tts-YYYYMMDD-HHMMSS/ 目录: 通过 npx skills add YangAgent/minimax-tts-pipeline 命令安装 使用 MiniMax 生成口播音频,内容文件路径:/path/to/your/script.txt - 添加:"Qwen 都读作千问" - 查询:"看看有哪些发音规则" - 删除:"删掉 Qwen 的规则" - 修改:"把 Qwen 的读法改成千问三" 修改 scripts/call_tts.py 中 voice_setting 对象: - :文本替换、tone 生成、API 调用全部由 Python 脚本执行 - :全流程只维护一份 terms.json,各步骤直接修改同一文件 - :每个阶段完成后运行校验脚本,失败则停止,不进入下一阶段 - :MiniMax TTS 本身能正确朗读大部分常见英文词,只为真正容易读错的词添加 tone 规则 - Python 3.10+ - requests 库 - MiniMax API Key(Speech 2.8 Turbo 模型)
README
MiniMax TTS Pipeline Skill
一个TTS Skill,用于将中文口播逐字稿文本通过 MiniMax TTS API 生成高质量音频,自动处理多音字、英文缩写、品牌名、版本号等高频发音错误。
工作流程
输入.txt
│
├─ Step -1: 环境预检测(检查 API Key)
├─ Step 0: 初始化运行目录 + 标点规范化 + 候选词扫描
├─ Step 1: 大小写规范化判断(LLM)
├─ Step 2: 发音读法判断 + 多音字识别(LLM)
├─ Step 3: 质量复核(LLM)
├─ Step 4: 调用 MiniMax TTS API 生成音频 + 字幕 JSON
└─ Step 5: 生成 SRT 字幕
核心数据流:
input.txt → normalize_punctuation.py → input.txt
→ scan_terms.py → terms.json(草稿)
→ [Step 1] 补全规范化 → terms.json
→ generate_normalized.py → normalized.txt
→ [Step 2] 补全读法 + 多音字 → terms.json
→ [Step 3] 复核 → terms.json(终稿)
→ call_tts.py → output.wav + output.title
→ title_to_srt.py → output.srt
输出文件
每次运行在输入文件同目录下创建 tts-YYYYMMDD-HHMMSS/ 目录:
| 文件 | 说明 |
|---|---|
input.raw.txt |
原始输入(只读) |
input.txt |
标点规范化后的输入(只读) |
terms.json |
全流程唯一结构化工作文件 |
normalized.txt |
规范化后的文本 |
output.wav |
TTS 输出音频 |
output.title |
MiniMax 返回的字级时间戳字幕 JSON |
output.srt |
SRT 字幕文件 |
快速开始
1. 安装 Skill
通过 npx skills add YangAgent/minimax-tts-pipeline 命令安装
2. 配置 API Key
在 skills/minimax-tts-pipeline/.env 中配置:
MINIMAX_API_KEY=your_api_key_here
首次使用时 Skill 也会自动检测并提示输入。
3. 使用
在 Agent 中触发 Skill,提供文本文件路径即可:
使用 MiniMax 生成口播音频,内容文件路径:/path/to/your/script.txt
4. 自定义发音规则
支持通过对话管理发音规则,规则持久化到 user-rules.json:
- 添加:
"Qwen 都读作千问" - 查询:
"看看有哪些发音规则" - 删除:
"删掉 Qwen 的规则" - 修改:
"把 Qwen 的读法改成千问三"
用户规则优先级最高,各步骤处理时会优先采用。
5. 调整声音参数
修改 scripts/call_tts.py 中 voice_setting 对象:
| 参数 | 说明 | 范围 | 默认值 |
|---|---|---|---|
voice_id |
音色 ID | 见 MiniMax 文档 | male-qn-qingse |
speed |
语速 | [0.5, 2] |
1 |
vol |
音量 | (0, 10] |
1 |
pitch |
语调 | [-12, 12] |
0 |
项目结构
skills/minimax-tts-pipeline/
├── SKILL.md # Skill 定义(触发条件、工作流、约束)
├── .env # MiniMax API Key
├── user-rules.json # 用户自定义发音规则
├── scripts/
│ ├── normalize_punctuation.py # 标点规范化
│ ├── scan_terms.py # 候选词提取
│ ├── validate_terms.py # terms.json 校验
│ ├── generate_normalized.py # 生成规范化文本
│ ├── call_tts.py # 调用 MiniMax TTS API
│ └── title_to_srt.py # 生成 SRT 字幕
└── references/
├── pronunciation-rules.md # 发音规则速查
├── manage-user-rules.md # 用户规则管理指引
├── api-voice-settings.md # API 声音参数说明
├── step-1-normalize.md # Step 1 操作指南
├── step-2-reading.md # Step 2 操作指南
└── step-3-review.md # Step 3 操作指南
设计原则
- LLM 只改 terms.json:文本替换、tone 生成、API 调用全部由 Python 脚本执行
- 单文件工作流:全流程只维护一份
terms.json,各步骤直接修改同一文件 - 阶段校验:每个阶段完成后运行校验脚本,失败则停止,不进入下一阶段
- 不过度控制:MiniMax TTS 本身能正确朗读大部分常见英文词,只为真正容易读错的词添加 tone 规则
依赖
- Python 3.10+
requests库- MiniMax API Key(Speech 2.8 Turbo 模型)
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add yangagent/minimax-tts-pipeline-skill