5秒实现AI语音克隆(Python)

简介: 推荐一个有趣的AI黑科技--MockingBird,该项目集成了Python开发,语音提取、录制、调试、训练一体化GUI操作,号称只需要你的 5 秒钟的声音,就能实时克隆出你的任意声音

一、实时语音克隆原理简介


该项目实时语音克隆原理基于谷歌2017年发布的论文《Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis》


技术实现分成三个模块(Encoder、Synthesizer、Vocoder),


  • encoder模块将说话人的声音转换成人声的数字编码(speaker embedding)


  • synthesis 模块将文本转换成梅尔频谱(mel-spectrogram)


  • vocoder模块将梅尔频谱(mel-spectrogram)转换成(波形)waveform 先提取说话者的声音提取音色向量(Speaker Encoder部分),然后用这部分内容加上Synthesizer和Vocoder一起完成语音合成。



二、MockingBird项目动手实践


MockingBird项目地址:http://github.com/babysor/MockingBird或者文末阅读原文可以访问


MockingBird的安装比较简单,按说明把Python环境(需要3.7及以上版本)、著名的机器学习框架PyTorch、著名的多媒体处理组件FFmpeg(实测在仅使用简单训练的时候是不需要它的)、pip安装下项目依赖库,再准备预训练模型就差不多了。


2.1 安装要求


