WhisperSpeech – 一个通过反转 Whisper 构建的开源文本转语音系统
一个名为 WhisperSpeech 的开源项目正在逆向使用 OpenAI 的 Whisper 语音识别模型来创建高质量的文本转语音,目标是缩小像 ElevenLabs 或 OpenAI 自家的 TTS 这类专有系统与可自托管方案之间的差距。评论者探讨了它当前的优势(自然的韵律、声音克隆、GPU 上的实时性能、完全本地/离线使用)以及局限,例如语言覆盖、算力需求,以及数据集、工具链和训练数据法律不确定性带来的实际挑战。与其他 TTS 方案(Piper、Mimic、Azure、Google、EmotiVoice、Tortoise)的对比突显了质量、成本、延迟和开放性之间的权衡,也说明了将快速的机器学习进展转化为稳健的终端用户产品仍然有多困难。
训练方法与架构
- 使用 Whisper 的多语言 ASR 编码器作为“语义”前端,因此训练只需要语音音频;转录文本由 Whisper 自动生成。
- 架构可描述为:Whisper 编码器 → 语义 token → 声学 token(来自 Encodec)→ Vocos 声码器。
- 这绕开了专有的语义编码器(例如 VALL-E/SPEAR-TTS 中的那些),并且如果有数据,也能扩展到多语言。
功能、声音克隆与可调性
- 支持从参考音频文件进行声音克隆(Colab 笔记本中有示例,但 README 里尚未很好地文档化)。
- 声音身份相对可调;韵律和情感仍然难以控制,目前是活跃的研究方向。
- 可以通过基于 Whisper 的 token 将现有语音转换为不同声音;有人推测可以进行口音迁移,但尚未测试。
性能、硬件与部署
- 可在本地运行;无云端、无追踪。权重只需从 Hugging Face 下载一次。
- 在 RTX 4090 上,据称速度约为实时的 12 倍;现代 NVIDIA GPU 上用于“语音机器人”可望达到实时性能。
- 当前实现仅支持 CUDA/PyTorch;希望移植到 MLX 以及类似 whisper.cpp/llama.cpp 的框架。
- 推理模型在 FP16 下大约使用 3 GB VRAM(FP32 为 2.3 GB,说明还有优化空间)。
- 从头完整训练:主 TTS 模型在 96 张 A100 GPU 上约需 8 小时;更小的模型更快。可以微调,但尚未对用户足够友好。
语言支持与数据集
- 目前支持英语和波兰语;计划扩展到多语言。
- 依赖高质量有声书(例如 LibriVox、WolneLektury 这类公有领域/CC 来源),以及一些包含不同情感/韵律的小型数据集。
- 社区建议使用普通话语料,甚至预先计算好的强制对齐;总体瓶颈是干净、合法可用的数据。
质量对比
- 许多评论者认为 WhisperSpeech 是最好的开源 TTS 之一;也有人说 Tortoise 略好,但速度要慢得多。
- 与 Mimic 3/Piper 和 EmotiVoice 相比,不少人认为 WhisperSpeech 听起来更自然;EmotiVoice 的英语被描述为有些不像母语。
- 商业产品方面,ElevenLabs 被视为质量最高但非常昂贵;OpenAI 的 TTS 几乎同样好且便宜得多,Azure Neural/Google TTS 质量较低,但免费额度很慷慨。
许可与法律顾虑
- 项目强调使用许可明确(PD、CC-BY/SA)的语音数据以及完全开源的代码,以便更安全地用于商业用途。
- 围绕“许可明确”这一说法展开讨论,因为 Whisper 自身的训练数据并不清楚;这里区分为:
- 将 Whisper(MIT 许可、非生成式)的输出作为输入特征来使用。
- 在无许可数据上训练生成模型,这可能存在问题。
- 也承认未来法律变化可能改变风险格局;关于数据集许可的文档正在改进。
生态、工具与应用
- 有人希望将 WhisperSpeech 集成到:
- 面向文本用户的 VR 社交平台。
- 桌面教程应用。
- 需要多种不同声音的聊天/助手系统。
- 更广泛的讨论指出:
- 模型进展迅速,但产品化缓慢且痛苦。
- 工具链方面的痛点:GPU 依赖、糟糕的安装脚本,以及集成障碍。
- 还举出了基于 Whisper 的实时字幕/翻译系统示例;WhisperLive 被提及为一个实用项目。