字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠说16国语言(Python3.10)

按照固有的思维方式,如果想要语音克隆首先得有克隆对象具体的语言语音样本,换句话说,克隆对象必须说过某一种语言的话才行,但现在,coqui-ai TTS V2.0版本做到了,真正的跨语种无需训练的语音克隆技术。

coqui-ai TTS实现跨语种、无需训练克隆语音的方法是基于Tacotron模型,该模型使用了一种音素输入表示来鼓励在不同语种之间共享模型容量。此外,还引入了对抗损失项,以鼓励模型将说话者身份与语音内容进行解耦。这使得模型能够在不同语种之间进行语音合成,而无需在任何双语或平行示例上进行训练。

具体来说,coqui-ai TTS首先使用音素输入表示:采用音素(语音的基本发音单位)作为输入表示,鼓励模型在不同语种之间共享模型容量,从而实现跨语种语音合成。

随后引入对抗损失项:对抗损失项的引入有助于模型将说话者身份与语音内容进行解耦,从而使模型能够在不同语种之间进行语音合成,而无需在双语或平行示例上进行训练。

此外,通过在训练过程中使用多个讲话者的语音数据,并引入自动编码输入来帮助稳定注意力,进一步扩展了模型的规模,使其能够在所有训练过程中看到的语种中一致地合成可理解的语音,包括训练讲话者的本地口音或外国口音。

本次我们基于coqui-ai TTS的2.0版本来让钢铁侠托尼斯塔克先生开口讲16国语言。

coqui-ai TTS语音克隆项目配置

首先克隆项目:

bash 复制代码
git clone https://github.com/v3ucn/coqui-ai_xTTS_v2.2_webui_cn.git

注意该项目并非官方项目,而是在其基础上的修改版本,添加了中文版本的webui。

进入项目的目录:

bash 复制代码
cd coqui-ai_xTTS_v2.2_webui_cn

随后安装依赖:

复制代码
pip install -r requirements.txt

安装完成后,先在Python终端里测试一下:

javascript 复制代码
import torch  
from TTS.api import TTS

如果报下面这个错误:

javascript 复制代码
from pydantic.typing import Annotated  
ImportError: cannot import name 'Annotated' from 'pydantic.typing'

那么说明pydantic库的版本过高了,进行降级即可:

复制代码
pip install pydantic<2

coqui-ai TTS语音克隆模型配置

随后下载2.0版本的模型,下载地址:

bash 复制代码
https://huggingface.co/coqui/XTTS-v2/tree/main

将其放入项目的models目录,结构如下:

vbnet 复制代码
E:\work\coqui-ai_xTTS_v2.2_webui_cn\models\tts>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
│  
├───tts_models--multilingual--multi-dataset--xtts_v2  
│       config.json  
│       dvae.pth  
│       hash.md5  
│       mel_stats.pth  
│       model.pth  
│       speakers_xtts.pth  
│       tos_agreed.txt  
│       vocab.json

随后,需要做一件重要的事,那就是配置模型目录的环境变量 TTS_HOME = E:\work\coqui-ai_xTTS_v2.2_webui_cn\models\

如图所示:

如果不设置环境变量,coqui-ai TTS会自动重复下载模型到C盘,非常的烦人。

coqui-ai TTS跨语种语音克隆推理

万事俱备,只欠推理,在终端执行命令:

复制代码
python3 app.py

程序返回:

vbnet 复制代码
E:\work\coqui-ai_xTTS_v2.2_webui_cn>python app.py  
 > tts_models/multilingual/multi-dataset/xtts_v2 is already downloaded.  
 > Using model: xtts  
Running on local URL:  http://127.0.0.1:7860  
  
To create a public link, set `share=True` in `launch()`.

注意程序初始化比较慢,另外设置了环境变量系统就会侦测到模型已下载。

此时访问 http://127.0.0.1:7860

默认用钢铁侠英文30秒素材作为克隆的数据集。

选择语速、语言即可直接推理,方便快捷。

这里需要注意的是,如果想让钢铁侠的音色讲日语,那么需要单独安装Mecab库,并且单独拷贝动态库,详见:Win11环境Mecab日语分词和词性分析以及动态库DLL not found问题(Python3.10),这里不再赘述。

除了钢铁侠的音色,我们也可以自主添加别的角色音色:

比如添加生化危机角色艾达王,那么把艾达王30秒的语音wav文件放入到项目的targets目录即可,命名规范:角色名.wav。

随后就可以在webui界面中选择艾达王的音色进行克隆。

结语

coqui-ai xtts支持多种语言,包括汉语、英语、韩语、日语、西班牙语、法语等。这意味着您可以使用coqui-ai xtts来合成多种语言的语音,而无需进行额外的训练或调整。其基于先进的深度学习技术,能够生成高质量、自然流畅的语音。这意味着即使在不同语种之间,coqui-ai xtts生成的语音也能保持高质量和自然度,正是居家旅行,口播嘴替的必备好库。

相关推荐
CCPC不拿奖不改名1 天前
循环神经网络RNN:整数索引→稠密向量(嵌入层 / Embedding)详解
人工智能·python·rnn·深度学习·神经网络·自然语言处理·embedding
学好statistics和DS1 天前
感知机的对偶形式是怎么来的
深度学习·神经网络·机器学习
石去皿1 天前
大模型面试常见问答
人工智能·面试·职场和发展
Java后端的Ai之路1 天前
【AI大模型开发】-RAG 技术详解
人工智能·rag
墨香幽梦客1 天前
家具ERP口碑榜单,物料配套专用工具推荐
大数据·人工智能
Coder_Boy_1 天前
基于SpringAI的在线考试系统-考试系统DDD(领域驱动设计)实现步骤详解
java·数据库·人工智能·spring boot
敏叔V5871 天前
从人类反馈到直接偏好优化:AI对齐技术的实战演进
人工智能
琅琊榜首20201 天前
AI赋能短剧创作:从Prompt设计到API落地的全技术指南
人工智能·prompt
测试者家园1 天前
Prompt、Agent、测试智能体:测试的新机会,还是新焦虑?
人工智能·prompt·智能体·职业和发展·质量效能·智能化测试·软件开发和测试
嗷嗷哦润橘_1 天前
从萝卜纸巾猫到桌游:“蒸蚌大开门”的设计平衡之旅
人工智能·算法·游戏·概率论·桌游