MOSS-TTSD:开源双语对话语音合成模型,让AI播客制作更简单
在人工智能技术飞速发展的今天,语音合成技术已经从简单的文本转语音(TTS)进化到了更加复杂的对话式语音生成。MOSS-TTSD(Text to Spoken Dialogue Generation)正是这一领域的创新之作,它不仅支持中英文双语对话生成,还具备语音克隆和长会话语音生成能力,为AI播客制作提供了全新的可能性。
什么是MOSS-TTSD?
MOSS-TTSD是一款开源的双语对话语音合成模型,能够将对话脚本转化为自然、富有表现力的对话式语音。与传统的TTS系统不同,MOSS-TTSD专注于对话场景,能够准确地处理说话人切换,生成具有自然对话韵律的语音。
简单来说,如果你有一段对话脚本,比如:
[S1]你好,最近怎么样?
[S2]我很好,谢谢关心。你呢?
[S1]我也很好,谢谢!
MOSS-TTSD可以将这段脚本转化为两个说话人自然对话的音频,就像真实的人在对话一样。
为什么MOSS-TTSD值得关注?
在AI语音合成领域,MOSS-TTSD有几个关键优势:
-
高度表达性的对话语音:基于统一语义-声学神经音频编解码器、预训练的大语言模型、数百万小时的TTS数据以及40万小时的合成和真实对话语音训练,MOSS-TTSD能够生成高度表达、类人般的对话语音。
-
双说话人语音克隆:MOSS-TTSD支持零样本双说话人语音克隆,可以根据对话脚本准确生成说话人切换的对话语音。
-
中英文双语支持:MOSS-TTSD能够以高表达性在中英文中进行语音生成。
-
长格式语音生成:通过低比特率编解码器和训练框架优化,MOSS-TTSD已针对长语音生成进行训练。
-
完全开源且商业可用:MOSS-TTSD及其未来更新将完全开源,支持免费商业使用。
MOSS-TTSD v0.5版本:更稳定的对话语音生成
2025年7月4日,MOSS-TTSD v0.5版本正式发布。相比早期版本,v0.5在音色切换准确性、语音克隆能力和模型稳定性方面都有显著提升。建议用户默认使用v0.5模型。
MOSS-TTSD的核心功能详解
1. 高度表达性的对话语音
MOSS-TTSD的语音生成不仅准确,还富有情感和表现力。它通过以下技术实现:
-
统一语义-声学神经音频编解码器 -
预训练的大语言模型 -
数百万小时的TTS数据 -
40万小时的合成和真实对话语音
这些技术的结合使得MOSS-TTSD能够生成具有自然对话韵律的语音,让AI对话听起来更加真实。
2. 两说话人语音克隆
MOSS-TTSD支持零样本两说话人语音克隆,这意味着你不需要为每个说话人单独训练模型,只需提供一段参考语音和对应的参考文本,MOSS-TTSD就能准确地模仿该说话人的声音。
例如,你可以提供Speaker 1的参考语音和文本,以及Speaker 2的参考语音和文本,MOSS-TTSD就能在对话中准确切换这两个说话人的声音。
3. 中英文双语支持
MOSS-TTSD支持中英文对话生成,这意味着你可以在同一对话中混合使用中英文,或者完全用中文或英文生成对话。这对于需要多语言内容的播客制作者来说是一个巨大的优势。
4. 长格式语音生成
MOSS-TTSD经过优化,可以生成长达数分钟的连续语音。这对于播客制作特别有用,因为播客通常需要较长的连续内容。
如何安装和使用MOSS-TTSD
安装环境
MOSS-TTSD需要Python 3.10+和PyTorch 2.0+环境。以下是安装步骤:
# 创建conda环境
conda create -n moss_ttsd python=3.10 -y
conda activate moss_ttsd
# 安装依赖
pip install -r requirements.txt
pip install flash-attn
# 下载XY Tokenizer
mkdir -p XY_Tokenizer/weights
huggingface-cli download fnlp/XY_Tokenizer_TTSD_V0 xy_tokenizer.ckpt --local-dir ./XY_Tokenizer/weights/
使用MOSS-TTSD
MOSS-TTSD支持三种主要使用方式:本地推理、Web UI和API调用。
1. 本地推理
要运行MOSS-TTSD本地推理,需要准备一个JSONL格式的输入文件。MOSS-TTSD支持三种输入格式:
格式1:纯文本输入(无语音克隆)
{
"text": "[S1]Speaker 1 dialogue content[S2]Speaker 2 dialogue content[S1]..."
}
格式2:分开的说话人音频参考
{
"base_path": "/path/to/audio/files",
"text": "[S1]Speaker 1 dialogue content[S2]Speaker 2 dialogue content[S1]...",
"prompt_audio_speaker1": "path/to/speaker1_audio.wav",
"prompt_text_speaker1": "Reference text for speaker 1 voice cloning",
"prompt_audio_speaker2": "path/to/speaker2_audio.wav",
"prompt_text_speaker2": "Reference text for speaker 2 voice cloning"
}
格式3:共享音频参考
{
"base_path": "/path/to/audio/files",
"text": "[S1]Speaker 1 dialogue content[S2]Speaker 2 dialogue content[S1]...",
"prompt_audio": "path/to/shared_reference_audio.wav",
"prompt_text": "[S1]Reference text for speaker 1[S2]Reference text for speaker 2"
}
运行推理脚本:
python inference.py --jsonl examples/examples.jsonl --output_dir outputs --seed 42 --use_normalize
2. Web UI使用
要启动MOSS-TTSD的Web UI,只需运行:
python gradio_demo.py
这将启动一个本地Gradio界面,让你可以通过网页界面轻松生成对话语音。
3. API使用
MOSS-TTSD还提供批量处理工具,可以使用SiliconFlow API进行并发处理:
# 设置环境变量
export SILICONFLOW_API_KEY="your_siliconflow_api_key"
export SILICONFLOW_API_BASE="https://api.siliconflow.cn/v1"
# 运行批量处理
python use_api.py --jsonl_file your_data.jsonl --output_dir your_output --max_workers 8
GPU需求与性能
MOSS-TTSD设计高效,VRAM需求较低。生成600秒音频时,模型使用不到7GB VRAM。VRAM需求与音频长度的关系可以用以下公式估算:
其中,是音频长度(秒),是VRAM成本(GB)。
播客生成工具:Podever
MOSS-TTSD还提供了一个名为Podever的播客生成管道,可以自动将PDF、URL或长文本文件转换为高质量播客。
使用Podever生成播客:
# 处理网页文章
python podcast_generate.py "https://www.open-moss.com/cn/moss-ttsd/"
# 处理PDF文件
python podcast_generate.py "examples/Attention Is All You Need.pdf"
# 处理文本文件
python podcast_generate.py "examples/example.txt"
# 指定输出目录
python podcast_generate.py "your_input" -o "your_output"
# 生成英文播客
python podcast_generate.py "your_input" -l en
MOSS-TTSD的细调(Fine-tuning)
MOSS-TTSD提供了细调功能,允许用户使用自己的数据集对模型进行微调。
数据准备
首先,需要按照JSONL格式准备训练数据。MOSS-TTSD支持两种JSONL格式:
格式1:单个音频文件与完整转录
{
"file_path": "/path/to/audio.wav",
"full_transcript": "[S1]Speaker content[S2]Speaker content..."
}
格式2:分开的参考和主要音频文件
{
"reference_audio": "/path/to/reference.wav",
"reference_text": "[S1]Reference content for voice cloning[S2]Reference content for voice cloning",
"audio": "/path/to/main.wav",
"text": "[S1]Speaker content[S2]Speaker content..."
}
数据预处理
使用数据预处理脚本:
python finetune/data_preprocess.py --jsonl <path_to_jsonl> --model_path <path_to_model> --output_dir <output_directory> --data_name <data_name> [--use_normalize]
模型细调
细调可以使用全模型微调或LoRA(低秩适应)微调:
全模型细调:
python finetune/finetune.py --model_path <path_to_model> --data_dir <path_to_processed_data> --output_dir <output_directory> --training_config <training_config_file>
LoRA细调:
python finetune/finetune.py --model_path <path_to_model> --data_dir <path_to_processed_data> --output_dir <output_directory> --training_config <training_config_file> --lora_config <lora_config_file> --lora
MOSS-TTSD的应用场景
1. AI播客制作
MOSS-TTSD最直接的应用是AI播客制作。通过Podever工具,你可以将任何文本内容快速转换为高质量的播客,大大降低了播客制作的门槛。
2. 语音助手对话训练
MOSS-TTSD可以用于生成高质量的对话训练数据,帮助训练更自然的语音助手。
3. 语言学习工具
MOSS-TTSD可以生成中英文对话,为语言学习者提供真实的对话练习场景。
4. 辅助技术
对于有语言障碍的人群,MOSS-TTSD可以生成自然的语音,帮助他们更好地与他人交流。
MOSS-TTSD的限制与未来展望
目前,MOSS-TTSD仍存在一些不稳定性,如说话人切换错误和音色克隆偏差。开发团队表示将在后续版本中进一步优化模型的稳定性。
常见问题解答(FAQ)
Q: MOSS-TTSD支持哪些语言?
A: MOSS-TTSD支持中英文双语对话生成,可以在同一对话中混合使用中英文,也可以完全使用中文或英文生成对话。
Q: MOSS-TTSD需要多少GPU内存?
A: MOSS-TTSD设计高效,VRAM需求较低。生成600秒音频时,模型使用不到7GB VRAM。VRAM需求与音频长度的关系可以用公式估算:y = 0.00172x + 5.8832(x为音频长度,y为VRAM成本)。
Q: MOSS-TTSD可以用于商业用途吗?
A: 是的,MOSS-TTSD完全开源,遵循Apache 2.0许可,支持免费商业使用。
Q: 如何使用MOSS-TTSD进行语音克隆?
A: MOSS-TTSD支持两种语音克隆方式:分开的说话人音频参考和共享音频参考。你需要提供参考语音文件和对应的参考文本,MOSS-TTSD就能准确模仿说话人声音。
Q: MOSS-TTSD可以生成多长的语音?
A: MOSS-TTSD经过优化,可以生成较长的连续语音。通过低比特率编解码器和训练框架优化,MOSS-TTSD已针对长语音生成进行了训练。
Q: MOSS-TTSD的v0.5版本有什么改进?
A: MOSS-TTSD v0.5版本在音色切换准确性、语音克隆能力和模型稳定性方面都有显著提升。建议用户默认使用v0.5模型。
如何开始使用MOSS-TTSD
-
安装环境:按照上述步骤安装MOSS-TTSD所需的环境和依赖。 -
下载模型:MOSS-TTSD模型可在Hugging Face获取。 -
准备输入数据:按照JSONL格式准备对话脚本。 -
运行推理:使用提供的脚本进行语音生成。 -
尝试播客生成:使用Podever工具将文本快速转换为播客。
结语
MOSS-TTSD代表了对话式语音合成技术的最新进展,它不仅提供了高质量的语音生成能力,还降低了AI播客制作的门槛。通过开源和商业可用的策略,MOSS-TTSD为开发者和内容创作者提供了强大的工具,使他们能够专注于内容创作,而无需担心语音合成的技术细节。
随着语音合成技术的不断发展,MOSS-TTSD有望在AI播客、语音助手训练、语言学习等多个领域发挥更大的作用。对于想要尝试AI语音合成的开发者和内容创作者来说,MOSS-TTSD是一个值得尝试的工具。
如需了解更多关于MOSS-TTSD的信息,可以访问中文博客或英文博客,查看详细的教程和示例。