目录
论文简介
部署
模型下载
编译REAPER
最后
政安晨的个人主页:政安晨
欢迎 👍点赞✍评论⭐收藏
希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!
本文目标:《Neural Concatenative Singing Voice Conversion》将该论文的这个歌曲音色转录能力基于Linux Ubuntu系统部署并应用起来
论文简介
任意歌声到任意歌声的转换(SVC)面临着一个巨大的挑战,即由于内容和说话者音色之间的分离不足而导致的 "音色泄漏 "问题。
为解决这一难题,本研究引入了一个新颖的神经串联歌声转换(NeuCoSVC)框架。 NeuCoSVC 框架由一个自监督学习(SSL)表征提取器、一个神经谐波信号发生器和一个波形合成器组成。 SSL 模型将音频浓缩为固定维度的 SSL 特征序列。 谐波信号发生器利用给定条件特征的线性时变滤波器产生原始谐波信号和滤波谐波信号。 与此同时,音频发生器直接根据 SSL 特征创建波形,同时整合谐波信号和响度。 在推理过程中,音频生成器会直接构建转换后的波形,将源 SSL 表示替换为匹配池中最接近的对应波形,匹配池由从目标音频中提取的 SSL 表示组成。 因此,该框架规避了解除纠缠的挑战,有效消除了音色泄漏问题。 实验结果证实,在单次 SVC 的情况下,所提出的系统在语言内、跨语言和跨领域评估中均表现出良好的性能。
图:所提出的 SVC 系统的结构:(a)SSL 特征提取和匹配模块;(b)神经谐波信号发生器;(c)音频合成器。
论文地址为:https://arxiv.org/abs/2312.04919
歌唱声音转换(SVC)的目标是将一个歌手的声音特征转换成目标歌手的声音特征,同时
保留歌曲的内容和旋律。随着神经网络架构的进步,取得了重大进展,在SVC任务中实现,在人机交互、娱乐等方面带来了广泛的应用。
该团队已经开发出了第二版:NeuCoSVC2
部署该项目时,可以在下载完成项目源码后,切换到第二版的分支中。
部署
下载项目:GitHub - thuhcsi/NeuCoSVCContribute to thuhcsi/NeuCoSVC development by creating an account on GitHub.https://github.com/thuhcsi/NeuCoSVC
git clone git@github.com:thuhcsi/NeuCoSVC.git
切换至第二版项目分支中:
cd NeuCoSVC
git checkout NeuCoSVC2
创建虚拟环境:
conda create -n NeuCoSVC python=3.10.6
conda activate NeuCoSVC
pip install -r requirements.txt
在您切换至第二版分支之后,最后安装依赖的时候,依赖文件的名字叫作:requirements
即,执行依赖安装的命令为:
pip install -r requirements
模型下载
要为项目设置检查点,您需要为WavLM大型编码器和带有神经谐波滤波器的FastSVC模型获取预训练模型。
(政安晨:也就是说,该框架要用起来,需要下载两个模型,放到特定的位置上)
1. 下载编码器:WavLM 大型编码器
从这里您可以看到它的下载地址:
unilm/wavlm at master · microsoft/unilm · GitHubLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities - unilm/wavlm at master · microsoft/unilmhttps://github.com/microsoft/unilm/tree/master/wavlm
“WavLM” 是一个用于全栈语音处理的大规模自监督预训练的库。
它有官方的 PyTorch 实现和预训练模型。在 2021 年 10 月发布了预印本,11 月发布了代码和预训练模型(如 WavLM Base 和 WavLM Base+),12 月有了大型版本的发布和对 HuggingFace 的支持,并且在 12 月还有一个有趣的说话人验证演示在 HuggingFace 上,可供尝试。
该库提供了不同的预训练模型,如 WavLM Base、WavLM Base+和 WavLM Large,并说明了它们的预训练数据集和微调数据集。
有条件的小伙伴,可以直接下载Large的模型使用。
2.下载:带有神经谐波滤波器的FastSVC模型:
下载链接如下:(打开项目,在项目中往下拉,找到这句话)
3. 把下载好的模型放在特定的位置:
一旦你有了这两个文件,你需要把它们放在项目中正确的目录中。
如果项目的根目录中还不存在,请在根目录中创建一个名为pretrained的文件夹。
将WavLM-Large.pt文件和model. pkl(假设这是包含FastSVC模型的文件夹的正确名称)移动到pretrained文件夹中。
(政安晨注:可以根据项目中提示的模型名称,将下载的模型改名)
编译REAPER
GitHub - google/REAPERContribute to google/REAPER development by creating an account on GitHub.https://github.com/google/REAPER参照上面的项目,编译,并配置使用。
cd convenient_place_for_repository
git clone https://github.com/google/REAPER.git
cd REAPER
mkdir build # In the REAPER top-level directory
cd build
cmake ..
make
最后
未来可以使用Gradio,开发界面,把核心推理与训练等功能的图形化做起来。
这个项目是清华和腾讯一起做的,在最终部署上,大家可能会遇到一些问题,政安晨在这个项目的部署上如果遇到某些问题(大概率铁定会遇到),不建议大家联系我哈。
小伙伴们,相信你们应该会理解的,也逐渐会懂得的,嘿嘿。