最早看到 Delay Pattern 应该是 meta 在 musicgen中提出的,主要就是音频编解码器是RVQ的形式,这个时候怎么利用LLM就会有很多种不同的序列构造方式,当时 musicgen 里面对比了多种方式。总体实验下来 Delay 模式在效果和速度方面得到了一个很好的平衡。
快速提取 DAC 的 Speech Token
DAC:Descript-Audio-Codec(DAC) 是一款“能打的”音频编解码器,主要是鲁棒性比较好,能支持语音、音效、音乐,甚至多人说话、噪声、混响都有不错的重构效果。很多基于 LLM 的语音生成类模型也都用了该编解码器,如parler-tts、Genhancer,还有很多端到端的语音对话模型也是采用了 RVQ 的编解码器,如 Moshi。这里主要是记录一下怎么快速提取 DAC 的 Token供后续模型训练。
Grouped Code Modeling
GCM:Grouped Code Modeling(GCM) 是 Vall-E 2 提出的一种加速模型训练及推理的方法,同时可以使得建模的序列更长。核心观点就是可以将相邻的多个 speech token 合并建模。主要还是 codec 的帧率太大了,原始的 encodec 帧率是75;CosyVoice1 帧率是 50,CosyVoice2 帧率是 25。但是实际上针对语音语义token来说,帧率是10左右就够了。
CLVP
CLVP:一种文本、语音的预训练模型,用来挑选更高质量的语音合成结果。方法类似于图像中的 CLIP。
理解 KV Cache
KV Cache:大模型推理优化的一种常用手段,通过空间换时间的思想,提高推理性能。本篇以 hf版 Llama 来做一个理解。
VQGAN
VQGAN:将图像压缩成离散Token,同时保留图像的绝大部分信息。将VQGAN作用到Mel谱中可以做到更极致压缩;帧率可以控制在 10 左右。LLM可以建模更长的音频。
语音生成大模型系列(三):VALL-E
Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers: 想法和思路与 AudioLM 类似,就是将 Semantic tokens 生成的过程换成了文本输入。然后利用几秒的提示语音获得声学特征,包括音色、韵律、背景环境等。这样就可以做 zero-shot 的语音生成了。VALL-E 利用 EnCodec 作为离散 token 提取和解码模型。VALL-E 有一些后续工作,包括多语音版本VALL-E X,多任务版本Speech X。
语音生成大模型系列(二):AudioLM
AudioLM: a Language Modeling Approach to Audio Generation: 利用 LLM 的思路对语音建模,目的是可以语音续写(就是给一个几秒的语音 Prompt,然后按照这个提示往后续写),实验下来不仅可以进行语音续写,还可以进行钢琴🎹曲的续写。模型主要利用了两个离散化方法,分别是通过 SoundStream 获得 Acoustic tokens,通过 w2v-BERT 获得 Semantic tokens。Semantic token 主要保证续写的长期结构,主要是可懂度; Acoustic token 主要保证续写的声学特征,主要是音色、韵律、背景环境这种。
语音生成大模型系列(一):TorToise TTS
TorToise: Better speech synthesis through scaling,通过利用VQVAE将 mel 谱进行离散化,然后利用 GPT2 的方式自回归生成离散 mel token,再通过扩散模型生成 mel 谱图,最后经过 univnet 声码器得到合成的音频。主要借鉴了 DALL-E 文生图的方法。TorToise 利用了约 5 万小时英文博客和有声书数据进行训练,旨在打造两方面的能力:
- Strong multi-voice capabilities.
- Highly realistic prosody and intonation.
非实时 VC
摘要
非实时语音转换:语音(歌声)转换的开源项目已经很多了,包括so-vits-svc、RVC等。在这里主要想记录一下最近的一些经验。我主要想构建 any-to-many 的语音转换,many提供的数据要尽可能的少(10-20句),同时要保证模型的鲁棒性,即转换之后的可懂度要高、与目标说话人的相似度要高。