本地 VibeVoice 语音合成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-zzl567pv/cs-obsidian。
技能介绍
它解决的问题
本地文本转语音常卡在模型下载、依赖版本、设备兼容和多人脚本格式上。这个技能把 VibeVoice-1.5B 的本地推理封装成可直接执行的脚本,目标不是调用云端 API,而是在已有 uv 的环境中生成 .wav 音频。
工作方式与关键步骤
技能目录内含 setup.sh、tts_generate.py、虚拟环境、9 个内置声音和输出目录。首次使用会创建 Python 3.11 虚拟环境,并从 GitHub 安装 vibevoice;后续使用本地缓存模型。生成时先判断输入:纯文本按单说话人处理;多人脚本需写成 Speaker N: ...,其中 N 为 1 到 4。再选择声音预设,如默认 zh-Xinran_woman、中文男声 zh-Bowen_man、英文 en-Alice_woman 等。最后通过技能自身的虚拟环境调用脚本,输出到 outputs/tts_TIMESTAMP.wav。
支持参数包括 --text、--txt_path、--speaker_names、--output、--device、--seed、--ddpm_steps、--voices_dir 和 --checkpoint_path。设备策略上,CUDA 使用 bfloat16 与 flash_attention_2,不可用时回退 sdpa;Mac MPS 使用 float32 与 sdpa,约需 6 GB 统一内存。模型首次下载约 3 GB,支持最长约 90 分钟音频。
适用边界与注意点
- 短文本用
--text即可;多行或长段落应先写入.txt文件并用--txt_path,避免 shell 吃掉换行。 - 中文文本建议用英文标点
,和.,减少发音不稳定。 - 多说话人格式必须严格,且最多四位。
- 生成速度在 Apple Silicon 上大约为 2 到 5 倍实时,30 秒音频可能耗时 60 到 150 秒。
- 自定义声音通过
--voices_dir指定.wav文件;微调模型可通过--checkpoint_path加载 LoRA 适配器。
使用场景
- 为播客脚本在本地批量生成四位说话人的 WAV,避免把敏感文稿上传到云端 TTS 服务。
- 在 Apple Silicon 笔记本上调试 1.5B 模型,用 MPS 跑出单人口播音频并检查生成耗时。
- 将带 Speaker 1:、Speaker 2: 的教学脚本转成双人课堂音频,保存为固定路径 WAV 文件。
- 用已有 .wav 声线目录和 LoRA checkpoint 参数生成角色对白,对比 seed 与 ddpm_steps 效果。
适合人员
- 制作播客 / 有声书的音频工程师,需要本地多说话人 TTS 与固定输出 WAV。
- 训练 VibeVoice 微调 LoRA 的研究员,需要在推理时加载 checkpoint 并复现 seed。
- 做语音原型的前端 / 全栈工程师,要在 macOS MPS 或 CUDA 上快速验证音色参数。
- 处理敏感脚本的内容团队,希望离线生成中文多人对白并指定输出目录。