让AI模型将笔墨转化为语音我们常日称之为语音合成,也便是我们常说的文本转语音(Text-to-Speech, TTS)。在AI高速发展的本日,人们已经可以利用神经网络演习模型。我们本日先容的XTTS v2即是由 coqui-ai 开源的一种基于神经网络的模型,可以从多种措辞的文本天生语音。XTTS v2 以其高质量、自然的声音以及克隆声音的能力而有名。
虽然coqui-ai公司正在关闭过程中,但我们仍能从其开源的TTS代码中获益。感谢开源,让我们有机会在本地运行它。
安装TTS截止目前,TTS项目尚不支持python 3.12版本,因此本文利用venv虚拟环境进行安装。
# 利用3.10版本的python创建venv/opt/homebrew/opt/python@3.10/libexec/bin/python3 -m venv .venv# 激活venvsource .venv/bin/activate
我们不须要进行二次开拓和调试,因此直策应用pip进行安装:
pip install TTS
下载XTTS v2模型
和Ollama一样,TTS支持很多种模型。利用该命令查看一下所有支持的模型:
tts --list_models
虽然TTS会自动下载模型,但我相信大部分人还是喜好自己下载模型,由于这样更快速和直接。
从huggingface下载所有文件,放至~/Library/Application Support/tts/tts_models--multilingual--multi-dataset--xtts_v2目录下(MAC用户)或C:\users\你的用户名\AppData\Local\tts\tts_models–multilingual–multi-dataset–xtts_v2(Windows用户)。
运行该命令进行验证:
tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --list_speaker_idxs
如果涌现以下内容则解释模型下载精确:
> tts_models/multilingual/multi-dataset/xtts_v2 is already downloaded. > Using model: xtts > Available speaker ids: .....
Available speaker ids列出来的是该模型内置的语音样板,有男有女。普通用户只要选择个中一个利用就可以了。
制作语音样板前面已经提到过声音克隆,也便是说它可以根据你供应的一个样本语音文件天生与样本文件中声音相似的语音。大略来说,就彷佛是样本中的那个人在说话一样。
如果你想AI克隆你的声音,那你可以自己制作一个语音样板。你可以朗读并录制一个大约30秒的音频文件,做成.wav格式即可。你也可以利用这个示例样板,是杨澜在TED上演讲的片段。
python代码让我们编写一段最大略的代码测试一下功能:
import torchfrom TTS.api import TTStext = """随着 AI 智能浪潮到来,AI 编码助手成为越来越多开拓者的必备工具,将开拓者从繁重的编码事情中解放出来,极大地提高了编程效率,帮助开拓者实现更快、更好的代码编写。如今,海内有一位 AI 程序员,已经在某互联网大厂上岗一段韶光了。它便是阿里云数万名工程师最近频繁打交道的新同事 ——「通义灵码」,专属工号「AI001」。通义灵码在正式入职之前,先是在阿里云内部和外部「演习」了几个月。大家的评价都很不错,真实好评率超 80%。而且,通义灵码的事情节奏比 996 还要极致:7x24 小时随叫随到……以 API 开拓测试事情为例,通义灵码可将数分钟乃至十几分钟的人工编写测试耗时缩短到秒级,节省了人类程序员 70% 以上的测试代码事情量。通义灵码免费向全民开放,所有人可以随时随地在手机上写代码、读代码、学习编程技能。所有人可以前往下方链接写代码、读代码、学习编程技能!
"""device = "cuda" if torch.cuda.is_available() else "cpu"tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)# generate speech by cloning a voice using default settingstts.tts_to_file(text=text, file_path="output.wav", speaker_wav="yanglan.wav", # speaker='Sofia Hellen', language="zh-cn" )
把稳这里的speaker_wav和speaker参数,如果你想让AI克隆语音,那就利用speaker_wav,并指定语音样板。如果你没有这方面的需求,可以直策应用speaker指定一个内置的语音样板。
等待代码实行的韶光可能有些漫长,跟你的电脑配置有关。末了天生的语音文件为output.wav。
总结末了试听一下output.wav吧,是不是跟你预期的有点差距?我特意挑选了一段比较繁芜的笔墨来做实验,比如涌现了AI、996、和7x24等等词汇。这些词汇模型确实不太好把握,而且还存在一个旧调重弹的问题:所有模型对中文的支持都不太好。但也不用太悲观,我们现在还都是利用的默认配置不是吗?经由一番调教后模型是不是能更智能呢?
公众年夜众号:机器人小不