掌握镜像声音克隆魔法:用MockingBird让你的声音无限延伸
以前陪孩子睡觉时,我讲故事嗓子都快说沙哑了!现在有了MockingBird,我可以用自己的声音无限复制,像个不知疲倦的讲故事专家。比如,可以有个"原版"妈妈、爸爸的声音,给孩子讲自己童年的故事。或者有个"原版"爷爷声音,仿佛他亲自在讲。MockingBird是个灵巧的工具,让陪伴更有趣!
除了讲故事,MockingBird还可以用于以下场景:
-
外语学习:如果你正在学习外语,可以使用MockingBird录制自己朗读的课文或者常用单词,然后反复听取,加深记忆和练习口语。
-
语音助手:有了MockingBird,你可以创建自己的语音助手,让它回答你的问题、提醒你日程、播放音乐等等。简单克隆个声音当你伴侣的闹钟或日常语音助手,想想都有趣。
-
商业用途:如果你是一个企业主或者销售人员,可以使用MockingBird录制销售话术或者电话营销脚本,让你的销售团队使用,提高效率和销售额。
-
音频剪辑:如果你是一个制作人或者视频博主,可以使用MockingBird录制音频片段,然后进行剪辑和混音,制作成独一无二的音乐或者配乐。
总之,MockingBird可以帮助你在很多方面提高效率和创造力,让你更好地利用自己的声音和语音。
安装
方式1: conda/mamba 隔离环境一步安装
bash
conda env create -n env_name -f env.yml
mamba env create -n env_name -f env.yml
会创建新环境安装必须的依赖. 之后用 conda activate env_name 切换环境就完成了.
env.yml只包含了运行时必要的依赖,暂时不包括monotonic-align,如果想要装GPU版本的pytorch可以查看官网教程。
方式2: 通用安装
按照原始存储库测试您是否已准备好所有环境。 运行工具箱(demo_toolbox.py)需要 Python 3.7 或更高版本 。
- 安装 PyTorch。 打开pytorch官网链接:pytorch.org/get-started...
如果在用 pip 方式安装的时候出现 ERROR: Could not find a version that satisfies the requirement torch==1.9.0+cu102 (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2) 这个错误可能是 python 版本过低,3.9 可以安装成功
- 安装 ffmpeg。 打开ffmpeg官网:ffmpeg.org/download.ht...
- 拉取MockingBird
git
git clone https://github.com/babysor/MockingBird.git
- ps: 实测过程中发现有个包版本指定有问题,按照以下步骤进行操作:
- 找到requirements.txt文件并打开。
- 在文件中查找并定位到包含"monotonic-align==0.0.3"的行。
- 删除"==0.0.3"部分,仅保留文本"monotonic-align"。
- 保存当前文档并关闭。
- 运行pip install -r requirements.txt 来安装剩余的必要包。
- 安装 webrtcvad pip install webrtcvad-wheels。
使用讲解
启动webui
python web.py 运行成功后在浏览器打开地址, 默认为 http://localhost:8080
仅支持手动新录音(16khz), 不支持超过4MB的录音,最佳长度在5~15秒; 实测5-8s为佳, 超出会导致电流噪声;
在左侧切换模式,右侧的工作区可以上传音频/使用示例音频进行合成
启动工具箱:
xml
python demo_toolbox.py -d <datasets_root>
这里的 <datasets_root> 是指您的数据集根目录。 请指定一个可用的数据集文件路径,如果有支持的数据集则会自动加载供调试,也同时会作为手动录制音频的存储目录。
首先,点击"Browse"按钮,选择一个时长较短的音频文件。接下来,选择合成器模型为75k,并输入待合成语音的文本内容。最后,点击"合成"按钮即可导出已合成的音频文件。
启动工具箱VC模式
python
python demo_toolbox.py -vc -d <datasets_root>
请指定一个可用的数据集文件路径,如果有支持的数据集则会自动加载供调试,也同时会作为手动录制音频的存储目录。
高级优化手段
关于合成
合成音频分为两步骤。第一步是声学模型合成梅尔图,你可以点击"Synthesize only"按钮进行合成。如果合成的梅尔图效果比较清晰,就可以继续进行下一步。如果不清晰,可以尝试多次合成。第二步是合成音频,你可以点击"Vocode only"按钮进行合成。当你更换声码器后,可以在更换后点击"Vocode only"按钮,避免重复合成梅尔图。同时进行这两步骤的按钮是"Synthesize and Vocode"。
合成完成后,你可以在左下角的"Toolbox Output"位置找到新的音频文件。所有合成过的音频都会放在这里,你可以选择"Replay"重新播放,或者点击"Export"导出音频文件。
效果不够好
某些情况下, 在长文本合成中出现坏音, 可以通过以下方式调整优化:
-
换更高级别的模型 200k; 目前社区训练好的模型中, 挑选出更适合自己场景的
-
精简输入, 同时换GPU方式来跑
-
改善CPU、GPU占用率,视情况调整batch_size参数来改善
训练优化
硬件环境准备
- 显卡:建议8G显存以上, 支持CUDA的NVIDIA显卡,小显存或CPU按需使用。
- 硬盘:建议500GB可用空间以上的硬盘,语音数据集相当庞大,并且理论上数据集越大最后模型效果更好。
软件环境准备
确保训练用的机器已经成功装好以下程序:
- Python 3.9.6 (或其他高于3.7的版本)
- CUDA Toolkit,版本 10.2 或 11.1 (可能需要显卡驱动升级后支持)
- 【强烈推荐】Anaconda 用清华Tuna源
- PyTorch 选择对应的平台和版本后复制命令运行安装
- ffmpeg 并设置环境变量
- 在项目源代码根目录下运行pip install -r requirements.txt 来安装剩余的必要包。
- 安装 webrtcvad pip install webrtcvad-wheels。
开始训练
Encoder
Synthesizer & Vocoder
进行音频和梅尔频谱图预处理: python pre.py <datasets_root> 可以传入参数 --dataset {dataset} 支持 aidatatang_200zh, magicdata, aishell3
训练合成器: python synthesizer_train.py mandarin <datasets_root>/SV2TTS/synthesizer
训练结束
哪有那么容易结束,炼丹姿势千千万,大功告成别希望。每天换换数据集和参数组合,跑着跑着就发现效果更好了。
训练工作可以观察到 \saved_models<id> 多了以下几个文件夹:
- Mel-spectrograms, wavs 训练过程自动保存的测试记录
- Metas 基本模型参数
- Plots 训练过程自动保存的阶段结果截图 (音频和梅尔频谱图预处理)
在练的过程中,至少要等到Plots 里面的attention图出现收敛(Convergence),才能正常发出人声,如下图出现一条明显斜线,否则就是一团奇怪噪音,对于loss数字就多寡随意,丰俭由人了。
附录-AI小创针对本文(原创)推荐的相关标题
-
"掌握镜像声音克隆魔法:用MockingBird让你的声音无限延伸"
-
"科技惊奇:用MockingBird实现自我声音复刻"
-
"打造自己的语音助手:MockingBird教你如何克隆声音"
-
"用MockingBird制作个性化音频:释放你的创造力"
-
"革命性的声音克隆技术:挑战MockingBird,打造无限可能"
-
"MockingBird:用AI技术让你的声音无处不在"
-
"声音复刻的黑科技:探秘MockingBird的神奇之处"
-
"打造自己的语音品牌:MockingBird让你的声音更具个性"
-
"AI带来的声音革命:MockingBird让你的声音不再受限"
-
"用MockingBird玩转音频制作:让你的声音成为艺术品"