20181108 qzd
1. phone和phoneme的区别
phone是音素,言语中实际发出的音;
phoneme是音位,语言中可以区别意思的语音最小单位。
一个语言的音位一般只有几十个,但音素却可以很多.举个例子可能你就懂了:
比如[ai]和[æ],在英语里是两个不同的音位,byte [bait]和 bat [bæt]是两个意思完全不一样的词,而这两个词在发音上只有[ai]和[æ]的区别,所以可以认定这不是同一个音位。但是在汉语里,可以把他俩看成同一个音位,同样的“我爱你”三个字,北京人说起来是[wo ai ni],山东人说起来则更像[wo æ ni],可是意思没有差别,因此在汉语里这只是两个不同的音素,却是同一个音位。
总之,音位和音素的差别关键看改变了之后能否改变意义,能改变意义的就是音位的变化,而不能改变意义的发音差别(可能会很多)都是不同的音素而已。
在语种识别当中,通常用到以下知识源:
Acoustic Phonetics -- 音素知识,包括音素集合phone set和每个phone怎么发音,这部分知识和语音识别中的声学模型相似,对于罕见语种,可以采用ups映射的方式共享音素模型。
Phonotactics -- 音位知识,音素之间搭配的信息,比如汉语的“声母-韵母”结构,不允许"k-s"这样的组合,这部分可以自己写语法规则,也可用n-gram等统计模型,先用lexicon把文本展开成音素序列,再用srilm等工具训练音素模型。
Prosodics -- 韵律知识,比如基音轨迹,能够刻画汉语声调,对于带调语种来说,韵律知识是非常有效的。
Vocabulary -- 语言知识,包括词汇集合和语言模型两部分,语言模型给出了词和词之间的转移概率,一般来说,词汇集合对于LID帮助较大,语言模型用得较少。
2. 音素识别器
语音的语种识别,最多的信息还是来自于语音而不是文本。
首先,不同的语言具有的音素就有很大的不同。
其次,即使是相同的音素,在不同语言中音素的排列方式也有不同。
所以,最简单的语种识别,是对于每种目标语言做一个音素识别器(phone recognizer),哪种语言的音素识别器给出的似然值最大,就判断为哪种语言。
在音素识别器内部,则需要一个acoustic model(每个音素的发音模型)和音素级别的language model(什么样的音素可以与什么样的音素连接)。至于单词级别的language model,用处不大。
网友评论