© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
图 1 安装连接图
类传真机、计算机等) 。
ISDN 终端可直接连到
网络终端 N T 上 ,非 ISDN 终端必须经过适配器进
行适配后才能接到网络终端 N T 上。针对不同类型
的终端设备 ,适配器又分为两类 :模拟适配器 (如图
1 中适配器 A ,用于适配模拟终端设备如普通话机、
G3 类传真机)和数模混合适配器 (如图 1 中适配器
B ,用于适配模拟或数字的非 ISDN 终端设备) ;此
外 ,计算机虽然是数字终端设备 ,但它不是标准 IS2
DN 终端设备 ,因此也要经过适配后才能接到网络
终端 N T ,对它的适配可以有两种不同类型的设备 :
ISDN PC 卡 (如办公室 A 和办公室 C) 或数模混合
适配器 (如办公室 B) 。
一线通以其网络的先进性、业务的综合性、通信
的高可靠性以及低廉的费用逐渐成为电信领域的一
朵奇葩。上海邮电目前已正式对外开放此项业务 ,
已与北京、广州、南京、香港、澳门、台湾、英国、新加
坡、日本实现互连 ,美国、德国等方向也即将开通。
用户若需使用一线通业务 ,可以在电信业务受
理处申请 ,或拨打电话 8666 申请。如果号线具备 ,
用户一个月内将可以使用一线通。
第 7 讲 语音识别及其 DSP 实现
厦门台洋电子有限公司上海分公司 (上海 200030) 孙张南
1 概述
长期以来 ,人们一直希望有这样的一种能够与
人类进行正常的语言交流机器 ,它能够听懂你说的
话。早在本世纪五十年代 ,美国的贝尔实验室就开
始进行这方面的研究。此后 ,英国和日本的工程师
们也先后加入到这研究行列。实际上 ,要实现语言
的自动识别并非易事。首先 ,世界上有几千种语言 ,
每一种语言都有其特点。第二 ,每个人说话都有其
特定的方式。第三 ,即使同一个人说同样一个词前
后两次也有差别。最后 ,在不同的环境下 ,由于噪声
的不同影响要达到正确识别也非常困难。因此 ,现
在所说的语音识别系统一般都有其约束条件。首
先 ,现在的语音识别系统都是针对某种特定的语言 ,
就是对英语也分美国英语和英国英语。此外 ,从词
汇量大小的角度一般分为三种 :小词汇量 (100 个词
以下) ,中词汇量 (100~1000 个词) ,大词汇量 (1000
个词以上) ;从训练和识别人的角度可分为与人有关
(训练和识别为同一人) 和与人无关 (训练和识别不
同人)两种 ;从说话方式可分为连续词识别和孤立词
识别。由于语音识别的算法比较复杂 ,其所需设备
太贵而无法大量生产。随着 DSP 技术的发展 ,使得
一些算法相对较简单的语音识别系统的廉价实现成
为可能。现在已经有带口授拨号的电话机、手机及
《电子技术》1998 年第 4 期 (183) 39
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
口授打字机等产品。例如美国 TI 公司就用
TMS320C2X和 TMS320C5X 实现了与说话人无关
的语音识别系统 ,并用于手机的自动拨号。语音识
别发展及应用的前景相当乐观。
2 语音识别的基本原理及过程
语音识别属于模式识别 ,它与人的认知过程一
样 ,语音识别分为训练和识别两个过程。在训练阶
段 ,语音识别系统对人类的语言进行学习 ,学习结束
把学习内容组成语音库存储起来 ;在识别阶段就可
以把人们当前输入的语音在语音库中查找相应的词
义或语义。从信号处理的角度 ,任何一个语音识别
系统都可以如图 1 来表示。下面分别介绍每个框图
的作用。
图 1 语音识别系统框图
2. 1 前端处理( Analysis System)
在语音识别系统中 ,前端处理的主要作用是对
输入的语音进行
,提取出包含语义的语音参量。
此外 ,在孤立词识别中 ,前端处理还包括语音的端点
检测。一般情况下 ,直接的语音波形信号由于包含
太多的说话人特征和噪声等冗余信号 ,与人的听觉
特征也不符合 ,并且数据量太大不利于词库的存储 ,
因此波形信号不适合作语音识别的特征信号。前端
处理的信号处理
如图 2 所示。
图 2 前端处理的方框图
2. 2 模型训练( Pattern Training)
语音模型现在流行的有三种 : 动态规划
(D TW) 、隐马尔可夫 ( HMM) 和神经网络 ( Neural
Network) 。语音库中可以以每个词为一个模型 ,也
可以以音素等为模型。在中小词量的识别系统中 ,
一般以词为单位的较多 ;在大词汇量的情况时 ,多以
音素为单位。语音识别的
主要以语音模型的不
同来区分 ,上述三种方法在下节中详细介绍。
2. 3 模型识别( Pattern Classif ier)
在识别阶段 ,前端处理后的语音特征参量进入
该模块 ,根据不同的识别模型相应与词库中每个模
型计算逻辑距离。
2. 4 判决逻辑( Decision Logic)
在这个模块中确定识别的判决方式并最后确定
识别结果。根据不同的语音识别系统的类型 ,判决
逻辑有简有繁。对于连续词的识别 ,该模块还完成
词的上下文关联及语法判决。
3 三种语音识别方法的介绍
3. 1 动态时间校准法( DTW)
早期的语音识别算法主要是针对孤立词的 ,实
际是将多组的标准语音参考样本的特征参数与输入
的测试语音特征参数做失真度的测量 ,进而从中找
出失真量最小的一组当作识别的结果。此时在语音
库中存储的是每个词的一个标准语音样本 Rv =
{ Rv ( m) | m = 1 ,2 , . . . , M } , v = 1 ,2 , . . . , V , 当
输入语音样本 T = { T ( n) | n = 1 ,2 , . . . , N } 时 ,
计算 T 与 R v 失真度就能得到识别结果。我们可
以看到 ,当 M = N 时 ,即测试语音样本长度与参考
样本长度相同时 ,计算就非常简单。但是 ,在实际情
况下 ,输入的测试语音与标准语音在时间上的偏移
和变化是相当大的 ,因此 ,上述假设不切实际 ,同时
输入声音的持续时间不同 ,也就是说最小失真对比
的路径不是直线 ,而是必须考虑局部的失真度与时
间上的对应问题 ,然后取得整体的最小失真量。至
于如何解决这个问题 ,有一种有效的方法称为动态
规划 (DP) 。DP 本身是一种最优化算法中常用的技
巧。经过语音识别研究者的不断改进 ,证明 DP 是
一种很好的方法。如图 3 的一个多级的有向加权图
图 3 多级有向加权图
形 ,假设希望从 S 到 T 找其最短路径 d ( s , t ) 。其中
连接两顶点的边上所标的加权值表示距离。乍看之
下 ,或许以为 S →A →D →T 这条路径最短 ,因为直
觉上在第一步由 S 出发至 A , B 或 C 的三条路径 , S
→A 最短 ,则 d ( s , t | s , a , d , t ) = 2 + 5 + 10 = 17。
然而最短路径却是 S →C →F →T , d ( s , t | s , c , f , t )
= 5 + 4 + 3 = 12 ,这才是我们要的最短路径。而这条
路径可以通过 DP 原理来作合理的解决。在上述
DP 方法中考虑的是最短距离问题 ,而在语音识别中
考虑的是最小整体失真量问题 ,实际上是一致的。
40 (184) 《电子技术》1998 年第 4 期
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
由于 D TW 本身的学习能力较差 ,单独使用时
一般只能用在与人有关的情况下 ,并且词汇量不能
太大。但是 D TW 作为一种解决最佳路径选择的方
法却得到了广泛的应用 ,如与 HMM 方法相结合 ,能
较好的完成连续语音的识别。
3. 2 隐马尔可夫过程法( HMM)
用 HMM 方法实现语音识别是利用语音的统计
特性 ,我们可以为每个词建立一个 HMM 模型 ,也可
以为每个音素建立一个 HMM 模型 ,后者主要用于
大词汇量的识别。这里我们以词为单位建立 HMM
模型。如果有 V 个词 ,在训练阶段 ,我们建立 V 个
相应的 HMM 模型组成一个词库 ;在识别阶段 ,根据
输入语音矢量通过这 V 个 HMM 模型计算出 V 个
概率 ,我们认为最大概率的词为识别结果。
3. 2. 1. HMM 模型的组成
由隐马尔可夫过程的数学模型我们知道 ,一个
隐马尔可夫过程实际上是由一个状态序列的链组
成。一个 HMM 模型定义为 r = ( A , B , U ) 。设
HMM 中状态个数为 N , qt 表示 t 时刻的状态 ,显
然qt [ 1 ,. . . , N ]。状态转移概率分布用 A = {aij}表
示 ,其中 aij为 t 时刻状态为 i 而 t + 1 时刻状态为 j
的概率。
aij = P[ qt + 1 = j | qt = i ] ,0 < i ,j < N + 1 ,
(1)
O = {ot} , t = 1 ,2 ,. . . , T ,表示 T 帧语音矢量 ,ot 经
过一个 M 维矢量量化器量化为 vt ,vt = 1 ,2 ,. . . M 。
观察概率分布用 B = { bj ( k) }表示 ,其中 bj ( k) 为 t
时刻处于 j 状态时语音矢量为 vk 的概率。
bj (k) = P[ot = vk | qt = j ] ,0 < k < M + 1
(2)
最后一个 HMM 参量是初始状态概率分布 U =
{ ui} ,其中 ui = P[ q1 = i ] ,0 < i < N + 1。在 HMM
中 , B 是观察概率分布 ,与 HMM 模型的结构无关 ,
而 A 和 U 则与 HMM 模型的结构有关。在先验知
识不足时我们当然可以用全转移模型 ,即一个状态
可以转移到任何状态而不加任何约束。但是 ,人们
通过大量的实验发现 ,全转移模型并非是最佳 ,现在
人们常用一种自左到右的模型 ,如图 4 所示是一个
4 状态自左到右模型。
图 4 4 状态自左到右 HMM 模型
3. 2. 2. HMM 模型的训练
在初始时可以随机产生一个 HMM 模型 r0 =
(A0 ,B0 ,U0) ,当有一个训练语音序列 O = {ot} ,t =
1 ,. . . , T 输入时重新估计 A ,B ,U 的值。其中
ui = 在 t = 1 时刻为状态 i 的期望值 : (3)
aij = 从状态 i 转移到 j 的期望值处于状态 i 的期望值 (4)
bj (k) = 在状态 j 的观察信号的量化值为 vk处于状态 j 的期望值 (5)
3. 2. 3. 用 HMM 模型进行识别
在识别时只要计算概率值 p = P [ O | r ]就行
了 ,如果有 V 个 HMM 模型 ,则有 V 个 pv , v = 1 ,
2 , . . . , V ;设 pv 3 = max ( pv , v = 1 , 2 , . . . , V ) ,则
第 v 3 个词就是识别结果。
3. 3 神经网络法( ANN)
人工神经网络 (ANN) 本身是一门高度综合的
交叉学科 ,它的研究和发展涉及生理科学、数理科
学、信息科学和计算机科学等众多的学科领域。该
学科的出现比语音识别要早。当人们开始研究语音
识别时就想到了用人工神经网络的方法 ,但是在当
时 ANN 本身的发展有限 ,人们通过一定时间研究
后发现 ANN 并不适合用于语音识别。直到 80 年
代后期 ,随着对 ANN 的深入认识 ,ANN 又应用到
语音识别的领域。
人工神经网络本身有许多种不同的网络类型 ,
其中有一种以连接模型为框架的多层认知 ( Percep2
tion)网络经常被用在语音识别上。图 5 所示为三层
的神经网络 ,分别为输入层 ( Input Layer) ,隐含层
(Hidden Layer) 及输出层 (Output Layer) 。每一层
由为数不等的认知
( Process Element ,PE) 组成 ,
而每个层与层之间的 PE 又以不同的加权值
(Weight) wij 连接。每一个 PE 本身又是由数目不
等的输入单元连接而成 ,如图 6 所示。在图 6 中还
图 5 三层人工神经网络
图 6 神经元的输入输出关系
《电子技术》1998 年第 4 期 (185) 41
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
示出了一个 PE 的输入输出关系 ,每个 PE 将连接到
它的所有输入乘上相对应的加权后相加 ,并通过一
个激励函数 f 输出 ,该输出值再传入网络的下一
层。函数 f 常用的有两种 ,如图 7 所示。
图 7 神经元的激励函数
运用人工神经网络进行语音识别 ,基本上是担
任样本分类的角色。如图 5 所示的一个三层网络 ,
设待识别的词数为 J ,令 ANN 的输出为 z 1 , z 2 ,. . . ,
zJ ,输出单元有 J 个。此外 ,设输入为 xn , n = 1 ,
2 ,. . . , N ,输入单元有 N 个 ,隐含层中 PE 有 M 个 ,
第 m 个 PE 输出为 ym ,则
ym = f ∑
N
n = 1
W nm X n + bmr (A (6)
zj = g ∑
M
m = 1
U mj ym + Cj i=
g ∑
M
m = 1
U mj f ∑
N
n = 1
W nm X n + bmi ,