语音研究中的各种素
语音研究最基本的单位“音素”phoneme
音素是根据语音的自然属性划分出的最小语音单位。从声学性质来看,音素是从音质角度划分出来的最小语音单位。从生理性质来看,一个发音动作形成一个音素。相同发音动作发出的音是同一音素。
音素的分类:
元音和辅音
音素的个数:
英语音素:英语国际音标有48个音素,其中元音音素20个,辅音音素28个。英语字母共有26个,其中有元音字母5个、辅音字母19个、半元音字母2个。因此,音素、字母、音标三位一体教学不仅能解决学生学音素的问题,而且还解决初学英语者学习音标的问题。
汉语音素:音节在语音学上指由一个或数个音素组成的语音结构基本单位。如“普通话”由三个音节组成,可以分析成“p,u,t,o,ng,h,u,a”八个音素。
音节(syllable)
音节是语音中最自然的结构单位。确切地说,音节是音位组合构成的最小的语音结构单位。它的构成分头腹尾三部分,因而音节之间具有明显可感知的界限。
音节是一个比较稳定的实体,因为当语音变得比较快的时候,音素往往会发生改变,但是音节却不变。音节与节奏语调的轮廓有关。有几种方式去产生音节:基于形态学或者基于语音学。音节经常在词汇语音识别中使用。
汉语音节
在汉语中一般一个汉字的读音即为一个音节。普通话常用基本无调音节为400个,有调音节(不包括轻声)为1300多个。
英语音节
音节是读音的基本单位,任何单词的读音,都可以分解为一个个音节朗读。在英语中元音音素发音特别响亮,一个元音音素(音素不是字母)可构成一个音节,一个元音音素和一个或几个辅音音素结合可以构成一个音节。一般说来,元音音素可以构成音节,辅音音素不响亮,不能构成音节。但英语辅音音素中有4个辅音[m],[n],[ng],[l]是响音,它们和辅音音素结合,也可构成音节。它们构成的音节往往出现在词尾,一般是非重读音节。
英语的词有一个音节的,两个音节的,多个音节的,一个音节叫单音节词,两个音节叫双音节词,两个音节以上叫多音节词。如:take是单音节词;ta-ble是双音节词,po-ta-to、po-pu-la-tion是多音节词。
音标
记录音素的符号叫做音标。音素一般用国际音标(IPA)标记。国际音标是国际上通行的一种记音符号,由国际语音协会于1888年制定并公布,后经多次修改。用国际音标记音,用于表示发音上的音素细节时,采用[],用于标记音位则采用//。
国际音标
由国际语音协会规定的一套音标,用来记录世界各主要语言的语音。
开音节
a)辅音+元音+辅音+e
b)辅音+元音
闭音节
a)辅音+元音+辅音
b)元音+辅音
重读音节
单词中发音特别响亮的音节。
元音和辅音的定义
发音时声带振动,呼出的气流通过口腔时不受阻碍,这样形成的语音称为元音。
不论声带振动与否,发音时呼出的气流通过口腔或鼻腔时受到一定的阻碍,这样形成的语音称为辅音。
发音时声带不振动的辅音称为清辅音。
发音时声带振动的辅音称为浊辅音。

