语种辨识

语种辨识
语种辨识

1语言辨识的基本概念

自动语言辨识(又称语种识别),是计算机分析处理一个语音片段以判别其所属语种的技术。随着当前全球合作的增长,各种余元之间的通信要求增加,这就对自动语言识别提出新的挑战,在机械能够懂得语言含义之前,必须辨别使用了哪种语言。自动语言辨识的任务在于快速准确的辨识出所使用的语言,目前它已经成为通信和信息领域一个新的学科增长点。自动语言辨识技术的学术特点在于它横跨技术的融合。对它的研究,不仅需要掌握信息理论和技术,而且需要具有多种信息处理的手段和方法。众所周知,语音中包含着多种信息,从语音中提取不同的信息进行处理也就形成了不同语言处理方法。从内容上分,语音中包含着所属语言种类的信息、说话内容的语义信息和说话人个体特征,因此从识别的角度来说,我们可以利用从语音中提取的这些信息进行识别,语音信息的识别可以分为语音识别、语言辨识和说话人识别。语音识别中要提取出包含在语音信号中的字词意思和言语内容,说话人识别则是从语音信号中获取说话人的身份,语言辨识是从语音信号中提取出包含的语言的种类(或方言的种类)。与语音识别和说话人识别不同的是,语言辨识利用的是语音信号中的语言学信息,而不考虑语音信号中的字词意思,不考虑说话人的个性。

语种识别在信息检索和军事领域都有很重要的应用,包括自动转换服务多语言信息补偿等。在信息服务方面, 很多信息查询中可提供多语言服务, 但一开始必须用多种语言提示用户选择用户语言。语种辨识系统必须预先区分用户的语言种类, 以提供不同语言种类的服务。这类典型服务的例子包括旅游信息、应急服务、以及购物和银行、股票交易。例如 AT&T 向处理 911 紧急呼救的社会机构和警察局推出语言热线服务。图 1 说明了两个讲不同语言的人是如何通过一个多语言话音系统进行交流。自动语言辨识技术还能够用于多语言机器翻译系统的前端处理, 当对大量录音资料进行翻译分配时, 需要预先判定每一段语音的语言。随着信息时代的到来以及国际因特网的发展, 语言辨识越来越显示出其应用价值, 国际上也一直进行着卓有成效的研究和系统开发。

图1 不同语种说话人交流系统

与语音处理的其他领域相比, 自动语种识别是一个相对较新的领域。尽管在某些方面, 其类似于自动语音识别、说话人识别和声调检测, 但所有这些任务之间的差别很大。理论上来讲, 不同语言之间的差别是多方面的, 而且差别较大。尽管在各种层次上都可以找到这些差别( 如, 音素目录, 音素的声学实现, 词汇, 音位结构规律性和词法等等) , 由于在任何层次上都不存在可靠的算法, 因此可靠的语言辨识仍旧是一个难题。

2.语言辨识的发展

自动语言辨识的研究可以追溯到20世纪70年代,与语音识别的其它方向相比较,自动语言辨识进展较为缓慢,在1993年之前的20多年里用英语发表的文献中,只能找到14篇有关自动语言辨识的研究。这些研究的语音数据的种类覆盖了从文本的标音法和实验室语音到电话和无线电广播语音的范围。语言的种类从3种发展到20种。语言辨识的方法使用过

