总览
是靠数据量出圈的,有大量的不是那么干净的标签。
这种弱监督的ASR这样更加接近生活中(比如说有噪音)
much larger but weakly supervised datasets significantly improves the robustness and generalization of models
无监督预训练音频编码器质量高——但缺乏一个相当高质量的预训练解码器
Approach
- 数据清洗——基于启发式规则(heuristics)检测到机翻就删去、删去low-quality的数据等等
- Model部分:
采用transformer的enc-dec的结构
- Encoder:将语音(log-mel spectrogram)编码成音频特征序列
- 输入是 30 秒的 log-mel(20ms resolution)
- 只吃音频,不吃 token
- 输出高维音频特征序列
- Decoder:像 GPT 一样自回归生成文本并且使用特殊 token 控制语言、任务(翻译?转录?时间戳?)
- 使用 cross-attention 读取 encoder 的音频特征
- 加入了特殊的token,e.g. ,99个代表语言的,还有<|transcribe|><|translate|><|nospeech|><|notimestamps|>等等控制decoder行为的token
- 时间戳:限制在20ms(和输入的log-mel spectrogram一致,这样把时间信息也当作token来学习,使得**时间和语音对齐?**时间戳 token 精度 20ms,但只有在段落开始/结束生成 时间戳token,不是每帧都生成。
- 每次chunk都是30s,句子可能跨 chunk(前半句在前一个块,后半句在下一个块)Whisper 的时间戳对齐算法就是用来处理这种情况,保证:不丢词、不重复、不中断句子、时间戳连续、正确
- Encoder:将语音(log-mel spectrogram)编码成音频特征序列
- 分析部分(有点像打补丁):
- 提到的各种任务对data scaling的敏感度不一样
- heuristics:一个窗口中的转录不准确可能会对后续窗口的转录产生负面影响;使用beam search,动态调整temperature;若温度 < 0.5,加入前一段的文字作为条件;更可靠的VAD规则避免误切
- Whisper 未来主要要解决:解码不稳定、低资源语言差距大、没做微调、不清楚鲁棒性来源、没有利用自监督这些现代技巧。