FishSpeech 实测,免费语音克隆神器,5分钟部署实战,让川普给你来段中文绕口令?

news2024/11/13 22:20:47

拍短视频,开始的时候是真人语音,之后是电脑配音,今年年初剪映上线了克隆语音,很多人都用起来了。

想要克隆别人的语音怎么办?

之前需要用 GPT-SoVITS 训练声音模型,操作复杂,对电脑配置要求较高,关键是生成时间非常长,这对小白来说还是很有挑战的。

不过,随着开源社区的努力,语音克隆已经零门槛了,一个人人有嘴替的时代已经到来。

上一篇:cosyvoice 给大家介绍了一款语音合成/克隆工具,今天再分享一款同样火爆的语音合成工具 - Fish Speech,使用起来更为方便。

有了这款语音克隆神器,再配合上其他 AI 工具,帮你哗哗涨粉,绝绝子。

本文分享,带大家在线体验 Fish Speech,并在本地部署起来,方便随时调用。

老规矩,先来简单介绍下~

1. Fish Speech 简介

且看官方是怎么宣传的:

  • 开源低显存、能说绕口令、支持中英日3语种!
  • 语音处理接近人类水平,效果媲美GPT-SoVITS

真的假的?我们一起探究一番!

2. 在线体验

体验地址:https://fish.audio/zh-CN/

虽是个开源项目,但是官方提供了在线网站,随手就使用,每天免费送你 50 配额,可以生成 50 条音频。

2.1 海量音色样板

官方提供了上百款音色,供你选择,其中爆火的丁真已经被配音了18w+:

此外,创作者也可以上传自己训好的音色,比如川普、邓紫棋……

搜索即用,无需自己训练。

2.2 语音合成初体验

既然川建国的粉丝这么多,给川普安排上一段绕口令怎么样?

给大家展示两段,看看效果如何?

合成文本1:

扁担长,板凳宽,扁担没有板凳宽,板凳没有扁担长。
扁担绑在板凳上,板凳不让扁担绑在板凳上。

语音合成效果:体验地址

合成文本2:

细蝉吸细竹枝汁,
细竹枝汁细蝉吸。
细蝉吸汁竹枝细,
细竹枝细汁蝉吸。

语音合成效果:体验地址

2.3 声音克隆

官网那么多音色模型,没你满意的?

来吧,自己训练一个:

注意:声音文件时长最短10秒,最长45秒,不出 2 分钟,你的声音模型就 Ready 了。

创建成功后,在 我的声音 中可以查看。

有一说一:Fish Speech 从情感、语速、语调、音色训练各方面都是OK的!速度极快!

但不要输入太长文本,否则会罢工的~

2.4 API 调用

官方给开发者也提供了 API 调用,新人注册有 10 元的免费体验额度:

当然,如果你有机器,完全可以自己本地部署一个,毕竟项目是开源的嘛!

下面,我们一起动手实操一番。

3. 本地部署

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

项目文档:https://speech.fish.audio/

这部分我们采用趋动云的 GPU 实例给大家做演示,申请一个 6G 显存的实例就够。

新人注册送 100 点算力,还没注册的小伙伴赶紧去薅羊毛,:趋动云注册

3.1 申请云实例

不了解项目创建流程的小伙伴可以参考这篇:CosyVoice 实测,阿里开源语音合成模型,3s极速语音克隆

新建一个项目,把我已经建好的模型镜像挂载进来。

模型

镜像

如果挂载了上面的模型镜像,可直接跳转到 3.4 本地测试

为了从0到1完成整个项目,3.23.3 分别带大家完成模型准备和环境准备。

3.2 模型准备(可选)

首先从 huggingface 国内镜像站下载模型到本地,记得删除其中的 .git 文件夹(占用上传空间)。

git clone https://hf-mirror.com/fishaudio/fish-speech-1.2-sft

回到趋动云控制台,点击模型,进行上传,选择 SFTP 传输方式。

上传代码:

put -r D:/data/projects/fish-speech-1.2-sft/ /upload

后面发现,这里目标路径最好带上模型名,也即/upload/fish-speech-1.2-sft,否则挂载进来时不带模型名。

实测上传速度在 10M/s 左右。

传输完成,关闭通道,刷新一下,右侧可以看到文件目录

点击下方确定,生成一个模型版本。至此,我们的模型就准备好了。

PS:模型已公开,大家在项目中加载下面的模型即可:

3.3 环境准备(可选)

下载项目并安装依赖项:

git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
pip install -e .

apt update
apt install libsox-dev