每种语言的“参考语音”、基于音段和音节的马尔可夫模型、基音轮廓、共振峰矢量、声学特征、方言性的音素和韵律特征、及其原始的语音声波特征。使用过的分类方法包括HMM、专家系统、聚类算法、二次分类、以及人工神经网络。俄勒冈科学技术研究院的多语种电话语音数据库(简称OGI-TS)是为进行自动语言辨识研究专门设计的。目前它是由11种语言的发音流畅的、固定词汇的语音数据所组成。这些语言是英语(English)、波斯语(Farsi)、法语(French)、德语(German)、北印度语(Hindi)、日语(Japanese)、朝鲜语(Korean)、汉语(Chinese)、西班牙语(Spanish)、泰米尔语(Tamil)和越南语(Vietnamese)。这些发音由每种语言的90个持母语的人在实际电话线路上产生。发音的时长从1秒到50秒长短不等,平均13.4秒。 OGI-TS的出现重新激发了人们对自动语言辨识研究的兴趣。1993年美国国家标准技术研究所(NIST)将OGI-TS设计为自动语言辨识评估的标准,自动语言辨识技术的研究和应用在学术界和企业界开始受到关注,一些重要的有关语音的国际学术会议上相关的学术论文数量迅速增加,并且这些会议上还设立了交流语言辨识研究的分会场。同时,在开发相关技术产品方面开展了一些国际研究项目,国际标准化组织也就该技术研究开展了评估工作。进入90年代中期,麻省理工的Lincoln实验室,美国电话电报公司(AT&T),俄勒冈科学技术研究院,美国国际电话电信公司(ITT),美国Rensselaer理工研究所,Locakheed- Sanders工程公司等八个开展语言辨识研究的基地也相继发布了他们的研究成果。

3语言辨识的原理

自动语言辨识是属于人工智能领域的一项技术,本质上讲,语言辨识技术是一个语音信号模式识别的问题,它由训练和识别两个阶段完成。从各种语言的训练语音中提取每种语言特征建立参考模型并存储的过程称为训练阶段;从待识别语音中提取语言特征,依据参考模型进行比较和判决,对语音段的语言种类进行判断的过程称为识别阶段。图3.1为语言辨别系统的典型结构图,从图中可以看出,一个完整的语言辨识系统包括预处理模块、特征提取模块、模型建立模块、模式匹配模块和判决模块。

图3.1 语言辨识系统的结构框图

预处理模块可以对语音信号进行转换,使之更适合计算机处理,并符合特征提取的要求,其中包括语音信号数字化,预加重和加窗处理。

特征提取则需要从经过预处理的语音信号中提取出能够反映语言特征的参数。究竟用语音信号的哪些特征或特征变换来表征语言才是有效可靠的,这涉及到对人是如何通过听声音来识别各种语言的这一过程的理解,而这一点很难在近期得到解决。而且,在语音信号中,通常说话人的特征、说话内容的语义信息比语言特征表现的更为明显,从这个角度而言,语言特征受到这些原因的影响更为弱化,不易提出。多年来人们对特征参数在语言辨识系统中的有效性进行了大量的验证和研究,这些特征参数大体分为三类,线性预测系数及派生参数、由语音频谱直接导出的参数以及混合参数。线性预测参数及其派生参数包括线性预测系数、线谱对系数、线性预测倒谱系数(LPCC)及其组合等参数;由语音频谱直接导出的参数,如基音(Pitch)及其轮廓、美尔频谱倒谱系数(MFCC),感知线性预测(PLP)参数和口音敏

感倒谱系数(ASCC)等。

需要指出的是,上述的参数不仅可用于语言辨识,它们也是说话人识别,关键字检出和连续语音识别中的常用参数,因此,现有的特征提取方法并不针对语言辨识,而是一种通用方法,这样,提取的特征也不能很好的反映各种语言独特的信息。此外,一个面向应用的语言辨识系统会遇到许多实际的情况,比如传输信道带来的信号畸变的影响、环境背景噪声的影训练与识别环境不同带来的影响等等,这些都给语音特征参数的研究带来了挑战。

模型建立是指在训练阶段用合适的模型来表征这些特征参数,使得模型能够代表该语言的语音特性。对模型的选择主要应从语音的类型、所期望的功能、训练和更新的难易程度以及计算量和存储量等方面综合考虑。当前有多种模型可供选择,一般可分为模板匹配、概率生产模型和判别模型等。按照不同的模型和特征列出如图3.2的语音辨识系统框图。

