海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

FireRedTTS-2 是一个专为生成多说话人长对话而设计的文本转语音(TTS)系统。它采用流式技术,能够实现低延迟的语音输出,使得对话生成过程既快速又自然。该系统的核心优势在于能够处理长达数分钟的对话内容,并支持多个虚拟说话人之间的流畅切换,同时保持上下文的韵律和情感连贯性。FireRedTTS-2 支持包括中文、英文、日文在内的多种语言,并且具备零样本(zero-shot)声音克隆功能,用户可以轻松克隆任何语言的音色,甚至在不同语言间进行切换。此外,系统还提供随机音色生成功能,可用于生成大量多样的语音数据。为了方便用户使用,该项目提供了一个简单的网页界面(Web UI),让不熟悉编程的用户也能快速上手。

 

功能列表

  • 长对话生成: 支持长达3分钟、包含4个不同说话人的对话生成,并可通过扩展训练数据来支持更长的对话和更多的说话人。
  • 多语言支持: 支持英语、中文、日语、韩语、法语、德语和俄语的语音合成。
  • 零样本声音克隆: 无需训练即可克隆指定的声音,支持跨语言和混合语言场景的声音克隆。
  • 超低延迟: 基于新的12.5Hz流式语音分词器和双Transformer架构,实现了句间流式生成,首次响应延迟低至140毫秒。
  • 高稳定性: 在单人独白和多人对话测试中,均表现出高声音相似度和低错误率。
  • 随机音色生成: 可用于快速生成多样化的语音数据,适用于语音识别模型(ASR)或语音交互系统的训练。
  • 提供网页用户界面: 内置一个易于使用的网页界面,支持声音克隆和随机音色两种模式,简化了操作流程。

使用帮助

FireRedTTS-2 的安装和使用流程相对直接,主要分为环境配置、模型下载和执行生成任务三个步骤。以下是详细的操作指南。

1. 环境安装

首先需要克隆项目的代码库,并创建一个独立的 Conda 环境来管理项目所需的依赖,以避免与系统中其他 Python 项目产生冲突。

第一步:克隆代码库
打开终端(Terminal),进入你希望存放项目的文件夹,然后执行以下 git 命令:

git clone https://github.com/FireRedTeam/FireRedTTS2.git
cd FireRedTTS2

第二步:创建并激活 Conda 环境
推荐使用 Python 3.11 版本。执行以下命令创建新的 Conda 环境:

conda create --name fireredtts2 python=3.11
conda activate fireredtts2

第三步:安装 PyTorch
项目依赖特定版本的 PyTorch,并且需要与你的 CUDA 版本匹配。如果你的设备支持 CUDA 12.6,可以直接使用以下命令安装:

pip install torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu126

如果你的 CUDA 版本不同,请前往 PyTorch 官网查找对应的安装命令。

第四步:安装其他依赖项
最后,安装项目定义的其他 Python 库:

pip install -e .
pip install -r requirements.txt```
### 2. 模型下载
FireRedTTS-2 的预训练模型存放在 Hugging Face 上,需要使用 `git lfs` 工具来下载。
首先确保你已经安装了 `git lfs`,然后执行以下命令:
```bash
git lfs install
git clone https://huggingface.co/FireRedTeam/FireRedTTS2 pretrained_models/FireRedTTS2

这个命令会将模型文件下载到项目根目录下的 pretrained_models/FireRedTTS2 文件夹内。

3. 功能操作

FireRedTTS-2 提供两种主要的使用方式:通过网页用户界面(Web UI)或通过编写 Python 脚本。

方式一:使用网页用户界面 (Web UI)

这是最简单直观的方式,适合快速体验和生成对话。

在终端中,确保你处于 fireredtts2 Conda 环境下,并位于项目根目录,然后执行以下命令:

python gradio_demo.py --pretrained-dir "./pretrained_models/FireRedTTS2"

