用途 Tortoise TTS 是 James Betker 开发的文本转语音程序,GitHub 仓库为 neonbjb/tortoise-tts,采用 Apache 2.0 许可证。其构建重点在于:强多语音能力,以及高度真实的韵律和语调。仓库包含在推理模式下运行 Tortoise TTS 所需的全部代码。
主要能力 Tortoise 是一个多语音 TTS 系统,以质量为优先训练。它同时利用自回归解码器和扩散解码器,两者都以低采样率著称,这也是取名 Tortoise(乌龟,略带自嘲)的原因。作者在 K80 上生成一个中等长度句子约需 2 分钟;仓库说明中更新称,现在已不那么慢,在 4GB 显存上可以取得 0.25-0.3 的 RTF,配合流式处理可获得低于 500 毫秒的延迟。论文链接为 https://arxiv.org/abs/2305.07243。
使用方式 推理可通过 pip 安装,或直接从 git 仓库安装最新开发版本。 本地安装需要 NVIDIA GPU;在 Windows 上作者强烈推荐使用 Conda 安装方式,否则可能需花费大量时间处理依赖问题。 安装步骤(Windows,使用 anaconda prompt 或配置了 conda 的终端):先安装 miniconda;然后创建带有最小依赖的 conda 环境、激活环境、按要求安装 pytorch、克隆 tortoise-tts、切换到该目录、运行 tortoise 的 python setup 安装脚本。也可选择把 pytorch 安装在 base 环境供其他 conda 环境共用。使用 tortoise-tts 时需始终确保 tortoise conda 环境已激活。Windows 上可能还需安装 pysoundfile。 在 macOS 13+ 的 M1/M2 芯片上,需在激活环境后安装 nightly 版 PyTorch;Apple Silicon 上 DeepSpeed 被禁用,--use_deepspeed 标志会被忽略,可能需要在命令前加 PYTORCH_ENABLE_MPS_FALLBACK=1。 仓库提供若干脚本:一个脚本可用一个或多个语音说出单个短语;一个脚本可进行 socket 流式处理,监听端口 5000;read.py 脚本用于朗读大量文本,会把文本文件拆分为句子并逐句转语音,边生成边输出语音片段,全部生成后再合并为单个文件输出,可用 --regenerate 参数重新生成某个不理想的片段。 Tortoise 也可以编程方式使用,并可使用 deepspeed、kv cache、float16,三者同时使用可获得更快的运行。
Hugging Face 演示 有在线演示托管在 Hugging Face Spaces,如想避免排队可复制该 Space 并添加 GPU;注意纯 CPU 的 Space 无法运行该演示。
适用场景与限制 适用于对语音质量、多语音和韵律、语调真实性有较高要求的文本转语音场景。限制方面:本地运行需要 NVIDIA GPU(macOS M1/M2 有额外注意事项,Apple Silicon 不支持 DeepSpeed);早期生成速度极慢,现虽已优化但仍依赖硬件;仅包含推理模式代码;需要自行处理安装与依赖环境。
致谢与引用 项目致谢 Hugging Face(GPT 模型、generate API 与模型权重托管)、DALLE 论文作者 Ramesh 等、扩散模型代码作者 Nichol 和 Dhariwal、univnet 开发者 Jang 等、univnet pytorch 模型实现者 Kim 和 Jung、lucidrains、以及 wav2vec 指南作者 Patrick von Platen。Tortoise 由作者完全使用自有硬件构建,其雇主未参与任何开发环节。若在研究中使用该仓库或其思想,请引用(bibtex 见 GitHub 右侧栏)。