模板匹配模型典型的例子有最邻模型(Nearest Neighbor,NN)模型,动态时间规整(Dynamic Time Warping,DTW)模型和矢量化(VQ)模型。模板匹配模型的不足之处在于不能全面地反映样本分布及统计特性,适应性差,因此语言辨识应用有限。概率统计生成模型是指采用某种概率密度函数来描述各种语言的语音特征空间的分布情况,并以该概率密度函数的一组参数作为语言的模型。典型的有隐马尔可夫模型(HMM)、高斯混合模型(GMM)。概率统计生产模型由于考虑了语音的统计特征,因此能较全面地反映每种语言的统计信息。

在识别阶段,用训练阶段建立的语言模型对测试语音的特征参数进行某种形式的模式匹配,从而得出相似性得分:判决模块根据该相似得分并依据特定的规则给出最终识别结果。

对于模块匹配模型,比较J模块和测试语音X的距离,距离最近的模板种类则判决为该测试语音的语言种类,即

(3.1)其中,错误!未找到引用源。为第j种语言的模板。

对于概率生成模型,判决规则为J个模型中的哪个模型对X产生的后验概率最大,就判决测试语音X属于哪种语言,即

(3.2)

其中,错误!未找到引用源。为第j种语言的概率生成模型。假定错误!未找到引用源。,即每种语言出现的先验概率为等概率,且因P(X)对每种语言是相同的,上式可简化为

(3.3)对于判决模型,判决时就是看属于哪一类可能性最大。分类器通常具有J个输出,分别对应于J种语言模型。给定输入语音特征序列,具有最大输出值的输出所对应的语言即为所求。对于当J比较大时,训练具有J个输出的判别模型非常复杂,训练量也变得非常大。因此对于多类的分类问题,常常转化为多个两类问题的组合问题,而且对于两类问题往往更适合用判别模型解决。

4.语言辨识系统的举例(基于VQ的语言辨识系统)

4.1特征提取

我们对语音信号进行 8kHz 采样,以 22.5毫秒为一帧进行参数化提取特征参数。我们这里采用了 3 种倒谱参数和相应的差分倒谱参数,每一帧计算 24 维的特征向量,12维的倒谱参数和 12 维的Delta 倒谱参数。这3种倒谱参数分别为: LPCC 参数、MFCC 参数和 ASCC 参数。Delta 特征的计算如式( 1) 所示: 当 i 从 1 到 12( 分析阶数) ,

(1)

上式中, dCep表示 delta 特征, Cep表示倒谱, 错误!未找到引用源。 ( = 0.2) 用来换算这些特征。

美尔倒谱系数又称 MFCC, 是语音识别提取的另一类参数。MFCC 不同于 LPCC, 它是采用滤波器组的方法计算出来的, 这组滤波器在频率的美尔(Mel) 坐标上是等带宽的。这是因为人类在对约1000Hz 以上的声音频率范围的感知不遵循线性关系, 而是遵循在对数频率坐标上的近似线性关系。

语音信号在经过加窗处理后变为短时信号, 用FFT 计算它的能量谱。之后, 通过一个具有 40 个滤波器( K = 40) 的滤波器组。前 13 个滤波器在1000Hz 以下是线性划分的, 后 27 个滤波器在1000Hz 以上是按美尔坐标上线性划分的。

如果错误!未找到引用源。表示第 k 个滤波器的输出能量, 则美尔频率倒谱错误!未找到引用源。在美尔刻度谱上可以采用修改的离散余弦变换(DCT) 求得:

n= 1, 2, …, P (2)

类取代空胞腔。然后以这个初始码本为基准, 利用标准 VQ 方法求得每个语言的码本。其中, P 为 MFCC 参数的阶数。外语口音语音的频率分析研究表 明, 中频段1500Hz~ 2500Hz 对口音分类的影响最大, 并提出了一种新的口音敏感刻度, 在这种标度下计算的参数就是口音敏感参数 ASCC( Accent Sensitive Cepstrum coefficient) 。与 MFCC 相同, 信号的能量谱, 经过16 个滤波器组成的滤波器组, 滤波器在 频率上的划分是按照口音敏感刻度划分的。口音敏感刻度及滤波器的中心频率如图 4.1 所示。相应的倒谱参数也是用修改的离散余弦变换求得, 如图2式所示。

