Orpheus TTS是基于Llama-3b的开源TTS系统,具备语音克隆、情感控制和低延迟等能力,TTS能力超越了 ElevenLabs 和 OpenAI 等开源和闭源模型,利用大型语言模型 (LLM) 的能力进行语音合成。
语音自然度:自然的语调、情感和节奏,在语音合成领域独树一帜。
零样本语音克隆:无需预先微调,就能实现语音克隆,极大地降低了使用门槛。
可控的情感和语调:通过简单的标签,用户可以轻松控制语音的情感和语调特征。
低延迟:约200毫秒的流式延迟,适用于实时应用,且通过输入流式处理可进一步降低至约100毫秒。
1、微调生产模型:专为日常语音合成应用而微调的模型。
2、预训练模型:在10万小时以上的英语语音数据上训练的基础模型。
1、微调模型的Colab设置(非流式处理,实时流式处理的设置见下文):适用于日常语音合成应用的微调模型。
2、预训练模型的Colab设置:该笔记本设置为条件生成,但可以扩展到多种任务。
1、克隆此仓库:
git clone https://github.com/canopyai/Orpheus-TTS.git
2、进入目录并安装包:
cd Orpheus-TTS && pip install orpheus-speech
3、运行以下示例代码:
from orpheus_tts import OrpheusModel
import wave
import time
model = OrpheusModel(model_name ="canopylabs/orpheus-tts-0.1-finetune-prod")
prompt = '''Man, the way social media has, um, completely changed how we interact is just wild, right? Like, we're all connected 24/7 but somehow people feel more alone than ever、And don't even get me started on how it's messing with kids' self-esteem and mental health and whatnot.'''
start_time = time.monotonic()
syn_tokens = model.generate_speech(
prompt=prompt,
voice="tara",
)
with wave.open("output.wav", "wb") as wf:
wf.setnchannels(1)
wf.setsampwidth(2)
wf.setframerate(24000)
total_frames = 0
chunk_counter = 0
for audio_chunk in syn_tokens:
chunk_counter += 1
frame_count = len(audio_chunk) // (wf.getsampwidth() * wf.getnchannels())
total_frames += frame_count
wf.writeframes(audio_chunk)
duration = total_frames / wf.getframerate()
end_time = time.monotonic()
print(f"It took {end_time start_time} seconds to generate {duration:.2f} seconds of audio")
1、微调生产模型:对于主模型,文本提示的格式为{name}: I went to the ...
。可供选择的名字按会话真实度排序(主观基准)依次为"tara"、"leah"、"jess"、"leo"、"dan"、"mia"、"zac"、"zoe"。此外,还可以添加以下情感标签:<laugh>
、<chuckle>
、<sigh>
、<cough>
、<sniffle>
、<groan>
、<yawn>
、<gasp>
。
2、预训练模型:可以仅根据文本生成语音,或者在提示中加入一个或多个现有的文本-语音对来生成语音。由于该模型未明确在零样本语音克隆目标上进行训练,在提示中加入的文本-语音对越多,生成的语音就越可靠。
还可以使用常规的LLM生成参数,如temperature
、top_p
等,repetition_penalty>=1.1
是稳定生成所必需的,增加repetition_penalty
和temperature
会使模型说话速度加快。
以下是微调模型的概述,可在任意文本和语音数据上进行微调,其过程类似于使用Trainer和Transformers微调LLM。
1、数据集应为Hugging Face数据集。
2、使用此笔记本准备数据,会将中间数据集推送到您的Hugging Face账户,然后可以将其输入到微调脚本finetune/train.py中,预处理每千行数据耗时不到1分钟。
3、修改finetune/config.yaml文件,包含您的数据集和训练属性,然后运行训练脚本,还可以运行任何与Hugging Face兼容的过程,如LoRA来微调模型。
pip install transformers datasets wandb trl flash_attn torch
huggingface-cli login <输入您的HF令牌>
wandb login <wandb令牌>
accelerate launch train.py