用途:作为工作流末端的“发声”环节。上游技能(如 roundup、daily-prep、meeting-minutes)或用户先产出文字,本技能把文字改写成适合听的口语稿,再合成为本地 MP3。
主要能力:全程在本地 CPU 运行,文本不发送到云端语音服务,可用于机密内容,也能在无头云智能体或 CI 容器中运行。合成引擎为 Kyutai pocket-tts,首次使用会自动安装到缓存的虚拟环境;也可手动安装:pip install pocket-tts(任意平台)或 brew install pocket-tts(macOS)。需要 Python >=3.10 且 <3.15,脚本会搜索兼容解释器。编码器优先使用 ffmpeg(brew install ffmpeg 或 apt-get install -y ffmpeg),macOS 上可回退到 afconvert 并输出 .m4a。首次运行会从 Hugging Face 下载约 1GB 模型,之后完全离线,合成速度约为实时的 6 倍。
使用方式:先写一份面向耳朵的口语稿并保存为 .txt,保留带链接的原文作为对照。要点包括开头交代内容与时长、把项目符号改成连接性散文、首次出现时展开缩写、自然读出日期数字、不朗读 URL、用短句、加过渡提示、结尾复述行动项、省略纯视觉内容。合成命令:./scripts/tts.sh <input.txt> <output.mp3> [voice.safetensors]。脚本会去除残留 Markdown,按句边界切成约 600 字符的块,逐块合成并拼成 96kbps 单声道 MP3。环境变量:SPEAK_TTS_BIN 指定 pocket-tts 二进制;SPEAK_TTS_HOME 指定缓存虚拟环境位置,默认 ~/.cache/speak-summary/venv。默认英文音色为 alba,可用 pocket-tts export-voice --help 进行声音克隆,但只能克隆有授权的音色,不得未经同意克隆真人声音。输出默认放在 ~/Music/Briefings/,文件名为 <subject>-<YYYY-MM-DD>.mp3,并报告路径、时长和大小,可提供 afplay 或 ffplay -nodisp -autoexit 播放。日常简报建议 4–6 分钟(约 600–900 口语词),超过约 10 分钟应提示并做更紧的剪辑或拆分文件。
限制:上游已负责内容,本技能只负责改写与发声,链式调用时不要重新总结;首次运行慢是模型下载,后续约一秒启动;句子过长会导致音频中途截断;发音错误需在输入中做音标化拼写;若安装后找不到 pocket-tts,可能虚拟环境过期或 python3 不在支持范围,可删除 ~/.cache/speak-summary/venv 重试或设置 SPEAK_TTS_BIN。