senone
Sometimes phones are considered in context. There are triphones or even quinphones. But note that unlike phones and diphones, they are matched with the same range in waveform as just phones. They just differ by name. That’s why we prefer to call this object senone. A senone’s dependence on context could be more complex than just left and right context. It can be a rather complex function defined by a decision tree, or in some other way.
有时候,音素会被放在上下文中考虑,这样就形成了三元音素或者多元音素。但它与亚音素不同,他们在波形中匹配时长度还是和单一音素一样。只是名字上的不同而已,所以我们更倾向于将这样的多元音素称为senone。一个senone的上下文依赖比单纯的左右上下文复杂得多,它是一个可以被决策树或者其他方式来定义的复杂函数。(英语的上下文相关建模通常以音素为基元,由于有些音素对其后音素的影响是相似的,因而可以通过音素解码状态的聚类进行模型参数的共享。聚类的结果称为senone。决策树用来实现高效的triphone对senone的对应,通过回答一系列前后音所属类别(元/辅音、清/浊音等等)的问题,最终确定其HMM状态应使用哪个senone。分类回归树CART模型用以进行词到音素的发音标注。)
语义研究最基本的单位“义素”semanteme
语法研究最基本的单位“词素”/“语素”morpheme
文字研究最基本的单位“字素”,即构字部件或字符,grapheme
模型
模型是用来描述一些数学对象的。这些数学对象描述了一些口语的共同属性。在实际应用中,senone的音频模型就是三态高斯混合模型。简单的说,它就是一个最有可能的特征向量。对于模型,有几个问题需要考虑:模型到底多大程度上可以描述实际情况?在模型本身的局限情况下模型能表现得更优吗?自适应模型如何改变条件?
匹配算法
语音识别需要对所有的特征向量和所有的模型做比较匹配,这是一个非常耗时的工作。而在这方面的优化往往是使用一些技巧,在每一点的匹配时,我们通过保留最好的匹配variants,然后通过它在下一帧产生最好的匹配variants。
声学模型
一个声学模型包含每个senone的声学属性,其包括不依赖于上下文的属性(每个音素phone最大可能的特征向量)和依赖于上下文的属性(根据上下文构建的senone)。
描述一种语言的基本单位被称为音素Phoneme,例如BRYAN这个词就可以看做是由B, R, AY, AX, N五个音素构成的。英语中貌似有50多个音素,可以用50几个HMM state来表示这些音素,这种表示方法就是context independent模型中的单音素monophone模式。然而语音没有图像识别那么简单,因为我们再说话的时候很多发音都是连在一起的,很难区分,所以一般用左中右三个HMM state来描述一个音素,也就是说BRYAN这个词中的R音素就变成了用B-R, R, R-AY三个HMM state来表示。这样BRYAN这个词根据上下文就需要15个state了,根据所有单词的上下文总共大概需要几千个HMM state,这种方式属于context dependent模型中的三音素triphone模式。这个HMM state的个数在各家语音识别系统中都不一样,是一个需要调的参数。所以声学模型就是如何设置HMM state,对于信号中的每一frame抽怎样的特征,然后用什么训练分类器。
用于将声音信号转化为音素序列。它通过分析声音信号的频率、时域和能量来提取特征,并将其映射到音素空间中。
语音学字典(发音字典)
字典包含了从单词words到音素phones之间的映射。
字典并不是描述单词words到音素phones之间的映射的唯一方法。可以通过运用机器学习算法去学习得到一些复杂的函数去完成映射功能。
在语音识别技术中,发音字典也被称为音素字典(phonetic dictionary)或发音表(pronunciation table)。它包含了常用单词的发音信息,每个单词的发音被表示为一系列音素,这些音素构成了该单词的发音。语音识别系统使用发音字典来将语音信号转换为文本,通过匹配输入的音素序列和发音字典中的音素序列来识别出输入的单词。
是一个包含单词及其对应发音信息的表。它将单词映射到音素序列,并提供有关每个音素的发音信息。
语言模型
语言模型是用来约束单词搜索的。它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。大部分的语言模型都是使用n-gram模型,它包含了单词序列的统计。和有限状态模型,它通过有限状态机来定义语音序列。有时候会加入权值。为了达到比较好的识别准确率,语言模型必须能够很好的约束空间搜索,也就是说可以更好的预测下一个词。语言模型是约束词汇包含的单词的,这就出现一个问题,就是名字识别(因为名字可以随便由几个单词组成)。为了处理这种情况,语言模型可以包含更小的块,例如亚单词,甚至音素。但是这种情况,识别准确率将会低于基于单词的语言模型。
是一种基于概率统计的模型,用于预测给定单词序列的概率。它通过分析语料库中的大量文本数据来推断出单词之间的关系,并根据这些关系生成一个单词序列的概率模型。
其他
单词和一些非语言学声音构成了话语utterances,我们把非语言学声音称为fillers填充物,例如呼吸,um,uh,咳嗽等,它们在音频中是以停顿做分离的。所以它们更多只是语义上面的概念,不算是一个句子。
特征、模型和搜索算法三部分构成了一个语音识别系统。如果你需要识别不同的语言,那么就需要修改这三个部分。很多语言,都已经存在声学模型,字典,甚至大词汇量语言模型可供下载了。
网格Lattice是一个代表识别的不同结果的有向图。一般来说,很难去获得一个最好的语音匹配结果。所以Lattices就是一个比较好的格式去存放语音识别的中间结果。
N-best lists和lattices有点像,但是它没有lattices那么密集(也就是保留的结果没有lattices多)。(N-best搜索和多遍搜索:为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源(如声学模型、语言模型和音标词典),产生一个候选列表或词候选网格,在此基础上进行使用代价高的知识源(如4阶或5阶的N-Gram、4阶或更高的上下文相关模型)的第二遍搜索得到最佳路径。)
单词混淆网络是从lattice的边缘得到的一个严格的节点顺序序列。
语音数据库-一个从任务数据库得到的典型的录音集。如果我们开发的是一个对话的系统,那么数据库就是包含了多个用户的对话录音。而对于听写系统,包含的就是朗读的录音。语音数据库是来用训练,调整和测试解码系统的(也就是语音识别系统)。
文本数据库-为了训练语言模型而收集的文本。一般是以样本文本的方式来收集形成的。而收集过程存在一个问题就是误把PDFs, web pages, scans等现成文档也当成口语文本的形式放进数据库中。所以,我们就需要把这些文件带进数据库里面的标签和文件头去掉,还有把数字展开为它们的语音形式(例如1展开为英文的one或者汉语的yi),另外还需要把缩写给扩大还原为完整单词。
随着语音识别技术的发展,最复杂的难题是如何使搜索(也就是语音解码,可以认为是需要匹配尽可能多的语音变体)更加准确和快速。还有在模型并不完美的前提下如何匹配语音和模型。
一般来说系统需要通过一个测试数据库来验证准确性,也就是是否达到了我们的预定目标。
我们通过以下几个参数来表征系统的性能:
单词错误率:我们有一个N个单词长度的原始文本和识别出来的文本。(对单词串进行识别难免有词的插入,替换和删除的误识)I代表被插入的单词个数,D代表被删除的单词个数,S代表被替换的单词个数,那么单词错误率就定义为:WER = (I + D + S) / N
单词错误率一般通过百分百来表示。
准确度。它和单词错误率大部分是相似的,但是它不计算插入单词的个数,它定义为:Accuracy = (N - D - S) / N
对于大部分任务来说,准确度事实上是一个比较差的度量方法,因为插入的情况对于识别结果的影响也是很重要的。但对于一些任务而言,准确度也是一个合理的评价解码器性能的参数。
速度:假设音频文件是2个小时,而解码花费了6个小时,那么计算出来的速度就是3xRT。(3倍速)
ROC曲线:对于一个检测任务,检测会出现误报和命中两种情况。ROC曲线就是用来评价检测性能的。ROC曲线就是描述误报和命中的数目比例的。而且可以通过ROC曲线取寻找一个最优点,在这个点误报最小,而命中最大,也就是接近100%的命中率。
还有其他的方法来衡量识别性能,虽然这里没有提及,但对于很多的实际应用来说还是比较重要的。你的第一个工作应该是建立这样一个评价体系,然后系统地应用到开发过程中。第二个工作就是收集一个测试数据库来测试你的系统性能
参考链接:说说“字素”Grapheme
创建于2023.3.15/11.21,修改于2023.4.10/12.48