总览

  • 是靠数据量出圈的,有大量的不是那么干净的标签。

  • 这种弱监督的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 的时间戳对齐算法就是用来处理这种情况,保证:不丢词、不重复、不中断句子、时间戳连续、正确
  • 分析部分(有点像打补丁):
    • 提到的各种任务对data scaling的敏感度不一样
    • heuristics:一个窗口中的转录不准确可能会对后续窗口的转录产生负面影响;使用beam search,动态调整temperature;若温度 < 0.5,加入前一段的文字作为条件;更可靠的VAD规则避免误切
  • Whisper 未来主要要解决:解码不稳定、低资源语言差距大、没做微调、不清楚鲁棒性来源、没有利用自监督这些现代技巧。

whisper出圈的是数据量——更强的泛化、还有multitask