如果你打算制作视频,但又觉得在镜头前有些紧张,那么你将迎来好消息。今年,各种文本转语音(TTS)工具如雨后春笋般涌现,只需准备好文字内容,TTS 就能自动转换成各种语音。
开源的 TTS 项目,它能够快速复制声音,效果令人印象深刻,能够满足用户的个性化需求。它就是:Fish Speech。
Github 地址:https://github.com/fishaudio/fish-speech
Fish Speech 是一款高度可定制的文本转语音(TTS)解决方案,架构设计如下图所示,分为训练阶段一和二,以及在线推理阶段。它能够根据用户的具体需求,提供灵活多变的声音输出。该工具特别采用了 Flash-Attn 算法,这一算法在处理大规模数据集时表现出色,以其卓越的效率、精确度和稳定性而闻名,从而显著提升了 TTS 技术的整体性能。
Fish Speech 的另一个亮点是其无需复杂的训练过程,用户只需上传一段原始语音样本,便能迅速生成与之相似的语音。此外,该工具对显存的要求相对较低,只需 4GB 的内存即可运行,且推理速度非常快,这大大提升了用户的使用体验。
自发布以来,Fish Speech 凭借其出色的效果和易于上手的特点,迅速获得了广泛的关注和好评。
它具备的特性如下所示:
- 文本至语音的即时转换:迅速将文字转换为自然流畅的语音输出。
- 多语种覆盖:支持中文、英文和日文等多种语言,轻松跨越语言障碍。
- 个性化语音克隆:借助深度学习技术,轻松克隆个性化语音。
- 低资源占用:仅需 4GB 显存,降低硬件需求门槛。
- 快速处理:优化推理流程,减少等待时间,提升处理效率。
- 丰富的语音模型选择:提供多种先进语音模型,满足不同应用需求。
- 易于使用:简化安装和配置过程,用户可轻松上手。
- 精细调校:LoRA 技术支持对模型进行细致调整。
- 性能优化:采用先进技术,确保高效稳定的语音转换能力。
部署
第一、资源要求
- GPU 内存
- 4GB (用于推理),8GB (用于微调)
- 支持操作系统
- Linux、Windows
window建议考虑 WSL2 或 docker 来运行代码库。如果是想要不使用Linux环境来安装的话,可以参考文档进行操作,也不是很复杂。
第二、Linux 系统部署参考如下
# 创建一个 python 3.10 虚拟环境, 你也可以用 virtualenvconda create -n fish-speech python=3.10conda activate fish-speech # 安装 pytorchpip3 install torch torchvision torchaudio # 安装 fish-speechpip3 install -e . # (Ubuntu / Debian 用户) 安装 soxapt install libsox-dev
第三、完成部署启动后 Web 界面效果如下
Fish Speech 推理过程可以分为几个关键步骤:
1. 语音编码:首先,输入一段大约10秒的语音,使用 VQGAN(VQ-VAE-GAN)对其进行编码。
2. 语义 token 与文本结合:将编码后的语义 token 与相应的文本输入给大模型,作为训练的例子。
3. 生成新的语义 token:给定一段新的文本,让大模型生成对应的语义 token。
4. 语音解码:将生成的语义 token 输入 VQGAN 进行解码,生成对应的语音输出。
目前,推理支持三种不同的方式:命令行、HTTP API 和 Web UI。
接下来,我将介绍 HTTP API 和 Web UI的使用方式。
第一、HTTP API 方式
要使用 HTTP API,首先需要启动 AP I服务。用户可以通过发送特定的 HTTP请求来触发推理过程。比如:可以发送一个 POST 请求,包含语音编码后的数据和待生成的文本,然后 API 会返回相应的语音输出。这种方式适合自动化处理,比如:在服务器端集成或通过编程调用。
步骤一:启动服务
python -m tools.api \\ --listen 0.0.0.0:8080 \\ --llama-checkpoint-path "checkpoints/fish-speech-1.2" \\ --decoder-checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" \\ --decoder-config-name firefly_gan_vq
步骤二:在 http://127.0.0.1:8080/ 中查看并测试 API,请求示例代码如下:
python -m tools.post_api \\ --text "要输入的文本" \\ --reference_audio "参考音频路径" \\ --reference_text "参考音频的文本内容" \\ --streaming True
第二、Web UI 方式
Web UI 提供了用户友好的界面,让用户可以通过浏览器直接与系统交互。用户可以在界面上输入文本,选择大模型,上传语音样本,并触发推理。Web UI还可能包括一些高级功能,比如:大模型选择、参数调整等。这种方式适合那些不熟悉编程但希望快速体验服务的用户。
启动 Web UI 步骤如下:
python -m tools.webui \\ --llama-checkpoint-path "checkpoints/fish-speech-1.2" \\ --decoder-checkpoint-path "checkpoints/fish-speech-1.2/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" \\ --decoder-config-name firefly_gan_vq
总的来说,HTTP API 和 Web UI 都提供了方便的方式来使用语音转换服务,无论是在自动化还是用户交互方面。
Fish audio 提供了一个试用网站,用户可以直接访问并开始使用。该网站还包含了众多用户自行制作并上传的个性化声音克隆样本,使用户能够轻松体验和探索不同的声音效果。更重要的是,该网站无需进行复杂的环境搭建,用户可以直接访问并开始尝试。以下是该网站的地址:https://fish.audio/zh-CN/
。