git:https://github.com/alibaba-damo-academy/FunCodec
文章目录
- model arch
- AudioTokenizer
- model init
model arch
- text-embedding 用千问的模型参数初始化;AudioEncoder用asr-conformer的参数初始化;所有的参数都参与更新,除了CodecVocoder;
- 输入(连续特征):【input embedding, taskID】
- 输出(离散特征):【output tokens】,task token在输入和输出矩阵中都有;(N + M + L) × D的结果,N-text_token;M:audio_token;L:task_token
- 计算loss的时候,mask output token中的input token & task token;
AudioTokenizer
- 16khz的音频通过卷积压缩为25hz(40ms);conv:[8, 5, 4, 2, 2],
- 更多的RVQ改善语音质量,并且shallow quantizers中有更多的信息;
- AudioTokenizer = encoder+1st quantizer,1st quantizer的输出是audio token,audio token只作为GPT的输出使用,输入是连续的embedding;剩余的量化器&decoder只在训练阶段使用;
model init
-
- text-embedding 用千问的模型参数初始化;AudioEncoder用asr-conformer的参数初始化;所有的参数都参与更新,除了CodecVocoder;
- 初始化是否真的有用处?
- 附录B2对比了在ASR/S2TT/SE任务有无初始化的效果,发现ASR/S2TT初始化有明显提升,SE任务初始化效果区别不大;
- 使用的是NLP-LLM初始化,更多有助于文本生成任务;对于音频生成任务,可能用audio token训练过的会更有效;