很厉害的语音克隆TTS:coqui-ai TTS的使用过程

1、概述

        coqui-ai开源的TTS,它的特色我总结为:可以上传自己的一段人声音频(哪怕就几句),它就能给你克隆了,并且把你要说的文字给转成语音读出来。

2、使用方法

        开源地址:https://github.com/coqui-ai/TTS

1)环境

        官方说的环境是在Ubuntu18.04上测的,应该至少是这个版本吧,python版本是>=3.9,<3.12。 当然用GPU肯定是最好的。

        我的环境:ubuntu22.04,python给了3.10

2)安装        

        如果不自己整花活儿,就老老实实的用一下,那就这么办:

        pip install TTS

        就这么简单,当然来加个 -i 镜像速度会快点。

        如果想自己训练啥的,就下载源码按教程弄吧,这里就不说了。

3)使用

        就用它推荐的第一个例子和模型就行。 

import torch
from TTS.api import TTS
		
# Get device 用GPU还是CPU
device = "cuda" if torch.cuda.is_available() else "cpu"
# List available TTS models 可以看都有些啥模型名字,注意此时模型文件都没有下载
#print(TTS().list_models())
# Init TTS 初始化,传入模型名字,这个路径就得用上面list里的路径,然后下载链接在python安装路径的TTS目录下,这个文件里写的.models.json
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)

# Run TTS运行,必须设置语言
# Text to speech to a file 这是输出到文件了。
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")

        注意点:

  TTS加载的模型xtts_v2,这个路径在TTS().list_models()里的结果可以找到,如果要换其他模型,就看一下。

 language一定要设,中文的是 “zh-cn”

 speaker_wav是自己录的一段人声音频,它就是用这个来克隆声音的

  file_path就是输出目录和文件名

  4)出现的问题

        运行程序后,会让你同意个协议,输入y回车就继续了。

        第一次的时候会下载指定的这个模型,比如 xtts_v2,然后呢每次尴尬的就是下不下来。

        只能想办法下载喽,反正最终要把文件放到这个目录下:

        ~/.local/share/tts/tts_models--multilingual--multi-dataset--xtts_v2

        这一串tts_models--multilingual--multi-dataset--xtts_v2 是程序自动创建的目录,如果模型下载失败,这个目录会直接删掉的,注意。

        那想知道模型下载地址的话,在一个json文件里,这个文件在python安装路径的site-packages/TTS目录下,叫  .models.json ,注意前面有个点。

        比如这个模型的下载地址其实是:

        https://huggingface.co/coqui/XTTS-v2/tree/main

        程序会下载4个文件:

        model.pth,vocab.json,config.json,hash.md5

        所以最终下载目录里这4个都得在,不然程序又重新下,下不下来就删了目录。。

5)效果

        我录了几句话,十几秒的音频,然后就能克隆输出了,我用GPU,速度很快,3秒内就输出了,当然这和传的音频还有合成文字的长度有关系。 我好像看到说合成的文字有长度限制,400个token还是咋,我也没试那么长的,以后注意一下。

        效果猛的一听确实惊艳,甚至会模仿你传的音频的语气。  但是还是能听出来克隆的声音和原声有点区别,说的时候也会有不自然的地方出现。

        当然了,已经很厉害了,也可能我还没找到更好的调教方法,完了试试录个比较长的音频让它克隆看看。

### Coqui AI API 文档与使用示例 #### 获取API文档 为了获取Coqui AI API的官方文档,建议访问官方网站或GitHub页面。通常这类资源会包含详细的RESTful接口说明、请求方法、参数列表以及响应格式等内容[^1]。 对于Coqui TTS项目而言,其官方仓库提供了丰富的README文件和其他辅助性的Markdown文档来指导用户如何安装环境依赖项并运行服务[^4]。此外,在项目的Wiki部分也可能存在更深入的技术细节解析和最佳实践案例分享。 #### 使用Python调用Coqui TTS REST API实例 下面是一个简单的Python脚本例子,展示怎样通过HTTP POST请求向部署好的Coqui TTS服务器发送文本字符串以获得对应的音频流: ```python import requests url = "http://localhost:5002/api/tts" text = "Hello, this is a test message from the Coqui TTS server." response = requests.post(url=url, params={"text": text}) if response.status_code == 200: with open('output.wav', 'wb') as f: f.write(response.content) else: print(f"Error occurred while making request {response.text}") ``` 此代码片段假设本地已经搭建好了一个监听于`5002`端口上的Coqui TTS Web Service,并且可以通过上述URL路径正常工作。 #### 配置自定义发音人模型 如果想要利用预训练的声音克隆能力,则需要额外指定所期望的目标说话者ID或其他个性化设置选项作为查询参数传递给API endpoint: ```python speaker_id = "ljspeech" # 这里替换为你感兴趣的特定发音人的唯一标识符 voice_params = {"speaker_idx": speaker_id} response = requests.post( url=url, json=voice_params | {"text": text} ) # 同样保存返回的数据至WAV文件... ``` 这里展示了当有多个可用的音色可供选择时,应该如何修改之前的POST请求以便应用不同的风格化输出效果。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值