- 2024.9
- 小红书
- demo page
abstract
- AR model: 400M
- DATA: 248k 数据
method
Semantic-Aware Speech Tokenizer
如上图(b)所示,SAST包含【hubert,aoucstic encoder,VQ,decoder】四个模块;train batch 6400 seconds for 300k iterations.
- semantic codec:HuBERT,然后量化,40ms一个token,码本大小16,384;参考Addressing Index Collapse of Large-Codebook Speech Tokenizer with Dual-Decoding Product-Quantized Variational Auto-Encoder 的,使用PQ量化的方式增加码本利用率(实际上和GVQ实现一样)
- speaker emb:ECAPA-TDNN模型,输入音频进行 "Clip&Shuffle"处理,以打乱其中的时序信息;25%-75%的音频,clip成1s的长度,然后随机拼接;【得到的global信息重复&add 到semantic token 上?】
- decoder 重建hubert emedding和mel;
- L s L_s Lshubert emedding重建loss
- L a L_a La重建mel loss
-
λ
v
q
=
1
,
λ
s
=
100
,
λ
a
=
1
\lambda_{vq}=1, \lambda_{s}=100,\lambda_{a}=1
λvq=1,λs=100,λa=1
Token-to-Waveform Generation
- 采用flow-matching based decoder和Streamable Decoder两种结构;还原16k音频,然后用一个超分vocoder,升采样为48k 音频;
- Streamable Decoder:参考MusicGen的方法, delay pattern的方式,N步推理,依次推理K个码本
- 超分vocoder,294 小时的数据训练;参考BigVGAN-V2的方法;
LLM
- text:使用BPE编码
- 30-layer decoder-only Transformer (400M) with a feature dimension of 1024.
- speaker embedding 单独作为一个输入;
Human-like Speech Generation
- emotion control:直接把情感分类【neutral, happy, sad, and angry】,然后插入到输入的prompt序列;speaker embedding是单独提取的,也能做到解耦说话人和情感的作用;
- Paralinguistic control:一共设计了13种副语言
- 预先设计一些副语言的token,比如【 pauses, elongations拖音, repetitions, laughter, and breathing sounds】,直接插入到text seq;
- 对于重叠的副语言信息(比如laughing while speaking),涉及一个专门的embedding layer;在特定词语上进行embedding拼接,达到控制效果;
result
- total: 比cosyvoice好,但是纯英文和中英混的效果不太好;因为数据集设计的稀疏问题
- 1h以上数据finetune LLM,效果比zero-shot 更好;如果用flow-matching的decoder,也会被finetune;
- prompt speech denoise的预处理,对生成结果有显著改善;
- emotion control 任务上,intruct tuning的效果显著优于base。