开源语音新王牌!MOSS-TTSD震撼发布:百万小时训练、笑声可控,适合长语音生成!

传统TTS单句生成强,但对话韵律差、长音频拼接生硬。

MOSS-TTSD 是一个开源的双语语音对话合成模型,它将对话脚本转换为自然、富有表现力的对话语音,具备长语音生成能力,韵律表现力极佳。

picture.image

基于Qwen3-1.7B-base,采用离散化语音序列建模,训练数据包含约100万小时单人语音和40万小时对话语音。

与专注于单个语句的传统文本到语音系统不同,MOSS-TTSD专门用于创建具有适当韵律、无缝话轮转换和说话人身份保留的多说话人对话。这使得它在播客制作、有声读物和教育材料方面尤为有价值。

MOSS-TTSD旨在接收带有说话人标签的对话脚本,并将其转换为逼真的语音对话。

picture.image

该模型支持中文和英文两种语言,并能处理长篇大论的语音生成,非常适合从文本创建完整的播客剧集。

主要特点

MOSS-TTSD具备多项强大功能,使其有别于标准TTS系统:

  • 富有表现力的对话语音 :生成类似人类的对话,具有自然的话轮转换和情感表达
  • 双说话人语音克隆 :可以从短音频样本中采用两个不同说话人的声音
  • 双语支持 :无缝处理中文和英文文本
  • 长篇内容生成 :优化生成长篇对话内容

工作原理

MOSS-TTSD通过一个处理对话文本、编码说话人语音特征(如果提供)并生成自然对话语音的流程运作:

picture.image

系统使用基于Qwen3的指令调优大型语言模型生成音频标记,并结合神经音频编码器(XY_Tokenizer)进行高质量音频合成。

快速入手

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模型权重:


 
 
 
 
   
# 创建tokenizer权重目录  
mkdir -p XY\_Tokenizer/weights  
   
# 从Hugging Face下载tokenizer模型  
huggingface-cli download fnlp/XY\_Tokenizer\_TTSD\_V0 xy\_tokenizer.ckpt --local-dir ./XY\_Tokenizer/weights/

使用方法

让我们从一个简单的文本输入生成对话。MOSS-TTSD接受带有说话者标签 [S1] 和 [S2] 的对话文本,以指示哪位角色在说话。

方法1:使用命令行

创建一个名为 my\_dialogue.jsonl 的文件,内容如下:


 
 
 
 
   
{"text": "[S1]嗨!你好吗?[S2]我很好,谢谢你的关心!你呢?[S1]我也很好。今天的天气真美。"}

然后运行推理脚本:


 
 
 
 
   
python inference.py --jsonl my\_dialogue.jsonl --output\_dir my\_outputs --use\_normalize

生成的音频将保存在 my\_outputs 目录中。

方法2:使用Web UI

为了获得更互动的体验,可以使用Gradio网页界面:


 
 
 
 
   
python gradio\_demo.py

这将启动一个本地Web服务器,通常位于http://127.0.0.1:7860。在浏览器中打开此URL,可以:

  • • 输入对话文本
  • • 上传用于克隆的语音样本
  • • 直接在浏览器中生成和播放音频

语音克隆

MOSS-TTSD的一个强大功能是语音克隆。您可以通过提供参考音频样本,使生成的对话使用特定的声音。

基本语音克隆
创建一个带有语音参考的JSONL文件:


 
 
 
 
   
{  
  "text": "[S1]你好,我是第一位说话者。[S2]我是第二位说话者。很高兴见到你![S1]这是我的荣幸。",  
  "prompt\_audio\_speaker1": "path/to/speaker1\_sample.wav",  
  "prompt\_text\_speaker1": "与speaker1音频样本匹配的文本",  
  "prompt\_audio\_speaker2": "path/to/speaker2\_sample.wav",  
  "prompt\_text\_speaker2": "与speaker2音频样本匹配的文本"  
}

运行推理:


 
 
 
 
   
python inference.py --jsonl my\_voice\_cloning.jsonl --output\_dir my\_outputs --use\_normalize

高级输入选项

MOSS-TTSD支持三种输入格式:

    1. 纯文本输入(默认声音,无克隆):

 
 
 
 
   
{"text": "[S1]说话者1文本[S2]说话者2文本[S1]说话者1的更多文本"}
    1. 单独的说话者参考(推荐):

 
 
 
 
   
{  
  "text": "[S1]说话者1文本[S2]说话者2文本",  
  "prompt\_audio\_speaker1": "speaker1.wav",  
  "prompt\_text\_speaker1": "说话者1的参考文本",  
  "prompt\_audio\_speaker2": "speaker2.wav",  
  "prompt\_text\_speaker2": "说话者2的参考文本"  
}
    1. 共享音频参考:

 
 
 
 
   
{  
  "text": "[S1]说话者1文本[S2]说话者2文本",  
  "prompt\_audio": "combined\_speakers.wav",  
  "prompt\_text": "[S1]说话者1参考[S2]说话者2参考"  
}

额外的命令行选项,在运行推理时,可以使用以下选项自定义行为:

picture.image

写在最后

MOSS-TTSD以其基于Qwen3-1.7B的对话语音合成能力,为AI播客、有声书和教育内容创作提供了强大支持。支持中英双语、960秒长语音生成和零样本音色克隆。

安装部署也非常方便,也许你会发现,它不仅是TTS模型,对于语音自由任务也是相得益彰。

GitHub 项目地址:https://github.com/OpenMOSS/MOSS-TTSD

picture.image

如果本文对您有帮助,也请帮忙点个 赞👍 + 在看 哈!❤️

在看你就赞赞我!

picture.image

0
0
0
0
评论
未登录
暂无评论