❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
技术合作:清华大学、腾讯AI实验室和香港中文大学联合开发。
功能特点:超低比特率下的音乐压缩与高保真重建。
应用场景:在线音乐流媒体服务、音乐下载、语言模型建设等。
正文(附运行示例)
MuCodec 是什么
MuCodec是由清华大学深圳国际研究生院、腾讯AI实验室和香港中文大学的研究人员共同推出的超低比特率音乐编解码器。它能够实现音乐的高效压缩与高保真重建。MuCodec基于MuEncoder提取音乐的声学和语义特征,使用RVQ技术进行特征离散化,并通过流匹配方法重建Mel-VAE特征。最终,通过预训练的Mel-VAE解码器和HiFi-GAN生成重建后的音乐。
MuCodec能够在0.35kbps至1.35kbps的比特率下达到业界领先的压缩效率和音质。
MuCodec 的主要功能
- 音乐压缩:在极低的比特率下对音乐进行有效压缩,支持0.35kbps的超低比特率。
- 音乐重建:在超低比特率下,能够重建出高保真的音乐。
- 特征提取:使用MuEncoder提取音乐的声学和语义特征,捕捉音乐的本质特性。
- 离散化处理:基于RVQ(Residual Vector Quantization)技术对提取的特征进行离散化处理,便于压缩。
- 流匹配重建:使用流匹配方法重建Mel-VAE特征,实现更精细的音频重建。
- 双比特率支持:能够在低比特率(0.35kbps)和高比特率(1.35kbps)下工作,提供灵活的应用选择。
MuCodec 的技术原理
- MuEncoder:作为特征提取器,基于音乐的两个关键方面——人声和背景音乐,提取声学和语义特征。
- 两阶段训练:
- 第一阶段:使用掩码语言模型(Mask Language Model)约束学习预测掩码区域,基于未掩码的语音信号,让MuEncoder能感知上下文信息,增强表征能力。
- 第二阶段:引入重建和歌词识别约束,包括Mel频谱图和CQT(Constant-Q Transform)特征的重建,及确保提取的特征包含语义信息的歌词识别。
- RVQ(Residual Vector Quantization):选择RVQ来离散化MuEncoder特征,基于残差过程压缩表示,并用级联码本提供更精细的近似。
- 流匹配:使用基于流匹配的方法进行重建,这种方法相比GAN(Generative Adversarial Networks)方法训练更稳定,且需要更少的训练步骤就能在超低比特率重建任务中取得更好的结果。流匹配用离散化的MuEncoder表示作为条件,基于Diffusion Transformer进行细粒度重建。
- Mel-VAE解码器和HiFi-GAN:重建的Mel频谱图通过预训练的Mel-VAE解码器恢复,最终用预训练的HiFi-GAN生成重建后的音乐。
如何运行 MuCodec
安装依赖
使用Python 3.8.12,通过以下命令安装必要的依赖:
pip install -r requirements.txt
下载模型
模型检查点已保存在Hugging Face上,地址为:https://huggingface.co/yaoxunxu/mucodec。请将模型下载并保存到以下目录:
audioldm_48k.pth
保存到tools
文件夹。muq.pt
保存到muq_dev
文件夹。mucodec.pt
保存到ckpt
文件夹。
确保所有三个检查点都已完全下载,文件路径应为:
tools/audioldm_48k.pth
muq_dev/muq.pt
ckpt/mucodec.pt
运行推理
使用以下命令运行推理:
python3 generate.py
在 test_wav
文件夹中提供了一个示例歌曲 test.wav
,默认输入路径为 test_wav/test.wav
,重建后的音频输出路径为 reconstruct/test.wav
。
在 generate.py
文件中,实现了多个函数以方便音乐压缩和重建过程。可以使用 sound2code
函数从音频获取压缩后的令牌,并使用 code2sound
函数从令牌重建音频。
资源
- 项目官网:<https://xuyaoxun.github.io/MuCodec_demo>
- GitHub 仓库:<https://github.com/xuyaoxun/MuCodec>
- arXiv 技术论文:<https://arxiv.org/pdf/2409.13216>
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