>按照原始存储库测试您是否已准备好所有环境。**Python 3.7 或更高版本**需要运行工具箱。 *安装[PyTorch](https://pytorch.org/get-started/locally/)。 >如果在用pip方式安装的时候出现`ERROR:Couldnotfindaversionthatsatisfiestherequirementtorch==1.9.0+cu102(fromversions:0.1.2,0.1.2.post1,0.1.2.post2)`这个错误可能是python版本过低,3.9可以安装成功 *安装[ffmpeg](https://ffmpeg.org/download.html#get-packages)。 *运行`pipinstall-rrequirements.txt`来安装剩余的必要包。 *安装webrtcvad`pipinstallwebrtcvad-wheels`。 ###[](https://github.com/babysor/MockingBird/blob/main/README-CN.md#2-%E5%87%86%E5%A4%87%E9%A2%84%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B)2\.准备预训练模型 考虑训练您自己专属的模型或者下载社区他人训练好的模型: >近期创建了[知乎专题](https://www.zhihu.com/column/c_1425605280340504576)将不定期更新炼丹小技巧or心得,也欢迎提问 ####[](https://github.com/babysor/MockingBird/blob/main/README-CN.md#21-%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E9%9B%86%E8%87%AA%E5%B7%B1%E8%AE%AD%E7%BB%83encoder%E6%A8%A1%E5%9E%8B-%E5%8F%AF%E9%80%89)2.1使用数据集自己训练encoder模型(可选) *进行音频和梅尔频谱图预处理:`pythonencoder_preprocess.py<datasets_root>`使用`-d{dataset}`指定数据集,支持librispeech_other,voxceleb1,aidatatang_200zh,使用逗号分割处理多数据集。 *训练encoder:`pythonencoder_train.pymy_run<datasets_root>/SV2TTS/encoder` >训练encoder使用了visdom。你可以加上`-no_visdom`禁用visdom,但是有可视化会更好。在单独的命令行/进程中运行"visdom"来启动visdom服务器。 ####[](https://github.com/babysor/MockingBird/blob/main/README-CN.md#22-%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E9%9B%86%E8%87%AA%E5%B7%B1%E8%AE%AD%E7%BB%83%E5%90%88%E6%88%90%E5%99%A8%E6%A8%A1%E5%9E%8B%E4%B8%8E23%E4%BA%8C%E9%80%89%E4%B8%80)2.2使用数据集自己训练合成器模型(与2.3二选一) *下载数据集并解压:确保您可以访问*train*文件夹中的所有音频文件(如.wav) *进行音频和梅尔频谱图预处理:`pythonpre.py<datasets_root>-d{dataset}-n{number}`可传入参数: *`-d{dataset}`指定数据集,支持aidatatang_200zh,magicdata,aishell3,data_aishell,不传默认为aidatatang_200zh *`-n{number}`指定并行数,CPU11770k+32GB实测10没有问题 >假如你下载的`aidatatang_200zh`文件放在D盘,`train`文件路径为`D:\data\aidatatang_200zh\corpus\train`,你的`datasets_root`就是`D:\data\` *训练合成器:`pythonsynthesizer_train.pymandarin<datasets_root>/SV2TTS/synthesizer` *当您在训练文件夹*synthesizer/saved_models/*中看到注意线显示和损失满足您的需要时,请转到`启动程序`一步。 ####[](https://github.com/babysor/MockingBird/blob/main/README-CN.md#23%E4%BD%BF%E7%94%A8%E7%A4%BE%E5%8C%BA%E9%A2%84%E5%85%88%E8%AE%AD%E7%BB%83%E5%A5%BD%E7%9A%84%E5%90%88%E6%88%90%E5%99%A8%E4%B8%8E22%E4%BA%8C%E9%80%89%E4%B8%80)2.3使用社区预先训练好的合成器(与2.2二选一) >当实在没有设备或者不想慢慢调试,可以使用社区贡献的模型(下载后传入synthesizer/saved_models/): |作者|下载链接|效果预览|信息| |---|---|---|---| |作者|[https://pan.baidu.com/s/1iONvRxmkI-t1nHqxKytY3g](https://pan.baidu.com/s/1iONvRxmkI-t1nHqxKytY3g)[百度盘链接](https://pan.baidu.com/s/1iONvRxmkI-t1nHqxKytY3g)4j5d||75ksteps用3个开源数据集混合训练| |作者|[https://pan.baidu.com/s/1fMh9IlgKJlL2PIiRTYDUvw](https://pan.baidu.com/s/1fMh9IlgKJlL2PIiRTYDUvw)[百度盘链接](https://pan.baidu.com/s/1fMh9IlgKJlL2PIiRTYDUvw)提取码:om7f || 25k steps 用3个开源数据集混合训练, 切换到tag v0.0.1使用| |@FawenYo|[https://drive.google.com/file/d/1H-YGOUHpmqKxJ9FRc6vAjPuqQki24UbC/view?usp=sharing](https://drive.google.com/file/d/1H-YGOUHpmqKxJ9FRc6vAjPuqQki24UbC/view?usp=sharing)[百度盘链接](https://pan.baidu.com/s/1vSYXO4wsLyjnF3Unl-Xoxg)提取码:1024 |[input](https://github.com/babysor/MockingBird/wiki/audio/self_test.mp3)[output](https://github.com/babysor/MockingBird/wiki/audio/export.wav)|200ksteps台湾口音需切换到tagv0.0.1使用| |@miven|[https://pan.baidu.com/s/1PI-hM3sn5wbeChRryX-RCQ](https://pan.baidu.com/s/1PI-hM3sn5wbeChRryX-RCQ)提取码:2021 |[https://www.bilibili.com/video/BV1uh411B7AD/](https://www.bilibili.com/video/BV1uh411B7AD/)| 150k steps 注意:根据[issue](https://github.com/babysor/MockingBird/issues/37)修复并切换到tagv0.0.1使用| ####[](https://github.com/babysor/MockingBird/blob/main/README-CN.md#24%E8%AE%AD%E7%BB%83%E5%A3%B0%E7%A0%81%E5%99%A8-%E5%8F%AF%E9%80%89)2.4训练声码器(可选) 对效果影响不大,已经预置3款,如果希望自己训练可以参考以下命令。 *预处理数据:`pythonvocoder_preprocess.py<datasets_root>-m<synthesizer_model_path>` >`<datasets_root>`替换为你的数据集目录,`<synthesizer_model_path>`替换为一个你最好的synthesizer模型目录,例如*sythensizer\saved_mode\xxx* *训练wavernn声码器:`pythonvocoder_train.py<trainid><datasets_root>` >`<trainid>`替换为你想要的标识,同一标识再次训练时会延续原模型 *训练hifigan声码器:`pythonvocoder_train.py<trainid><datasets_root>hifigan` >`<trainid>`替换为你想要的标识,同一标识再次训练时会延续原模型


2.2 启动程序或工具箱


MockingBird在本地提供了一个B/S使用环境,运行python web.py后,用浏览器访问本地8080端口。输入框里的就是要合成的话术,传入的声音可以当场录音或者上传已录好的声音(需要wav格式),点击上传合成就可以稍后就可以听到AI克隆的声音。



除了可以运行web程序调试,还有功能更为丰富的工具箱可以自行试试。启动工具箱:python demo_toolbox.py -d <datasets_root>


三、一点感想


随着AI、元宇宙(AR/VR)技术的普及,虚拟世界的内容和形式都显得越来越真实,和真实世界的边界越来越模糊,交互也越来越容易。一方面,人类活动的疆界越来越大了,生活越加丰富。另一方面,我们可能更容易迷失于虚拟事物中,乱花渐欲迷人眼!

类似与AI模型从海量数据中,发现本质特征做合理的决策的过程,我们也需要维护好自己的“信息筛选及决策系统”,去客观地认识事物及笃定内心深处的追求。


相关文章
|
11天前
|
人工智能 自然语言处理 API
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
Mathtutor on Groq 是一款基于 Groq 架构的 AI 数学辅导工具,支持语音输入数学问题,实时计算并渲染解题过程,适用于代数、微积分等领域的学习和教学辅助。
52 5
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
|
28天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
148 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
17天前
|
人工智能 Serverless 视频直播
活动实践 | AI智能体实时语音互动
AI智能体实时语音互动方案提供端到端的实时音频交互,用户通过终端SDK与云端AI智能体进行音频通话。AI智能体接收音频输入,依据预定义工作流处理并生成响应,通过ARTC网络推送结果。该方案支持灵活编排AI组件如语音转文字、大语言模型等,确保高可用、低延迟的通信体验。用户可轻松创建和管理智能体及实时工作流,实现高效对话,并可通过示例网站体验功能。
|
2月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
104 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
1月前
|
机器学习/深度学习 人工智能 数据挖掘
AI精通Python365天第1课,揭秘难易度
学习Python能显著提升就业竞争力,实现工作自动化,增强数据分析、机器学习、Web开发等技能,促进跨领域应用和个人成长。无论是职场新人还是资深人士,掌握Python都能带来正向的职业发展和收入增长,同时回馈社会。通过AI辅助学习Python,从基础代码开始实践,逐步提升编程能力,让技术成为个人发展的强大助力。
27 1
|
2月前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
130 4
|
2月前
|
人工智能 机器人 Shell
AI语音机器人安装方法 AI机器人安装代码
AI语音机器人安装方法 AI机器人安装代码
40 2
|
2月前
|
人工智能 自然语言处理 机器人
手把手带你搭建一个语音对话机器人,5分钟定制个人AI小助手(新手入门篇)
本文介绍了如何从零开始搭建一个语音对话机器人,涵盖自动语音识别(ASR)、自然语言处理(NLP)和文本到语音合成(TTS)三大核心模块。通过使用开源工具如FunASR、LLaMA3-8B和ChatTTS,以及FastAPI和Gradio等技术,详细指导读者轻松实现个人AI小助手的构建,适合技术新手快速上手。
422 1
|
2月前
|
人工智能 IDE 开发工具
Python AI 编程助手
Python AI 编程助手。
59 5
|
2月前
|
机器学习/深度学习 自然语言处理 API
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程。通过简单的代码示例,展示如何将文本转换为自然流畅的语音,适用于有声阅读、智能客服等场景。
441 3
下一篇
开通oss服务