程序成功运行后,终端会显示一个本地网址(通常是 http://127.0.0.1:7860)。在浏览器中打开这个网址,即可看到操作界面。在界面中,你可以输入不同说话人的文本,上传用于声音克隆的音频样本,或者选择随机生成声音,然后点击生成按钮即可得到合成的对话音频。

方式二:使用 Python 脚本

这种方式更加灵活,适合集成到其他项目中。

1. 生成多人对话
以下是一个生成两人对话的示例代码。你需要准备好每个说话人的文本,以及用于声音克隆的音频文件和对应的文本。

import torch
import torchaudio
from fireredtts2.fireredtts2 import FireRedTTS2
# 设置运行设备
device = "cuda"
# 初始化模型
fireredtts2 = FireRedTTS2(
pretrained_dir="./pretrained_models/FireRedTTS2",
gen_type="dialogue",
device=device,
)
# 定义对话文本列表,[S1] 和 [S2] 代表不同的说话人
text_list = [
"[S1]那可能说对对,没有去过美国来说去去看到美国线下。巴斯曼也好,沃尔玛也好,他们线下不管说,因为深圳出去的还是电子周边的会表达,会发现哇对这个价格真的是很高呀。",
"[S2]对,没错,我每次都觉得不不可思议。我什么人会买三五十美金的手机壳?但是其实在在那个target啊,就塔吉特这种超级市场,大家都是这样的,定价也很多人买。",
"[S1]对对,那这样我们再去看说亚马逊上面卖卖卖手机壳也好啊,贴膜也好,还包括说车窗也好,各种线材也好,大概就是七块九九或者说啊八块九九,这个价格才是卖的最多的啊。",
"[S2]那比如说呃除了这个可能去到海外这个调查,然后这个调研考察那肯定是最直接的了。那平时我知道你是刚才建立了一个这个叫做呃rean的这样的一个一个播客,它是一个英文的。",
]
# 提供用于克隆声音的音频文件路径
prompt_wav_list = [
"examples/chat_prompt/zh/S1.flac",
"examples/chat_prompt/zh/S2.flac",
]
# 提供克隆音频对应的文本
prompt_text_list = [
"[S1]啊,可能说更适合美国市场应该是什么样子。那这这个可能说当然如果说有有机会能亲身的去考察去了解一下,那当然是有更好的帮助。",
"[S2]比如具体一点的,他觉得最大的一个跟他预想的不一样的是在什么地方。",
]
# 生成音频
all_audio = fireredtts2.generate_dialogue(
text_list=text_list,
prompt_wav_list=prompt_wav_list,
prompt_text_list=prompt_text_list,
temperature=0.9,
topk=30,
)
# 保存生成的音频文件
torchaudio.save("chat_clone.wav", all_audio, 24000)

2. 生成单人独白
你也可以用它来生成单句或单段的独白,并支持随机音色或声音克隆。

import torch
import torchaudio
from fireredtts2.fireredtts2 import FireRedTTS2
device = "cuda"
# 待合成的文本列表(支持多语言)
lines = [
"Hello everyone, welcome to our newly launched FireRedTTS2.",
"如果你厌倦了千篇一律的AI音色,那么本项目将会成为你绝佳的工具。",
"ランダムな話者と言語を選択して合成できます",
]
# 初始化模型
fireredtts2 = FireRedTTS2(
pretrained_dir="./pretrained_models/FireRedTTS2",
gen_type="monologue",
device=device,
)
# 使用随机音色生成
for i, text in enumerate(lines):
audio = fireredtts2.generate_monologue(text=text.strip())
torchaudio.save(f"random_speaker_{i}.wav", audio.cpu(), 24000)
# 使用声音克隆生成(需要提供 prompt_wav 和 prompt_text)
# for i, text in enumerate(lines):
#     audio = fireredtts2.generate_monologue(
#         text=text.strip(),
#         prompt_wav="<path_to_your_wav>",
#         prompt_text="<text_of_your_wav>",
#     )
#     torchaudio.save(f"cloned_voice_{i}.wav", audio.cpu(), 24000)

应用场景

  1. 播客和有声书制作
    可以快速生成包含多个角色的对话式播客节目或有声书,通过声音克隆功能,还可以模仿特定人物的声音进行创作。
  2. 智能客服和虚拟助手
    为聊天机器人或虚拟助手赋予更加自然和人性化的声音,通过低延迟的流式生成,提供实时的语音交互体验。
  3. 游戏和动画配音
    在游戏开发或动画制作中,快速为大量角色生成配音,或制作临时的占位音轨,以方便开发者和设计师进行调试。
  4. 语音数据增强
    利用随机音色生成功能,可以大规模地制造多样化的语音数据,用于训练和改进自动语音识别(ASR)模型。

QA

  1. FireRedTTS-2 支持哪些语言?
    目前支持英语、中文、日语、韩语、法语、德语和俄语。
  2. 我可以使用自己的声音来生成音频吗?
    可以。该系统支持零样本声音克隆,你只需要提供一小段你的声音样本(音频文件)以及对应的文本,就可以克隆你的音色来生成新的语音。
  3. 生成语音的延迟高吗?
    不高。FireRedTTS-2 专为低延迟场景设计,首次响应延迟可以低至140毫秒,非常适合需要实时语音反馈的应用。
  4. 该项目是否可以免费商用?
    该项目基于 Apache-2.0 许可证,但官方特别声明,声音克隆功能仅用于学术研究目的,严禁用于任何非法活动。任何滥用该模型的行为,开发者不承担任何责任。
相关文件下载地址
该资源需登录后下载,去登录
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

回顶部

zh_CN简体中文