声明:本专栏文章为深蓝学院《语音算法:前沿与应用》课程个人学习笔记,更多学习资源请咨询深蓝学院相关课程。
ASR中的序列模型
seq to seq任务的输入输出应当是不同长度,否则可以把每一个时刻的任务都认为是静态分类任务。
可以将许多OCR(手写字体识别)和SMT(机器翻译)算法借鉴过来,因为本质上都是sequence模型。
Attention/Transformer based ASR
模型框架:input->encoder->context->decoder->output,类似NLP任务,NLP任务中在encoder和decoder中间会存在sentence vector,存储句信息。
出现Bottleneck问题:RNN模型难以记住较长的词历史信息。解决办法:Attention。
- 计算出attention scores
- 对attention scores做softmax得到归一化向量alpha
- 使用alpha和输入值做加权求和得到attention输出
机器翻译和ASR的区别:
- 输入和输出序列长度区别,机器翻译基本相同,ASR输入数十倍于输出
- 机器翻译输入为词向量,ASR输入为连续声学信号
Listen-Attend-Spell模型(代码分析看视频)
Encoder:Listener,做多次降采样
Decoder:Speller
和ctc、hmm相比的优点:性能较好,端对端,调参少;缺点:难debug、难streaming decode
Transformer是Attention的一种特殊结构(代码分析看视频)
预训练
NLP:word2vec、ELMo、BERT(可利用无标注语料库)
ASR:BERT-like pretraining