大家好,好久不见。前三篇教程我们聊了如何在本地搭建一个大语言模型,它能够理解和生成文本,这确实是一个非常有趣且有前景的应用领域。今天,我们将更进一步,让你的AI模型具备实际的语音输出能力。
让AI模型将文字转化为语音我们通常称之为语音合成,也就是我们常说的文本转语音(Text-to-Speech, TTS)。在AI高速发展的今天,人们已经可以使用神经网络训练模型。我们今天介绍的XTTS v2即是由 coqui-ai 开源的一种基于神经网络的模型,可以从多种语言的文本生成语音。XTTS v2 以其高质量、自然的声音以及克隆声音的能力而闻名。
虽然coqui-ai公司正在关闭过程中,但我们仍能从其开源的TTS代码中获益。感谢开源,让我们有机会在本地运行它。
安装TTS
截止目前,TTS项目尚不支持python 3.12版本,因此本文使用venv虚拟环境进行安装。
| |
我们不需要进行二次开发和调试,因此直接使用pip进行安装:
| |
下载XTTS v2模型
和Ollama一样,TTS支持很多种模型。使用该命令查看一下所有支持的模型:
| |
虽然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用户)。
运行该命令进行验证:
| |
如果出现以下内容则说明模型下载正确:
| |
Available speaker ids列出来的是该模型内置的语音样板,有男有女。普通用户只要选择其中一个使用就可以了。
制作语音样板
前面已经提到过声音克隆,也就是说它可以根据你提供的一个样本语音文件生成与样本文件中声音相似的语音。简单来说,就好像是样本中的那个人在说话一样。
如果你想AI克隆你的声音,那你可以自己制作一个语音样板。你可以朗读并录制一个大约30秒的音频文件,做成.wav格式即可。你也可以使用这个示例样板,是杨澜在TED上演讲的片段。
python代码
让我们编写一段最简单的代码测试一下功能:
| |
注意这里的speaker_wav和speaker参数,如果你想让AI克隆语音,那就使用speaker_wav,并指定语音样板。如果你没有这方面的需求,可以直接使用speaker指定一个内置的语音样板。
等待代码执行的时间可能有些漫长,跟你的电脑配置有关。最后生成的语音文件为output.wav。
总结
最后试听一下output.wav吧,是不是跟你预期的有点差距?我特意挑选了一段比较复杂的文字来做实验,比如出现了AI、996、和7x24等等词汇。这些词汇模型确实不太好把握,而且还存在一个老生常谈的问题:所有模型对中文的支持都不太好。但也不用太悲观,我们现在还都是使用的默认配置不是吗?经过一番调教后模型是不是能更智能呢?