abstract
audioCodec可以将音频量化,从而复用LLM结构,但是大部分高质量的Codec码率都比较高,不利于模型训练收敛,计算开销也很大。本文的目的是提出一个低比特率 & 高质量的Codec。
提出SemantiCodec,支持三种比特率,25/50/100;使用两个encoder:
- semantic encoder,使用自监督的AudioMAE,+ kmeans 聚类;基于大数据得到聚类,分类准确度有95%。
- acoustic encoder,捕捉剩余的细节信息,可学习的VQ方法得到聚类,目的是补充语义之外的信息,帮助高精音频还原;
- 两种VQ特征拼接之后,作为LDM的condition input,还原高保真音频。
VQ训练的小trick
- 【知乎实验结论分享】个人感觉最立竿见影的就是用K-means重新初始化codebook。每隔一段时间初始化一次,保证codebook里每一个向量都在分布之内,不至于完全训练不到。
background
- LLM的相关实验表明,更细粒度运行的分词器会有助于模型理解,比如BPE优于character-level tokenizers。然而作者对比现有的audio codecs发现,即使码率很高,并没有有效捕捉足够的语义信息。
- 作者进行实验:在HEAR benchmark 上对比 【6.0 kbps Descript codec】和没有finetune的AudioMAE encoder,前者平均准确度只有33%,后者有65%。使用Descript codec第一层编码的结果,通常认为更多包含语义信息,平均准确度只有24%,语义信息的缺失会有碍audio LLM的建模。
- (operating at a higher level of granularity, such as byte pair encoding [21], could substantially outperform character-level tokenizers, which often require the model to expand more capacity for understanding.)
- HEAR benchmark:2021 NIPS 公开挑战赛的一个项目,用于比较不同模型提取的embedding在各种音频下游任务的性能区别。大概实现方法是:先提取音频embedding,训练一个简单的net,使用HEAR benchmark已经开发完的下游任务测试代码,测试比如pitch/语义等信息准确度。