这款文本转语音(TTS)

简介: 【8月更文挑战第6天】Fish Speech是一款先进的开源文本转语音(TTS)工具,它能迅速将文字转换为流畅自然的语音,尤其适合镜头前感到紧张的人制作视频内容。Fish Speech支持中文、英文及日文等多种语言,可通过简单的原始语音样本快速克隆个性化声音。其架构设计高效,仅需4GB显存即可运行,采用Flash-Attn算法实现高性能语音合成。Fish Speech具备易用性,提供Web界面操作,并可在Linux与Windows系统上部署。用户可通过官网([https://fish.audio/zh-CN/](https://fish.audio/zh-CN/))直接体验其强大功能。

如果你打算制作视频,但又觉得在镜头前有些紧张,那么你将迎来好消息。今年,各种文本转语音(TTS)工具如雨后春笋般涌现,只需准备好文字内容,TTS 就能自动转换成各种语音。

开源的 TTS 项目,它能够快速复制声音,效果令人印象深刻,能够满足用户的个性化需求。它就是:Fish Speech。

Github 地址https://github.com/fishaudio/fish-speech

Fish Speech 是一款高度可定制的文本转语音(TTS)解决方案,架构设计如下图所示,分为训练阶段一和二,以及在线推理阶段。它能够根据用户的具体需求,提供灵活多变的声音输出。该工具特别采用了 Flash-Attn 算法,这一算法在处理大规模数据集时表现出色,以其卓越的效率、精确度和稳定性而闻名,从而显著提升了 TTS 技术的整体性能。

image.png

Fish Speech 的另一个亮点是其无需复杂的训练过程,用户只需上传一段原始语音样本,便能迅速生成与之相似的语音。此外,该工具对显存的要求相对较低,只需 4GB 的内存即可运行,且推理速度非常快,这大大提升了用户的使用体验。

自发布以来,Fish Speech 凭借其出色的效果和易于上手的特点,迅速获得了广泛的关注和好评。

image.png

它具备的特性如下所示:

  1. 文本至语音的即时转换:迅速将文字转换为自然流畅的语音输出。

  2. 多语种覆盖:支持中文、英文和日文等多种语言,轻松跨越语言障碍。

  3. 个性化语音克隆:借助深度学习技术,轻松克隆个性化语音。

  4. 低资源占用:仅需 4GB 显存,降低硬件需求门槛。

  5. 快速处理:优化推理流程,减少等待时间,提升处理效率。

  6. 丰富的语音模型选择:提供多种先进语音模型,满足不同应用需求。

  7. 易于使用:简化安装和配置过程,用户可轻松上手。

  8. 精细调校:LoRA 技术支持对模型进行细致调整。

  9. 性能优化:采用先进技术,确保高效稳定的语音转换能力。

部署

第一、资源要求

  • 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 界面效果如下

image.png


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/









目录
相关文章
|
存储 移动开发 算法
语音识别(ASR)--语音转文字
音识别(Automatic Speech Recognition) 是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都有非常密切的关系。
2090 0
|
Web App开发 XML 人工智能
文本转语音如此简单
这两天在研究文本转音的功能,有时候担心自己的普通话不标准,比方说要录制一个视频,即兴讲可能会卡壳,这个时候我们就可以先准备好文本,然后再利用人工智能来生成音频,下面就分享下我的研究成果吧!
1480 0
|
2月前
|
API Docker 容器
SenseVoice实现语音转文字
这篇文章介绍了如何使用SenseVoice实现语音转文字的功能,包括通过Docker部署服务、使用网页界面或API进行语音文件的转换,并提供了详细的部署与使用步骤。
414 1
SenseVoice实现语音转文字
|
7月前
|
人工智能 机器人 Android开发
ChatGPT新增朗读功能,可以语音播报生成结果
【2月更文挑战第15天】ChatGPT新增朗读功能,可以语音播报生成结果
196 1
ChatGPT新增朗读功能,可以语音播报生成结果
|
机器人 语音技术
神器 | 文本转语音,直接可以合成多人多风格音频了!
为了适应更多的音频使用场景和需求,近期我们将文本转语音服务进行了升级,全新的功能将成为你配音工具的不二之选。
468 1
|
API 语音技术 Python
轻声低语,藏在光芒下的语音转文字模型Whisper
轻声低语,藏在光芒下的语音转文字模型Whisper
1301 0
|
Linux 语音技术 开发工具
巧用讯飞TTS进行文本合成语音(LINUX操作系统)
如果执行demo程序tts_offline_sample失败,那么请看下是否将libmsc.so有没有加载到ldconfig中。如果没有,则将libmsc.so放到/usr/lib64下,然后用root
巧用讯飞TTS进行文本合成语音(LINUX操作系统)
|
语音技术
TTS语音播报
TTS语音播报
360 0
TTS语音播报
|
机器学习/深度学习 API 语音技术
基于PaddleSpeech搭建个人语音听写服务
之基于PaddleSpeech搭建个人语音听写服务,顾名思义,是通过PaddleSpeech来搭建语音听写服务的,主要思路如下。 1.录音长度切分 2.录音听写 3.录音文本加标点
543 0
|
API 语音技术 Python
Python语音转文字、音频切割、语音识别
不知道你有没有录过自我介绍的视频,尤其是那种加上PPT播放的长时间视频 可能因为说错一句话就得重来,又或者因为思考而暂停时间太久又得重来,以至于弄了两个小时才做好五分钟的视频
2217 0
Python语音转文字、音频切割、语音识别