中心频率(Hz )

幅度

0 1 2 3 4 频率(Hz )

图4.1 口音敏感频率标度及其三角滤波器的中心频率

4.2矢量量化直方图法

该算法基于标准的矢量量化方法(VQ)。每种语言 k 形成自己的 VQ 码本 Vk , 在识别阶段,输入语音用码本 Vk 进行量化,计算出累计量化误差 dk, 累计量化误差最小的语言即为识 别出的语言。过程见图 4.2。

图 4.2 矢量量化进行语种识别的框图

在训练阶段, 初始码本采 用了分裂法进 行设置。设有矢量空间 S , 先求出 S 空间的质心, 在 S 中找一个 与此质心畸变最大的向量 Xj , 然后在 S 中找一个与X j 误差最大的矢量 X k 。以 X j 和X k 为基准进行划分, 得到 S k 和 Sj 两个子集。这两个子集分别按同样方法处理就得到 4 个子集。以此类推, 若 M= 2 ( B 为整数) , 只要进行 B 次分裂就可以得到M 个子集, 最终形成初始码本。在初始码理, 即选择元素数最多的子类分裂成两类, 其中一类取代空胞腔。然后以这个初始码本为基准, 利用标准 VQ 方法求得每个语言的码本。

复选题目:

语音倒谱与复倒谱分析应用的MA TLAB实现。

复倒谱算法(最小相位信号法)

最小相位信号法是由最小相位信号序列的复倒谱性质及Hilbert变换的性质推倒出来的。设信号x(n)的Z变换X(Z)=N(Z)/D(Z),则有

错误!未找到引用源。

根据z变换的微分特性有

如果x(n)是最小相位信号,则N(z)和D(z)的所有根均在z平面的单位圆内;同时,由上式可知,此时nx(n)的z变换的所有极点也位于z平面的单位圆内。

另外,由Hilbert变换的性质可知,任一结果的复倒谱序列错误!未找到引用源。都可以分解为偶对称分量错误!未找到引用源。和奇对称分量错误!未找到引用源。之和,即

其中

而且,这两个分量的傅立叶分别为错误!未找到引用源。的傅立叶的实部和虚部。

可得

错误!未找到引用源。=错误!未找到引用源。

引入辅助因子g(n),可改写得

错误!未找到引用源。

其中

g(n)=错误!未找到引用源。

根据以上原理,可以画出最小相位求复倒谱的框图如下所示。由倒谱c(n)的定义,可以看出图中错误!未找到引用源。的偶对称分量错误!未找到引用源。(n)即为c(n)。

本实验所用的语音样本是在室内录下的男生“北京”,采样频率为8KHz单声道

clear all;

%倒谱

[s,fs,nbit]=wavread(‘beijing.wav’); %读入一段语音

b=s’; %将s转置

x=b(5000:5399); %取400语音

N=length(x); %读入语音的长度

S=fft(x); %对x进行傅立叶变换

Sa=log(abs(S)); %log为e的底的对数

sa=ifft(Sa); %对sa进行傅立叶逆变换ylen=length(sa);

for i=1:ylen/2;

sal(i)=sa(ylen/2+1-i);

end

for i=(ylen/2+1):ylen

sal(i)=sa(i+1-ylen/2)

end

%绘图

figure(1);

subplot(2,1,1);

plot(x);

axis([0,400,-0.5,0.5])

title(‘截取的语音段’);

xlabel(’样本点’);

ylabel(’幅度’);

subplot(2,1,2);

time2=[-199:1:-1,0:1:200];

plot(time2,sal);

axis([-200,200,-0.5,0.5]);

title(‘截取语音的倒谱’);

xlabel(‘样本点’);

ylabel(‘幅度’);

相关主题
相关文档
最新文档