AI个人学习
和实操指南
讯飞绘镜

Orpheus-TTS:生成自然中文语音的文本转语音工具

综合介绍

Orpheus-TTS 是一个开源的文本转语音(TTS)系统,基于 Llama-3b 架构开发,目标是生成接近人类自然语音的音频。它由 Canopy AI 团队推出,支持英语、西班牙语、法语、德语、意大利语、葡萄牙语和汉语等多种语言。系统能通过文本输入生成具有语调、情感和节奏的语音,支持笑声、叹息等非语言表达,适用于实时对话、有声书制作和智能助手开发。Orpheus-TTS 提供预训练和微调模型,开发者可根据需求定制语音或语言。

Orpheus-TTS:生成自然中文语音的开源文本转语音工具-1


 

功能列表

  • 生成接近人类语音:将文本转为具有自然语调、情感和节奏的音频,优于部分闭源模型。
  • 零样本语音克隆:无需额外训练即可模仿目标语音的音色。
  • 情感与语调控制:通过标签(如 <laugh><sigh>)调整语音表达,增强真实感。
  • 低延迟流式输出:实时语音生成延迟约 200ms,优化后可降至 100ms。
  • 多语言支持:支持英语、西班牙语、法语、德语、意大利语、葡萄牙语、汉语等多种语言。
  • 模型微调:提供数据处理脚本和示例数据集,支持开发者定制语音风格或语言。
  • 本地与云端运行:支持通过 LM Studio、llama.cpp 或 vLLM 在本地或云端运行。
  • 音频水印:通过 Silent Cipher 技术为生成的音频添加水印,保护版权。

 

使用帮助

安装流程

Orpheus-TTS 需要 Python 环境和基本的硬件支持(推荐 GPU)。以下是详细安装步骤:

  1. 克隆代码库
    使用 Git 下载 Orpheus-TTS 项目:

    git clone https://github.com/canopyai/Orpheus-TTS.git
    cd Orpheus-TTS
    
  2. 安装依赖
    安装核心包 orpheus-speech,它依赖 vLLM 进行快速推理:

    pip install orpheus-speech
    

    注意:2025 年 3 月 18 日的 vLLM 版本可能存在 bug,建议安装稳定版本:

    pip install vllm==0.7.3
    

    其他依赖包括 transformersdatasets 和 torch,可根据需求安装:

    pip install transformers datasets torch
    
  3. 检查硬件要求
    • Python 版本:3.8-3.11(3.12 不支持)。
    • GPU:推荐 NVIDIA CUDA 驱动,显存 12GB 以上以确保流畅运行。
    • CPU:支持通过 orpheus-cpp 运行,但性能较低,适合轻量测试。
    • 网络:首次运行需下载模型,建议稳定网络连接。
  4. 下载模型
    Orpheus-TTS 提供以下模型,托管在 Hugging Face:

    • 微调模型(canopylabs/orpheus-tts-0.1-finetune-prod):适合日常语音生成任务。
    • 预训练模型(canopylabs/orpheus-tts-0.1-pretrained):基于 10 万小时英语语音数据训练,适合语音克隆等高级任务。
    • 多语言模型(canopylabs/orpheus-multilingual-research-release):包含 7 组预训练和微调模型,支持多语言研究。
      下载方式:
    huggingface-cli download canopylabs/orpheus-tts-0.1-finetune-prod
    
  5. 测试安装
    运行以下 Python 脚本验证安装是否成功:

    from orpheus_tts import OrpheusModel
    model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod")
    prompt = "tara: 你好,这是一个测试!"
    audio = model.generate_speech(prompt)
    with wave.open("test_output.wav", "wb") as file:
    file.setnchannels(1)
    file.setsampwidth(2)
    file.setframerate(24000)
    file.writeframes(audio)
    

    成功运行后,将生成一个 WAV 文件,包含输入文本的语音。

主要功能操作

1. 生成接近人类语音

Orpheus-TTS 的核心功能是将文本转为接近人类自然语音的音频。系统支持多种语音角色,英语模型中 tara 的语感最自然,其他角色包括 leahjessleodanmiazac 和 zoe。多语言模型的角色需参考官方文档。操作步骤:

  • 准备文本提示,格式为 {角色名}: {文本},例如 tara: 你好,今天天气很好!
  • 调用生成函数:
    audio = model.generate_speech(prompt="tara: 你好,今天天气很好!")
    
  • 输出为 WAV 格式音频,采样率 24000 Hz,单声道。

2. 情感与语调控制

用户可通过标签控制语音的情感表达,增强语音真实感。支持的标签包括:

  • <laugh>:笑声。
  • <sigh>:叹息。
  • <cough>:咳嗽。
  • <sniffle>:抽鼻子。
  • <groan>:呻吟。
  • <yawn>:打哈欠。
  • <gasp>:惊讶。
    示例:
prompt = "tara: 这个消息太震撼了!<gasp> 你听说了吗?"
audio = model.generate_speech(prompt)

生成音频将在适当位置加入惊讶效果。多语言模型的标签支持需参考 Hugging Face 文档。

3. 零样本语音克隆

Orpheus-TTS 支持零样本语音克隆,可直接模仿目标语音,无需预训练。操作步骤:

  • 准备目标语音的 WAV 文件,建议时长 10-30 秒,采样率 24000 Hz。
  • 使用以下脚本:
    audio_ref = "path/to/reference.wav"
    prompt = "tara: 这段话会模仿你的声音!"
    audio = model.generate_with_voice_clone(prompt, audio_ref)
    
  • 输出音频将接近参考语音的音色。预训练模型在克隆任务中表现更佳。

