🌐 官网 (outeai.com) | 🤗 Hugging Face | 💬 Discord | 𝕏 X (Twitter) | 📰 博客
| 后端 | 语言 | 安装方式 | 支持的模型版本 |
|---|---|---|---|
| Llama.cpp Python 绑定 | Python | ✅ 默认安装 | 所有 |
| Llama.cpp 服务器 | Python | ✅ 默认安装 | 所有 |
| Llama.cpp 异步服务器 (批处理) | Python | ✅ 默认安装 | 1.0 |
| Hugging Face Transformers | Python | ✅ 默认安装 | 所有 |
| ExLlamaV2 | Python | ❌ 需手动安装 | 所有 |
| ExLlamaV2 异步 (批处理) | Python | ❌ 需手动安装 | 1.0 |
| VLLM (批处理) 实验性支持 | Python | ❌ 需手动安装 | 1.0 |
| Transformers.js | JavaScript | NPM 包 | 0.2 |
测试环境:NVIDIA L40S GPU

OuteTTS 现在默认安装 llama.cpp Python 绑定。因此,您必须根据您的硬件指定安装方式。有关构建 llama.cpp 的更详细说明,请参考以下资源:llama.cpp 构建指南 和 llama.cpp Python
pip install outetts --upgrade
CMAKE_ARGS="-DGGML_CUDA=on" pip install outetts --upgrade
CMAKE_ARGS="-DGGML_HIPBLAS=on" pip install outetts --upgrade
CMAKE_ARGS="-DGGML_VULKAN=on" pip install outetts --upgrade
CMAKE_ARGS="-DGGML_METAL=on" pip install outetts --upgrade
完整的用法指南,请参阅接口文档:
[!TIP]
目前,仅提供一个默认的英语女声用于测试。您可以按照以下指南,仅用几行代码轻松创建自己的说话人配置文件:
import outetts
# 初始化接口
interface = outetts.Interface(
config=outetts.ModelConfig.auto_config(
model=outetts.Models.VERSION_1_0_SIZE_1B,
# 对于 llama.cpp 后端
backend=outetts.Backend.LLAMACPP,
quantization=outetts.LlamaCppQuantization.FP16
# 对于 transformers 后端
# backend=outetts.Backend.HF,
)
)
# 加载默认的说话人配置文件
speaker = interface.load_default_speaker("EN-FEMALE-1-NEUTRAL")
# 或者,您可以在几秒钟内创建自己的说话人配置文件并立即复用
# speaker = interface.create_speaker("path/to/audio.wav")
# interface.save_speaker(speaker, "speaker.json")
# speaker = interface.load_speaker("speaker.json")
# 生成语音
output = interface.generate(
config=outetts.GenerationConfig(
text="Hello, how are you doing?",
speaker=speaker,
)
)
# 保存到文件
output.save("output.wav")
以下是支持运行 OuteTTS 模型的第三方工具。
| 库 | 语言 | 支持的模型版本 |
|---|---|---|
| Llama.cpp TTS 示例 | C++ | 0.2 |
| KoboldCPP | C++ | 0.2, 0.3 |
| MLX-Audio | Python (MLX) | 1.0 |
| ChatLLM.cpp | C++ | 1.0 |
[!IMPORTANT]
重要采样注意事项使用 OuteTTS 1.0 版本时,必须使用 采样配置 部分指定的设置。
重复惩罚的实现尤为重要——此模型需要对最近 64 个令牌的窗口应用惩罚,而不是在整个上下文窗口上。惩罚整个上下文将导致模型产生损坏或低质量的输出。为了解决这个限制,outetts 库已为所有后端自动设置了必要的采样器和补丁。
如果使用自定义实现,请确保正确实现这些要求。
该模型设计为使用说话人参考。没有参考时,它会生成随机的声学特征,通常导致输出质量较低。
模型会继承参考说话人的情感、风格和口音。
因此,当使用同一说话人转录到其他语言时,您可能会观察到模型保留了原始口音。
例如,如果您使用一个日语说话人并用英语继续说话,模型可能会倾向于使用日语口音。
建议为您打算使用的语言创建一个说话人配置文件。这有助于在该特定语言(包括语调、口音和语言特征)中获得最佳效果。
虽然模型支持跨语言语音,但它仍然依赖于参考说话人。如果说话人有明显的口音——例如英式英语——其他语言也可能带有这种口音。
测试表明,温度为 0.4 是保证准确性的理想起点(配合以下采样设置)。然而,某些声音参考可能受益于更高的温度以增强表现力,或稍低的温度以实现更精确的声音复制。
如果克隆的声音质量不佳,请检查编码后的说话人样本。
interface.decode_and_save_speaker(speaker=your_speaker, path="speaker.wav")
DAC 音频重建模型是有损的,带有削波、音量过大或不寻常声音特征的样本可能会引入影响输出质量的编码问题。
为了在此 TTS 模型上获得最佳结果,请使用以下采样设置。
| 参数 | 值 |
|---|---|
| 温度 | 0.4 |
| 重复惩罚 | 1.1 |
| 重复惩罚范围 | 64 |
| Top-k | 40 |
| Top-p | 0.9 |
| Min-p | 0.05 |
Uroman "本项目使用了由 Ulf Hermjakob, USC Information Sciences Institute (2015-2020) 编写的通用罗马化软件 'uroman'"