mcpField
V
voice-quality-audition

voice-quality-audition

github.com/terrylica创意与媒体1111 次安装今天更新
代码仓库

关于 voice-quality-audition

用于试听和比较 Kokoro TTS 可用语音的技能,面向需要为项目选择语音的用户。它可逐个播放语音朗读的文本,并支持剪贴板内容或内置段落;适用于 Apple Silicon Mac。

主要功能

  1. 01逐个试听 Kokoro 语音
  2. 02使用剪贴板或默认文本
  3. 03支持选择语音子集
  4. 04收集偏好并可更新默认语音

适用场景

  1. 01为项目比较多种语音
  2. 02试听自定义文本的语音效果
  3. 03升级 Kokoro 后重新评估语音
  4. 04选择新的英文或中文默认语音

安装

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

$npx skills add https://github.com/terrylica/cc-skills --skill voice-quality-audition

安装后在 Claude Code 中输入/voice-quality-audition确认已加载。

附带文件references/evolution-log.mdreferences/voice-catalog.md

详细介绍

语音质量试听

比较所有可用语音的 Kokoro TTS 语音质量。运行 tts_kokoro_audition.sh,依次播放每个高排名语音的一段文字。每个语音会先报出自己的名称,再朗读这段文字。使用剪贴板文本或默认文本。

平台:macOS(Apple Silicon)


自我进化技能:此技能会在使用过程中不断改进。如果说明有误、参数发生偏移,或需要使用变通方案,请立即修复此文件,不要拖延。仅针对真实且可复现的问题进行更新。

何时使用此技能

  • 试听所有可用的 Kokoro 语音,了解音质差异
  • 为项目并排比较特定语音
  • Kokoro 引擎升级后重新评估语音等级
  • 为 TTS_VOICE_EN 或 TTS_VOICE_ZH 选择新的默认语音
  • 测试某段文字在多个语音中的效果

要求

  • 已安装且运行正常的 Kokoro TTS 引擎(kokoro-install.sh --health)
  • 配备 Apple Silicon 且支持 MLX Metal 的 Mac
  • 可用的 afplay(macOS 自带)
  • 插件中的试听脚本:scripts/tts_kokoro_audition.sh
  • 插件中的共享库:scripts/lib/tts-common.sh

语音目录

语音 ID名称等级性别
af_heartHeartA女
af_bellaBellaA-女
af_nicoleNicoleB-女
af_aoedeAoedeC+女
af_koreKoreC+女
af_sarahSarahC+女
am_adamAdamF+男
am_michaelMichael未评级男
am_echoEchoD男
am_puckPuck未评级男

当前默认设置(配置于 ~/.claude/automation/claude-telegram-sync/mise.toml):

  • 英语语音:af_heart(等级 A),通过 TTS_VOICE_EN 设置
  • 中文语音:zf_xiaobei,通过 TTS_VOICE_ZH 设置
  • macOS say 英语回退语音:Samantha,通过 TTS_VOICE_SAY_EN 设置
  • macOS say 中文回退语音:Ting-Ting,通过 TTS_VOICE_SAY_ZH 设置

详细特征和等级标准请参阅语音目录。


工作流阶段

阶段 1:预检

验证 Kokoro 已安装且运行正常:

kokoro-install.sh --health

全部 6 项检查必须通过(venv、Python 3.14、可导入 mlx_audio、kokoro_common.py、tts_generate.py、version.json)。

阶段 2:选择文本

试听脚本会读取 macOS 剪贴板中的内容(pbpaste)。如果剪贴板为空或内容不是文本,则会改用内置的一段图书馆阅读相关文本。

如需试听自定义文本,请在运行脚本前将所需内容复制到剪贴板。

阶段 3:询问用户——完整试听还是选择性试听

使用 AskUserQuestion 确定试听范围:

  • 完整试听——按顺序播放全部 10 个语音(需要几分钟)
  • 选择特定语音——仅运行部分语音(例如,排名最高的 3 个女声)