4. 低延迟流式输出

Orpheus-TTS 提供流式语音生成,适合实时对话场景,延迟约 200ms,优化后可降至 100ms。操作示例:

from flask import Flask, Response
from orpheus_tts import OrpheusModel
app = Flask(__name__)
[1]
model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod")
@app.route("/stream")
def stream_audio():
def generate():
prompt = "tara: 这是实时语音测试!"
for chunk in model.stream_generate(prompt):
yield chunk
return Response(generate(), mimetype="audio/wav")

运行 Flask 服务后,访问 http://localhost:5000/stream 可听到实时语音。优化延迟需启用 KV 缓存和输入流式处理。

5. 模型微调

开发者可微调模型以支持新语言或语音风格。步骤如下:

  • 准备数据集:格式参考 Hugging Face 示例数据集(canopylabs/zac-sample-dataset)。建议包含 50-300 个样本/角色,300 个样本可获得最佳效果。
  • 预处理数据:使用官方提供的 Colab 笔记本(1wg_CPCA-MzsWtsujwy-1Ovhv-tn8Q1nD)处理数据,耗时约 1 分钟/千条。
  • 配置训练:修改 finetune/config.yaml,设置数据集路径和参数。
  • 运行训练:
    huggingface-cli login
    wandb login
    accelerate launch train.py
    
  • 微调后模型可用于特定任务,如中文语音优化。

6. 音频水印

Orpheus-TTS 支持通过 Silent Cipher 技术为音频添加水印,保护版权。操作方法:

  • 参考官方实现脚本(additional_inference_options/watermark_audio)。
  • 示例:
    from orpheus_tts import add_watermark
    audio = model.generate_speech(prompt)
    watermarked_audio = add_watermark(audio, watermark_id="user123")
    

7. 无 GPU 推理

无 GPU 用户可通过 orpheus-cpp 在 CPU 上运行,步骤:

  • 安装 llama.cpp 环境。
  • 参考官方文档(additional_inference_options/no_gpu/README.md)。
  • 性能较 GPU 低,适合轻量任务。

注意事项

  • 模型选择:微调模型适合日常任务,预训练模型适合高级任务如语音克隆。
  • 硬件限制:低于 12GB 显存可能导致内存不足,建议检查硬件配置。
  • 多语言支持:非英语语言需参考多语言模型文档,部分语言可能需要微调。
  • 调试:若 vLLM 报错(如 vllm._C),尝试更换版本或检查 CUDA 兼容性。

补充功能:社区扩展

Orpheus-TTS 的开源性质吸引了社区贡献,官方推荐以下实现(未经完全验证):

  • LM Studio 本地客户端:通过 LM Studio API 运行 Orpheus-TTS(isaiahbjork/orpheus-tts-local)。
  • FastAPI 兼容 Open AI:提供 Open AI 风格的 API 接口(Lex-au/Orpheus-FastAPI)。
  • Gradio WebUI:支持 WSL 和 CUDA 的网页界面(Saganaki22/OrpheusTTS-WebUI)。
  • Hugging Face Space:由社区用户 MohamedRashad 搭建的在线体验(MohamedRashad/Orpheus-TTS)。

 

应用场景

  1. 智能客服机器人
    Orpheus-TTS 可为客服系统生成自然语音,支持实时对话和情感表达,提升用户体验。
    例如,电商平台可集成 Orpheus-TTS,回复客户咨询时加入友好语调。
  2. 有声书与播客制作
    出版商可将小说或文章转为有声书,支持多种角色和情感标签,降低配音成本。
    播客创作者可生成动态开场白,增加节目吸引力。
  3. 语言学习工具
    教育应用可生成标准发音的语音,帮助学生练习听力和口语。
    例如,汉语学习者可使用中文模型练习普通话发音。
  4. 游戏角色配音
    游戏开发者可为 NPC 生成动态对话,支持多语言和情感表达,增强沉浸感。
    例如,RPG 游戏可为不同角色生成独特音色。
  5. 无障碍辅助工具
    Orpheus-TTS 可为视障用户将文本转为语音,提供实时阅读支持。
    例如,集成到电子书阅读器,朗读长篇文章。

 

QA

  1. Orpheus-TTS 支持哪些语言?
    支持英语、西班牙语、法语、德语、意大利语、葡萄牙语和汉语。多语言模型覆盖更多语言,具体参考 Hugging Face 文档。
  2. 如何优化实时语音延迟?
    启用 KV 缓存和输入流式处理,延迟可从 200ms 降至 100ms。确保 GPU 性能充足,显存至少 12GB。
  3. 零样本语音克隆需要什么准备?
    提供 10-30 秒的 WAV 格式参考音频,采样率 24000 Hz。预训练模型效果更佳。
  4. CPU 能否运行 Orpheus-TTS?
    可以,使用 orpheus-cpp,但性能低于 GPU,适合测试或轻量任务。
  5. 如何为音频添加水印?
    使用 Silent Cipher 技术,调用 add_watermark 函数,需参考官方脚本实现。
  6. 微调需要多少数据?
    50 个样本可获得初步效果,300 个样本/角色可达最佳质量。数据需符合 Hugging Face 格式。
未经允许不得转载:首席AI分享圈 » Orpheus-TTS:生成自然中文语音的文本转语音工具
zh_CN简体中文