语音识别技术ASR(一)基本概念
语音识别技术ASR(一)基本概念一、语音识别的基本过程语音识别的输入一般是时域的语音信号,数学上用一系列向量表示(length T, dimension d),输出是文本,用一系列token表示(length N, V different tokens),一般来说,在ASR问题中,输入信号的长度T会大于token的长度N
二、Token的选择Token可以理解为语音和文字之间的一种桥梁纽带,我们听到的语音可以通过AD转化变为数字信号存储,进而以矩阵的形式存储于计算机中,那日常生活中的文字也需要一种转换被计算机所存储使用,ASR问题中,目前主流的token有以下几种:
[*]Phoneme :以声音的基本元素作为Token,不同的单词由不同的音素组成,通过识别输入语音中存在哪些音素进而组合成识别出的文字,这里就存在一个很重要的映射关系表Lexicon,所以这种Token的缺点也很明显,即需要语言学的知识才可以得到Lexicon,而且不同的文献会给出不同的Lexicon
2. Grapheme:以文字书写的最小单位作为token
[*]优点:(1)不需要语言学知识,是Lexicon free;(2)即使遇到了训练过程中没有出现的Token,也可以期待一下会有什么样的结果(手动滑稽)
[*]缺点:(1)使用起来比较有挑战性,很多发音相同但对应Token确是不同,需要比较强的上下文信息,对模型的学习提出了更高的要求,此时面对的是一个更加复杂的问题;(2)以英文举例,有比较大的拼错风险
3. Word:用词汇作为Token,对很多语言来说往往都不太适合,因为Token总数量V会非常大,英文因为有明确的空格作为区分词的方式,V的数量还算可以接受,但中文就很难以词作为Token,同时以土耳其语举例,是可以不断加后缀变成新的词汇的,是无法穷举的,所以像这样的语言,都不适合用word作为Token4. Morpheme:以有富有具体含义的最小单位作为token,是一个介于word和grapheme之间的token,以英文来举例,unbreakable → “un” “break” “able”;rekillable → “re” “kill” “able”那如何来获取一种语言的Morpheme呢?一般有两种途径:
[*]求助语言学家linguistic
[*]统计发现一些模式statistic
5. Bytes:更硬核的Token是直接选择计算机中的byte,很显然吗,这种方式的Token是 language independent
[*][ Li, et al., ICASSP’19] Bo Li, Yu Zhang, Tara Sainath, Yonghui Wu, William Chan, Bytes are All You Need: End-to-End Multilingual Speech Recognition and Synthesis with Bytes, ICASSP 2019
最后,通过对19年语音领域三大会议(INTERSPEECH’19, ICASSP’19, ASRU’19)100+paper的调研统计,得出了目前Token的使用趋势:
[*]Grapheme 41%
[*]Phoneme 32%
[*]Morpheme 17%
[*]Word 10%
三、从输出的角度理解ASR问题
[*]输入语音,直接输出word embeddings
[*]输入语音,在识别的过程中加入翻译过程,直接输出翻译后的结果
[*]输入语音,在识别的过程中加入意图分类的判断,输出意图
[*]输入语音,在识别的过程中加入关键词检测填充,比如一个订票系统,关注的是时间和地点
四、从输入的角度理解ASR问题(Acoustic Feature)
[*]声音处理时有两个基本概念:帧长、帧移
[*]每一帧的声音数据可以有很多种表示方法,举三个例子:
[*]直接拿时域采样点
[*]MFCC
[*]Filter bank output
3. 因为传统语音信号处理中有帧移这个操作,所以每一帧的声音信号其实是有部分重叠的,也就是特性是比较接近的,这个点可以用来挖掘做模型压缩提高性能4. 声学特征可以分为这么几个层级:Waveform->spectrogram->filter bank->MFCC
最后,同样也对19年语音领域三大会议进行ASR任务中语音特征使用的调研,结果如下,MFCC应该会越来越淡出人们的视野
五、ASR任务需要多少数据量?(有文字标注的数据)目前一般会从Librispeech数据集开始,960 hours;Timit数据集相当于CV领域的mnist,有些小的想法可以在这上面先进行验证,看是否work;imagenet换算成语音大概是4096 hours;google和facebook在文献中公布的使用语音数据量是1.3w hours,但实际上使用的应该是这个数字的10倍-20倍
下期预告:ASR的具体算法会从seq2seq和HMM两个角度展开,主要介绍以下几种:
[*]Listen, Attend, and Spell (LAS)
Jan Chorowski, Dzmitry Bahdanau, Dmitriy Serdyuk, Kyunghyun Cho, Yoshua Bengio, Attention-Based Models for Speech Recognition, NIPS, 152. Connectionist Temporal Classification (CTC)Alex Graves, Santiago Fernández, Faustino Gomez, Jurgen Schmidhuber, Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks". In Proceedings of the International Conference on Machine Learning, ICML, 20063. RNN Transducer (RNN-T)Alex Graves, Sequence Transduction with Recurrent Neural Networks, ICML workshop, 20124. Neural TransducerNavdeep Jaitly, Quoc V. Le, Oriol Vinyals, Ilya Sutskever, David Sussillo, Samy Bengio, An Online Sequence-to-Sequence Model Using Partial Conditioning, NIPS, 20165. Monotonic Chunkwise Attention (MoChA)Chung-Cheng Chiu, Tara N. Sainath, Yonghui Wu, Rohit Prabhavalkar, Patrick Nguyen, Zhifeng Chen, Anjuli Kannan, Ron J. Weiss, Kanishka Rao, Ekaterina Gonina, Navdeep Jaitly, Bo Li, Jan Chorowski, Michiel Bacchiani, State-of-the-art Speech Recognition With Sequence-to-Sequence Models, ICASSP, 2018
页:
[1]