会安装根目录 pyproject.toml 中指定的所有依赖项,不过安装过程实在太痛苦了(太慢了)!

有没有其他解决方案?

官方提供了 docker 镜像,不过趋动云分配的云实例本身就是个 docker 容器,当然无法在容器中安装 fish-speech 的 docker 镜像。

怎么知道的?输入下方指令试试吧~

systemd-detect-virt -c

因此,这里提供两个方案:

方案一:
找一个支持conda的镜像,在 /gemini/code 目录下创建一个 conda 虚拟环境,这个环境会持久保存。

conda create --prefix /gemini/code/envs/fish python=3.10

这样,每次重启项目后,激活这个环境即可,无需重新安装依赖了。

conda activate /gemini/code/envs/fish

方案二:用 dockerfile 在平台上构建一个镜像,项目依赖这个镜像即可:

Dockerfile 中编写内容如下:

# Install system dependencies
RUN apt-get update && apt-get install -y git curl build-essential ffmpeg libsm6 libxext6 libjpeg-dev \
    zlib1g-dev aria2 zsh openssh-server sudo protobuf-compiler cmake libsox-dev && \
    apt-get clean && rm -rf /var/lib/apt/lists/*
# 克隆代码库
RUN git clone https://mirror.ghproxy.com/https://github.com/fishaudio/fish-speech.git
# 设置工作目录
WORKDIR fish-speech
# 安装项目依赖
RUN pip install --no-cache-dir -e .

如果镜像加载进来后遇到如下报错:

libtorch_cuda.so: undefined symbol: ncclCommRegister

这是 PyTorch 和 NCCL 版本与 CUDA 版本不兼容的问题,建议重新使用 conda 重新安装对应 CUDA 版本的 Pytorch,比如我这里用的是 CUDA 12.1 的镜像:

# 参考:https://pytorch.org/
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

PS:我已把所有环境依赖做好了镜像,大家在项目中加载下面的镜像即可。

3.4 本地测试

如果还没下载模型,请移步 3.1 完成模型准备。

我们这里直接使用挂载的模型文件:

mkdir checkpoints
ln -s /gemini/pretrain/ checkpoints/fish-speech-1.2-sft

模型准备好之后,推理分为几个部分:

  • 给定一段 ~10 秒的语音, 将它用 VQGAN 编码;
  • 将编码后的语义 token 和对应文本输入语言模型作为例子;
  • 给定一段新文本, 让模型生成对应的语义 token;
  • 将生成的语义 token 输入 VQGAN 解码, 生成对应的语音。

我们一步步来:

  1. 从语音生成 prompt,输入待克隆的音频文件,输出编码后的语义token,得到一个 fake.npy 文件:
python tools/vqgan/inference.py -i "gghy.wav" --checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth"
  1. 从文本生成语义 token:--prompt-text需要和音频文件中的内容保持一致,--prompt-tokens是刚生成的 fake.npy 文件,输出生成的语义 token,得到 codes_0.npy 文件
python tools/llama/generate.py \
    --text "要转换的文本" \
    --prompt-text "你的参考文本" \
    --prompt-tokens "fake.npy" \
    --checkpoint-path "checkpoints/fish-speech-1.2-sft" \
    --num-samples 1 \
    --compile
  1. 从语义 token 生成人声: 对 codes_0.npy 用 VQGAN 解码。
python tools/vqgan/inference.py -i "codes_0.npy" --checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth"

3.5 服务部署

3.5.1 服务端部署

项目中已经提供了部署代码,服务端一键启动代码如下:

python tools/api.py --listen 0.0.0.0:7860 --compile

3.5.2 客户端调用

客户端调用需要先安装 pyaudio:

sudo apt-get install portaudio19-dev
pip install pyaudio

然后调用tools/post_api.py,发起请求:

python tools/post_api.py --url 'http://127.0.0.1:7860/v1/invoke' --text "要输入的文本" --reference_audio gghy.wav --reference_text '随着 
大军缓缓前进,他忍不住琢磨起了回京之后会被派到什么艰苦的地方。顶缸。要知道皇帝一向就是这么干的,几乎没让他过过什么安生日子。'

其中 --url 修改为服务端的 IP 地址。更多参数设置可参考 tools/post_api.py

3.6 WebUI

项目中支持一键部署 webui:

python tools/webui.py

如果需要声音克隆,记得打开下方的 Enable Reference Audio 选项。

代码中,默认对于长文做了自动切分。Gradio 界面底部也可以看到 API 调用。

3.7 显存占用情况

给大家看下,显存占用情况:

模型推理,只占用 < 2G 显存,相比 CosyVoice 的 6G 显存,优势显著~

写在最后

还记得之前克隆语音,又是训练模型又是高配电脑,小白表示压力山大啊。

现在,Fish Speech 来了,零门槛,傻瓜式操作,简直是视频创作者的新宠啊。

本文带着大家先在官网上体验了一把,海量音色任你挑!

接着从准备模型到环境配置,再到服务部署,完成了 Fish Speech 的私有化部署~

良心之作 Fish Speech 只需不到 2G 显存就能运行,赶紧去试试吧!

关于开源 AI 大模型的文章,我打算做成一个专栏,目前已收录:

  • CogVideo 实测,智谱「清影」AI视频生成,全民免费,连 API 都开放了!
  • 全网刷屏的 LLaMa3.1,2分钟带你尝个鲜
  • SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper
  • EasyAnimate-v3 实测,阿里开源视频生成模型,5 分钟带你部署体验,支持高分辨率超长视频
  • 开源的语音合成项目-EdgeTTS,无需部署无需Key
  • 一文梳理ChatTTS的进阶用法,手把手带你实现个性化配音
  • FLUX.1 实测,堪比 Midjourney 的开源 AI 绘画模型,无需本地显卡,带你免费实战
  • CosyVoice 实测,阿里开源语音合成模型,3s极速语音克隆,5分钟部署实战

定期更新,感兴趣的小伙伴欢迎关注。

如果本文对你有帮助,欢迎点赞收藏备用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1994140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法设计】深入理解波兰表达式与逆波兰表达式

文章目录 介绍1. 波兰表达式&#xff08;Prefix Notation&#xff09;2. 逆波兰表达式&#xff08;Postfix Notation&#xff09;3. 比较与优劣4. 简单示例5. 实例演示6. 应用场景和案例7. 中缀表达式转后缀表达式8. 结论 更多相关内容可查看 应用场景&#xff1a;Excel自定义公…

Mozilla Firefox侧边栏和垂直标签在131 Nightly版本中开始试用

垂直选项卡和全新的侧边栏体验现已在Mozilla Firefox Nightly 131 中提供。这一更新备受社区期待和要求&#xff0c;我们期待看到它如何提高您的浏览效率和工作效率。如果您想体验一下这项正在进行中的工作&#xff0c;请这样操作&#xff1a; 更新到最新的Nightly版 转到设置…

LeetCode刷题笔记第49题:字母异位词分组

LeetCode刷题笔记第49题&#xff1a;字母异位词分组 题目&#xff1a; 想法&#xff1a; 遍历列表中的所有字符串&#xff0c;将字符串中字符进行排序并作为字典的键&#xff0c;并将原字符串做为值保存&#xff0c;最终输出字典的值就是最终的答案。 class Solution:def gr…

MySQL 日志表改造为分区表

文章目录 前言1. 分区表改造方法2. 操作步骤2.1 调整主键2.2 无锁变更2.3 回滚策略 3. 分区表维护3.1 创建分区3.2 删除分区3.3 分区表查询 后记 前言 业务有一张日志表&#xff0c;只需要保留 3 个月的数据&#xff0c;仅 3 月的数据就占用 80G 的存储空间&#xff0c;如果不…

二维数组指针,指针数组,指针函数

指针 操作 二维字符型数组 1、 首先理解二维数组指针 int a[3][4]; 第一步&#xff0c;确定基类型&#xff1a;上面的数组从本质上讲&#xff0c;是一维数组的数组&#xff0c;写成int[4] a[3]可以更好的理解&#xff0c;a[3]是一个一维数组&#xff0c;其数组…

【机器学习sklearn实战】岭回归、Lasso回归和弹性网络

一 sklean中模型详解 1.1 Ride regression 1.2 Lasso regression 1.3 ElasticNet 二 算法实战 2.1 导入包 import numpy as np import pandas as pd from sklearn import datasets from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.linear…

【开源分享】PHP在线客服系统网站源码 附搭建教程

在互联网时代&#xff0c;用户对于线上服务的便捷性和高效性要求越来越高。官网在线客服系统作为企业与用户之间实时沟通的工具&#xff0c;不仅能够提高用户满意度&#xff0c;还能够有效促进业务转化。然而&#xff0c;市面上的在线客服系统大多价格昂贵且功能单一&#xff0…

[论文翻译] LTAChecker:利用注意力时态网络基于 Dalvik 操作码序列的轻量级安卓恶意软件检测

LTAChecker: Lightweight Android Malware Detection Based on Dalvik Opcode Sequences using Attention Temporal Networks 摘要&#xff1a; Android 应用程序已成为黑客攻击的主要目标。安卓恶意软件检测是一项关键技术&#xff0c;对保障网络安全和阻止异常情况至关重要。…

1.redis7安装

安装&#xff1a; redis下载地址&#xff1a; Index of /releases/ 本次使用的版本为7.0.0. yum install gcc-c 下载上传到 /opt/redis 目录&#xff0c;tar -zxvf redis-7.0.0.tar.gz 解压缩 cd redis-7.0.0 执行make 执行make install. 默认会安装到 /usr/local/bi…

超融合一体机是什么意思?有什么好处

超融合一体机是什么意思&#xff1f;超融合一体机是一种集成了计算、存储和网络功能的一体化硬件设备。通过软件定义的方式&#xff0c;提供了高度集成、高可用性、高性能的数据中心解决方案。这种一体机将多个物理服务器、存储设备和网络设备整合在一个机箱内&#xff0c;通过…

轻空间成功完成陕西渭南砂石料场气膜仓项目

轻空间&#xff08;江苏&#xff09;膜结构科技有限公司凭借卓越的技术实力与丰富的项目经验&#xff0c;成功完成了陕西省渭南市砂石料场气膜仓的建设。这一项目的顺利交付&#xff0c;不仅满足了当地对高效仓储的需求&#xff0c;也为西北地区的仓储设施建设树立了标杆。 陕西…

twoPhaseEulerFoam 全解读之二(转)

twoPhaseEulerFoam 全解读之二&#xff08;转&#xff09; 本系列将对OpenFOAM-2.1.1 中的 twoPhaseEulerFoam 求解器进行完全解读&#xff0c;共分三部分&#xff1a;方程推导&#xff0c;代码解读&#xff0c;补充说明。本篇对 twoPhaseEulerFoam 中的 UEqn.H 和 pEqn.H 中的…

C# 高级数据处理:深入解析联接 Join 与 GroupJoin 操作的应用与实例演示

文章目录 一、联接概述二、Join 操作符1. Join 操作符的基本用法2. Join 操作符示例 三、GroupJoin 操作符1. GroupJoin 操作符的基本用法2. GroupJoin 操作符示例 总结 在数据处理中&#xff0c;联接&#xff08;Join&#xff09;操作是一种非常常见的需求&#xff0c;它允许我…

C语言典型例题30

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.7 从银行贷了一笔款d&#xff0c;准备每月还款额为p&#xff0c;月利率为r&#xff0c;计算多少个月能还清。 设d30000元&#xff0c;p6000元&#xff0c;r1%。对求得的月份取小数点后一位&#xff0c;对第二…

【深度学习与NLP】——RNN架构解析

目录 RNN架构解析 1.1 认识RNN模型 学习目标 什么是RNN模型 RNN模型的作用 RNN模型的分类 小节总结 1.2 传统RNN模型 学习目标 传统RNN的内部结构图 小节总结 RNN架构解析 1.1 认识RNN模型 学习目标 了解什么是RNN模型.了解RNN模型的作用.了解RNN模型的分类. 什么…

如何使用Jmeter对HTTP接口进行压力测试?

我们不应该仅仅局限于某一种工具&#xff0c;性能测试能使用的工具非常多&#xff0c;选择适合的就是最好的。笔者已经使用Loadrunner进行多年的项目性能测试实战经验&#xff0c;也算略有小成&#xff0c;任何性能测试&#xff08;如压力测试、负载测试、疲劳强度测试等&#…

openai gym box space configuration

题意&#xff1a;在OpenAI Gym环境中配置一个“Box”空间 问题背景&#xff1a; I need an observation space ranging from [0,inf) 我需要一个观察空间&#xff0c;其范围是从 [0, ∞)&#xff08;0到正无穷大&#xff09; Im new to openai gym, and not sure what the fo…

【算法】最短路径算法思路小结

一、基础&#xff1a;二叉树的遍历->图的遍历 提到搜索算法&#xff0c;就不得不说两个最基础的思想&#xff1a; BFS&#xff08;Breadth First Search&#xff09;广度优先搜索 DFS&#xff08;Depth First Search&#xff09;深度优先搜索 刚开始是在二叉树遍历中接触这…

为什么企业需要安装加密软件

保护敏感数据&#xff1a; 企业通常拥有大量的敏感数据&#xff0c;如客户信息、财务数据、知识产权等。这些数据如果未经保护而被泄露&#xff0c;可能会对企业造成严重的经济损失和声誉损害。加密软件能够对这些敏感数据进行加密&#xff0c;即使数据被窃取&#xff0c;也无…