目录
政安晨的个人主页:政安晨****
欢迎 👍点赞✍评论⭐收藏
希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!
本文目标:基于N卡的Linux系统(Ubuntu)部署并应用FishSpeech框架,实现短样本语音克隆
简介
Fish Speech 是一个由 fishaudio 开发的全新文本转语音(Text-to-Speech,TTS)解决方案。
特点:
- 低显存占用:能在低至 4GB 的 GPU 显存下运行,这使得个人开发者和小团队无需昂贵的高性能 GPU 即可进行高质量的语音合成。
- 高质量语音合成:尽管对硬件要求较低,但能生成自然流畅、情感丰富的语音,可与 GPT-SoVITS 等顶级模型相媲美。
- 开源与可定制:完全开源,开发者不仅可以免费使用,还能根据自身需求进行修改和扩展,增加了模型的灵活性和适用性。
- 快速部署:轻量化设计使其能够快速部署在各种平台上,包括桌面电脑和嵌入式设备等,实现即时的语音合成服务。
在技术原理方面,Fish Speech 基于多个先进的机器学习和深度学习概念:
- 经过了长达 15 万小时的数据训练,从而能够学习到语音的细微差别和复杂模式。
- 采用了 Transformer 架构,其自注意力机制使其能够更好地理解和生成长序列的语音数据。
- 同时学习多个相关任务,如音素识别、韵律预测和声学特征生成等,提高了模型的泛化能力。
- 使用先进的神经网络声码器,能够将声学特征转换为高质量的波形,进而产生自然流畅的语音。
- 通过多语言嵌入技术,能够在单一模型中支持多种语言,实现跨语言的语音合成。
其主要功能包括:
- 多语言支持:熟练掌握中文、日语和英语等多种语言,提供多语言语音合成能力。
- 情感表达:能够生成带有不同情感色彩,如快乐、悲伤、愤怒等的语音。
- 韵律控制:可以精细调节语速、音调和重音,实现更自然的语音表现。
- 声音克隆:通过少量样本学习特定说话者的声音特征,实现个性化语音合成。
- 实时合成:支持低延迟的实时语音生成,适用于需要即时反馈的应用场景。
- 文本归一化:自动处理数字、缩写和特殊符号等,确保正确的语音输出。
- API 集成:提供易于使用的 API,方便开发者将其集成到各种应用中。
部署
下载项目
git clone git@github.com:fishaudio/fish-speech.git
创建环境
# 创建一个 python 3.10 虚拟环境
conda create -n fish-speech python=3.10
conda activate fish-speech
# 安装 pytorch
pip3 install torch torchvision torchaudio
# 安装 fish-speech
pip3 install -e .
# (Ubuntu / Debian 用户) 安装 sox
apt install libsox-dev
下载模型
在这个过程中,可能会用到huggingface的CLI功能:
Hugging Face的CLI(命令行界面)是一个用于自然语言处理(NLP)任务的命令行工具。它提供了一组工具和命令,可以帮助用户快速执行各种NLP任务,如文本分类、命名实体识别、问答、翻译等。
CLI的功能包括:
- 模型下载和管理:用户可以使用CLI下载和管理Hugging Face提供的各种预训练模型,包括BERT、GPT等。
- Fine-tuning:用户可以使用CLI对预训练模型进行微调,以适应特定的任务需求。
- 数据处理:CLI提供了一系列命令,可以帮助用户处理和准备数据,如数据拆分、数据转换、数据预处理等。
- 模型评估和推理:CLI允许用户对模型进行评估和推理,以测试模型的性能和效果。
- 任务执行:CLI提供了一些预定义的任务命令,用户可以直接使用这些命令来执行常见的NLP任务,如文本分类、命名实体识别等。
通过命令行界面,用户可以通过简单的命令和选项来执行各种NLP任务,无需编写复杂的代码。这使得使用Hugging Face的模型和工具变得更加便捷和高效。
在虚拟环境中安装Hugging Face的CLI,使用命令:
pip install -U "huggingface_hub[cli]"
在CLI中,查看帮助:
huggingface-cli --help
启动服务
在项目目录中执行如下指令就可以启动服务:
python tools/webui.py
推理过程如下:
政安晨实测之后,认为模型还有改进空间,这里我就不赘述了,感兴趣的小伙伴可以尝试着运行一下,毕竟是开源的,了解参考都很好。
感谢开源团队的辛勤付出。