如需选择性试听,请编辑脚本中的 VOICES 数组,或手动传入语音 ID。

阶段 4:执行试听
~/.local/bin/tts_kokoro_audition.sh

也可以直接从插件源代码运行:

/path/to/plugins/tts-tg-sync/scripts/tts_kokoro_audition.sh

脚本会获取 TTS 锁,间隔 1 秒依次播放每个语音,然后在退出时释放锁。

阶段 5:收集反馈

使用 AskUserQuestion 收集用户偏好:

  • 哪个语音听起来最好?
  • 有哪些语音应从后续候选中排除?
  • 是否应更新等级分配?
阶段 6:应用配置

可选:更新 mise.toml 中的默认语音:

# ~/.claude/automation/claude-telegram-sync/mise.toml
[env]
TTS_VOICE_EN = "af_heart"   # Change to preferred voice ID
TTS_VOICE_ZH = "zf_xiaobei"

更改 mise.toml 后,重启 Telegram 机器人,使新语音生效。


TodoWrite 任务模板

1. [Preflight] Verify Kokoro TTS is installed and healthy (kokoro-install.sh --health)
2. [Text] Check clipboard for passage, fall back to default if empty
3. [Select] Ask user: full audition (all 10 voices) or specific voices
4. [Audition] Run tts_kokoro_audition.sh and let user listen
5. [Feedback] Ask user which voice they prefer and collect grade feedback
6. [Apply] Optionally update TTS_VOICE_EN in mise.toml and restart bot

更改后检查清单

  • 试听前已通过 Kokoro 健康检查
  • 所有选定的语音均正常播放,未出现错误
  • 用户已确认首选语音
  • mise.toml 已更新为新的语音 ID(如有更改)
  • 配置更改后已重启机器人(如适用)
  • 参考文档中的语音目录等级已更新(如有重新评级)

故障排除

问题原因解决方案
没有音频播放未安装 Kokoro运行 kokoro-install.sh --install 或使用 full-stack-bootstrap 技能
音频在句子中途截断TTS 锁被另一个进程抢占检查是否有其他 TTS 进程:pgrep -la afplay
声音听起来不对Kokoro 模型中的声音 ID 无效确认声音 ID 存在于 VOICES 数组中;检查 Kokoro 版本
剪贴板为空没有复制文本脚本会自动使用默认段落;无需执行任何操作
“ERROR: Local Kokoro not found”虚拟环境或脚本缺失运行 kokoro-install.sh --health 进行诊断;运行 --install 修复
特定声音出现 FAILED模型中没有该声音该声音可能需要不同的 Kokoro 版本;检查模型兼容性
锁未释放脚本崩溃且未执行清理移除过期锁:rm -f /tmp/kokoro-tts.lock
所有声音听起来都一样Kokoro 模型未正确加载重新下载模型:kokoro-install.sh --upgrade

参考文档

  • 声音目录 - 完整的声音列表,包含质量等级、特征和选择指南
  • 演进日志 - 此技能的变更历史

执行后反思

此技能完成后,请在结束任务前进行反思:

  1. 确认文件位置。 — 在编辑前,找到此 SKILL.md 的规范路径(使用 Glob 搜索此技能名称)。所有修正都针对此文件及其同级的 references/ — 绝不要修改其他文档。
  2. 哪里失败了? — 修复导致问题的指令。如果问题可能再次发生,将其作为反模式添加。
  3. 哪些效果超出预期? — 将其提升为推荐做法,并记录原因。
  4. 哪里出现了偏差? — 如果脚本、参考资料或外部依赖与实际情况不再一致,请立即修正。
  5. 记录下来。 — 每项变更都要在演进日志中记录触发原因、修复内容和证据。

不要推迟。下一次调用会继承你留下的一切。



评论

支持 Markdown