GPT-SoVITS 本地搭建踩坑

GPT-SoVITS 本地搭建踩坑

  • 前言
  • 搭建
    • 下载
    • 解压
    • VSCode打开
    • 安装依赖包
    • 修改内容
      • 1.重新安装版本
      • 2.修改文件内容
    • 运行
    • 总结

前言

传言GPT-SoVITS作为当前与BertVits2.3并列的TTS大模型,于是本地搭了一个,简单说一下坑。
GitHub官网截图

搭建

下载

到GitHub点击此处下载
https://github.com/RVC-Boss/GPT-SoVITS

点击此处下载

解压

解压到全英文目录
解压到全英文目录

VSCode打开

使用VSCode打开,切到conda并clone一个之前BertVits的环境(没环境的自己先做一个Python3.10的配好PyTorch的)
在环境中打开

安装依赖包

使用下面语句安装依赖

pip install -r requirements.txt

修改内容

根据issues内大家讨论的结果,这样操作是实测可行的,但是之后作者应该会优化,截止发文这么改是没问题的,以后可能不用改了
https://github.com/RVC-Boss/GPT-SoVITS/issues/26

1.重新安装版本

输入下面的指令重新安装一下对应版本的

pip install funasr==0.8.7
pip install modelscope==1.10.0

2.修改文件内容

将 tools\damo_asr\cmd-asr.py 文件中的

inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)

改成

inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)

根据我的研究,原因是 git clone 的那几个模型的配置文件和它自动下载的内容不一样
修改截图
修改后源码如下

# -*- coding:utf-8 -*-from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import sys,os,traceback
dir=sys.argv[1]
# opt_name=dir.split("\\")[-1].split("/")[-1]
opt_name=os.path.basename(dir)path_asr='tools/damo_asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'
path_vad='tools/damo_asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch'
path_punc='tools/damo_asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch'
path_asr=path_asr if os.path.exists(path_asr)else "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
path_vad=path_vad if os.path.exists(path_vad)else "damo/speech_fsmn_vad_zh-cn-16k-common-pytorch"
path_punc=path_punc if os.path.exists(path_punc)else "damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch"
# inference_pipeline = pipeline(
#     task=Tasks.auto_speech_recognition,
#     model=path_asr,
#     vad_model=path_vad,
#     punc_model=path_punc,
# )
inference_pipeline = pipeline(task=Tasks.auto_speech_recognition,model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
)opt=[]
for name in os.listdir(dir):try:text = inference_pipeline(audio_in="%s/%s"%(dir,name))["text"]opt.append("%s/%s|%s|ZH|%s"%(dir,name,opt_name,text))except:print(traceback.format_exc())opt_dir="output/asr_opt"
os.makedirs(opt_dir,exist_ok=True)
with open("%s/%s.list"%(opt_dir,opt_name),"w",encoding="utf-8")as f:f.write("\n".join(opt))

运行

在环境中输入,即可正常启动

python webui.py

总结

能够有感情的朗读了,不错

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

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

相关文章

对机器学习的认知,感悟。

关于AI: AI(Artificial Intelligence)即人工智能,是计算机科学的一个分支,它致力于研究、开发和应用模仿人类智能的理论、方法、技术及应用系统。AI的目标是使机器能够完成那些需要人类智能才能完成的任务&#xff0c…

在JavaScript中获取当前时间yyyymmddhhmmss的六种实现方式

在编写JavaScript代码时,遇到需要获取当前日期和时间并将其格式化为 yyyymmddhhmmss 字符串的情况。可以使用本文中介绍的几种实现方式中的任意一种。 方法一:使用Date对象 使用 Date 对象来获取当前日期和时间。 示例代码: const now new D…

React 生命周期详解

React 组件的生命周期是组件在创建、更新和销毁过程中所经历的一系列阶段。每个阶段都会触发特定的生命周期方法,开发者可以在这些方法中执行特定的操作。React 的生命周期方法可以分为三个阶段:挂载阶段、更新阶段和卸载阶段。 1. 挂载阶段 在组件首次…

NC开发客户端(前端)连接启动失败can‘t connect to server, please wait

效果图 解决方法 IP地址和端口要对应 1-IP地址中间启动,肯定是这个127.0.0.1 2-端口号,要对应中间件启动在控制台输出的端口 或者是在home目录-》bin-》sysConfig.bat这里面的服务器, 里面可以看到对应启动ip地址和端口

Qt使用中文字符串乱码的问题

文章目录 vs编译器下第一种解决方式第二种解决方式 Qt编译器下 我们在使用qt的时候有时候会遇到打印中文字符串的时候出现中文乱码的问题,主要是由于Qt的QString字符串存储的方式是使用utf-8的编码方式,如果我们本地的文件是使用GBK方式的编码再使用中文…

React一学就会(3): 强化练习一

