一个简单可用的中英文音色克隆工具

对音色克隆这块一直感兴趣,想找个可用的支持中文的玩玩,关注coqui很久了,可惜他们迟迟不支持中文,直到9月份才开始支持。

于是搞了一个带web界面的声音克隆工具,可使用你的或者其他声音的音色,将一段文字合成为使用该声音说话的音频。使用非常简单,没有GPU也可以使用,github下载预编译版本,双击 app.exe 打开一个web界面,鼠标点点快速体验,笔记本电脑就可使用,毕竟这是本项目创立的初衷,高手直接拉取coqui-tts,可玩性更强。

项目开源地址: github.com/jianchang51...

支持 中文 、英文 、日语 、韩语 4种语言,可在线从麦克风录制声音。为保证合成效果,建议录制时长5秒到20秒,发音清晰准确,不要存在背景噪声。英文效果很棒,中文效果还凑合。

可导入srt格式的字幕,然后按照时间线合成语音,生成wav音频。

项目基于 coqui-tts ,早就想使用这个来做音色克隆了,只是他们一直不支持中文,直到今天9月份才支持。 内部集成flask搞了一个简单的本地web界面,默认地址 http://127.0.0.1:9988 , 可在线录制声音或上传已有的一段声音作为音色,然后输入一段文字,即可生成使用该声音的音频。

已提供window预编译版,直接下载压缩包解压,然后双击 run.bat 即可使用。其实直接拉取 coqui-tts 也可以,当然需要一些相关技术知识。本项目初衷是降低ai使用难度,让小白也能快速上手体验,不必配备N卡,即使笔记本电脑也可使用。

一些问题

遇到不少问题,颇伤脑筋

  1. 首先就是打包问题,使用的pyinstaller 打包,打包后提示缺少不少依赖,修改了 spec 文件,copy_meta /copytree ,费了不少力气,还是无法彻底解决所有问题,后来干脆简单粗暴些,直接从 Lib 下复制缺少的包进去,解决了,只是包太大了,仅支持CPU,打包压缩后总体积也达到了1.9G

  2. 对CUDA的支持,源码支持cuda,预编译版为减小体积,仅支持CPU,原本加入了GPU支持,可惜7zip压缩后体积仍然达到将近4G,太大了

  3. 中文断句问题,coqui 今年9月份才增加中文支持,目前看起来效果还不是很好,有的在不该断句的地方生硬的断开了,而应该断句的标点处却没有断句

  4. xtts-v2 language="zh-cn" 时的bug,当使用 该模型,并设置语言位 "zh-cn" 时,会提示ValueError: Model is not multi-lingual but language is provided., coqui已有人提交bug报告,目前是通过修改 TTS/api.py,注释掉大约242行的代码解决的

python 复制代码
if not self.is_multi_lingual and language is not None:
   raise ValueError("Model is not multi-lingual but `language` is provided.")

依赖的其他开源项目

  1. github.com/coqui-ai/TT...
  2. github.com/pallets/fla...
相关推荐
维克兜率天7 分钟前
【维克】指数调整:哪些股票会被“强制买入“?
人工智能·python·算法
come1123417 分钟前
Codex 下不同场景 模式选择
python
神也畏惧菠萝1 小时前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐61 小时前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame
ZWZhangYu1 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
quantdash_cc1 小时前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
小熊恋旧1 小时前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
威哥爱编程2 小时前
Python 智能体开发实战 05:一问教材内容它就编?先把答案从你自己的资料里检索出来
python·agent
java_prinln2 小时前
RAG 面试题介绍
python·agent
威哥爱编程2 小时前
Python 智能体开发实战 06:一个函数里塞了八百行?用状态机把批改流程拆成能回退的步骤
python·agent