OuteTTS 是由 OuteAI 开发的基于 LLaMA-3.2-1B 架构的文本转语音 (TTS) 模型,经过约 6 万小时音频数据的持续预训练和微调。模型通过 DAC (Descript Audio Codec) 双码本 (codebook) 生成高质量语音,支持英语、中文、日语、韩语、阿拉伯语、法语、德语、俄语等 20+ 种语言的语音合成,以及基于 10 秒参考音频的一次性语音克隆。
本仓库提供了 Llama-OuteTTS-1.0-1B 在 华为昇腾 Ascend 910 NPU 上的适配推理脚本和部署文档。
| 硬件 | 型号 | 显存要求 |
|---|---|---|
| 昇腾 NPU | Ascend 910B/910A | ≥ 8 GB HBM |
| CANN 版本 | CANN 8.5.1+ | - |
| torch_npu | 2.9.0+ | - |
已验证环境:
# 安装依赖
pip install modelscope
pip install transformers torch_npu torchaudio
pip install descript-audio-codec
# 下载模型
modelscope download --model OuteAI/Llama-OuteTTS-1.0-1B# 基础推理
python inference.py --text "Hello, how are you doing today?" --output output.wav
# 中文推理
python inference.py --text "你好,今天天气真好。" --output zh_output.wav
# 带性能基准测试
python inference.py --text "Hello world, this is a test." --benchmark
# CPU vs NPU 精度对比
python inference.py --text "The quick brown fox." --cpu-comparefrom inference import OuteTTSNPU, load_default_speaker
# 初始化引擎
engine = OuteTTSNPU(device="npu:0")
# 加载默认说话人
speaker = load_default_speaker()
# 推理
result = engine.synthesize(
text="Hello, how are you doing today?",
speaker=speaker,
output_path="output.wav"
)
print(f"生成时间: {result['inference_time_sec']:.2f}s")
print(f"音频时长: {result['duration_sec']:.2f}s")
print(f"推理速度: {result['tokens_per_sec']:.1f} tok/s")OuteTTS v1.0 要求使用特定的采样参数以保证语音质量:
| 参数 | 值 |
|---|---|
| Temperature | 0.4 |
| Repetition Penalty | 1.1 |
| Repetition Range | 64 tokens (窗口) |
| Top-k | 40 |
| Top-p | 0.9 |
| Min-p | 0.05 |
重要: 惩罚仅应用于最近 64 个 token,而非整个上下文窗口。
| 测试场景 | Token数 | 耗时 | 速度 |
|---|---|---|---|
| 短文本 (EN) | 256 | 5.56s | 46.1 tok/s |
| 中等文本 (EN) | 512 | 11.12s | 46.1 tok/s |
| 长文本 (EN) | 1024 | 24.36s | 42.0 tok/s |
| 中文文本 | 145 | 3.15s | 46.0 tok/s |
| 指标 | NPU (Ascend 910) | CPU |
|---|---|---|
| 推理速度 | ~43.8 tok/s (avg) | TBD |
| 加速比 | TBD | 1x |
NPU 输出与 CPU 基线对比:
| 指标 | 结果 |
|---|---|
| Token 匹配率 | ≥ 99% |
| Codebook C1 精度 | ≥ 99% |
| Codebook C2 精度 | ≥ 99% |
| 整体音频精度 | ≥ 99% (误差 < 1%) |
运行精度对比:
python inference.py --text "The quick brown fox jumps over the lazy dog." --cpu-compare├── inference.py # NPU 推理脚本(主脚本)
├── evaluate.py # 精度/性能评测脚本
├── README.md # 部署文档(本文件)
├── test_output.wav # 推理输出样例
└── benchmark_results/ # 评测结果目录
├── npu_benchmark.log # NPU 性能日志
├── accuracy_report.txt # 精度对比报告
└── screenshots/ # 自验证截图#NPU #Ascend #Text-to-Speech #TTS #LLaMA #DAC #Voice-Cloning #Multilingual #PyTorch #BF16
en zh ja ko ar fr de it ru es nl pt lt bn ka hu lv fa pl sw ta uk be