前言 兄弟们点个关注点点赞,有什么建议在评论里留言说一下,一定要和我多多互动啊,这样我才有动力创作出更有品质的文章。 这节课我们用前两节课的知识做一个实践,在实战中巩固我们所学。本来我想借用官方的示例翻译一下&#xf…

数据库操作

数据库操作 1、 表之间连接 MYSQL 题 1、取第二高薪2、取第N高薪3、分数排名 inner join:2表值都存在 outer join:附表中值可能存在null的情况。 总结: ①A inner join B:取交集 ②A left join B:取A全部&#…

Vue深入学习4—指令和生命周期

1.Vue是怎么识别 v- 指令的? 首先将HTML结构解析成属性列表,存入到数组中,接着遍历数组中的每一个节点,获取到不同指令对应的方法。 // 将HTML看作真正的属性列表 var ndoeAttrs node.attributes; var self this; // 类数组对象…

原创改进 | 融合蝠鲼觅食与联想学习的量子多目标灰狼优化算法(Matlab)

​前面的文章里作者介绍了多目标灰狼优化算法(Multi-Objective Grey Wolf Optimizer,MOGWO),该算法是由Mirjalili等(灰狼算法的提出者)于2016年提出[1],发表在中科院一区期刊《expert systems with applications》。 MOGWO保留了灰狼算法的种…

使用Excel计算--任务完成总工作日时间段

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 计算任务完成时间周期,和计算金钱一样,是一个比较细致严谨的工作。 通常,我们可能以为,完成周期形如: 任务完成周期 任务结束时间 - 任务开始时间 但是…

Lambda常用表达式

Lambda常用表达式 在Java中,Lambda表达式和Stream API是一起使用的常用组合。下面是一些常见的Lambda表达式和Stream方法的用法示例: 1. 使用Lambda表达式创建一个Runnable对象: Runnable r () -> System.out.println("Hello, Lamb…

在 Ubuntu 上安装 Docker Engine

系列文章目录 前言 要在 Ubuntu 上开始使用 Docker Engine,请确保满足先决条件,然后按照安装步骤进行操作。 一、先决条件 注意事项 如果您使用 ufw 或 firewalld 管理防火墙设置,请注意当您使用 Docker 暴露容器端口时,这些端口…

AndroidStudio安装教程基础篇

Android Studio是专为Android应用程序开发而设计的官方集成开发环境(IDE)。它提供了丰富的工具和功能,帮助开发者更高效地构建出色的应用程序。本文将为您提供Android Studio的安装文档基础指南,帮助您顺利安装并开始使用这款强大…

时序数据库Tdengine 批量插入避免因为主键ts时间重复导致数据被覆盖掉

目录 在Mybatis中使用 在数据库管理工具中使用 now100a 使用now() #{index}a 其中那这个 #{index}是<foreach>标签里的循环出来的index 在Mybatis中使用 <insert id"batchInsert" parameterType"java.util.List">insert into uri(id…

Leetcode 第 111 场双周赛题解

Leetcode 第 111 场双周赛题解 Leetcode 第 111 场双周赛题解题目1&#xff1a;2824. 统计和小于目标的下标对数目思路代码复杂度分析 题目2&#xff1a;2825. 循环增长使字符串子序列等于另一个字符串思路代码复杂度分析 题目3&#xff1a;2826. 将三个组排序思路代码复杂度分…

PCL Kdtree 使用示例

PCL Kdtree 使用示例 文章目录 PCL Kdtree 使用示例一、关于 KDTree二、关于最近邻搜索三、复杂度分析四、C代码示例五、关键函数说明nearestKSearch 函数说明 一、关于 KDTree 点云数据主要是&#xff0c; 表征 目标表面 的海量点集合&#xff0c; 并不具备传统实体网格数据的…

P8651 [蓝桥杯 2017 省 B] 日期问题

#include <iostream> #include <string> using namespace std;int first; int second; int third; int day[13]{0,31,0,31,30,31,30,31,31,30,31,30,31};//每月日期bool select (int i,int j,int k){if ((i%100 first) && (j second) && (k thi…

【美团】SaaS技术部-后端研发工程师(海外业务)

部门介绍 美团餐饮系统为餐饮企业提供一站式IT解决方案&#xff0c;帮助餐饮商户实现从供应链管理、生产管理、前厅管理到外卖的数字化经营。美团餐饮系统不仅打通了餐厅和平台&#xff0c;更帮助餐厅连接客人&#xff0c;让商户更了解顾客需求&#xff0c;在帮助商户做商业决…

分段函数线性化方法matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

【ArcGIS遇上Python】python实现批量XY坐标生成shp点数据文件

单个手动生成:【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层 文章目录 一、问题分析二、解决办法三、注意事项一、问题分析 现有多个excel、txt或者csv格式的坐标数据,需要根据其坐标批量一键生成shp点数据,如下X为经度,…