基于FPGA的语音识别前端算法研究实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 自 相 关
对 语 音 信 号 进 行 分 帧 , 使 得 每 一 帧 有 N =256 个 采 样 , 帧 移 为 64 。 对 每 一 帧 信 号 进 行 预 加 重 和 加 窗 。 预加重采用:
tributed Speech Recognition) 。 移 动 终 端 只 需 进 行 语 音 采
式 中 P 是 LPC 的 阶 数 , 取 10 阶 。 采 用 Levinson - Durbin [ 7] 方法来解。 在该方法的计算中,可以看到求偏相关系数Biblioteka Baidu
(Parcor) k 时 , 由 于 存 在 式 (5) 中 的 关 系 : ki = temp E ( i - 1)
(5)
表 1 两种除法器算法性能比较表格
其中为了达到资源共享,除法器当中的乘法器 和计算结构的乘法器复用,如图 2 所示。 语 音 信 号 处 理 当 中 , 由 LPC 系 数 计 算 LPCC 系 数 的 公 式 如 下 [ 7] :
mux Constants 2 - 10 Register ? Register a
c1 =- a1
(6)
H =1- hz -1 (1) 本 系 统 中 h 取 15 , 所 以 加 重 的 语 音 信 号 为 : 16 y ( n +1)= x ( n +1)- 15 x ( n ) (2) 16 窗 函 数 采 用 汉 明 (Hamming) 窗 , 汉 明 窗 函 数 要 先 计 算
好 放 于 ROM 中 , 直 接 与 语 音 信 号 相 乘 得 到 加 窗 的 语 音
信号。 对每一帧经过预处理的语音信号进行自相关分
R ( k )= Σ x ( i-k ) x ( i ) , 0 ≤ k ≤ P
i=k
(3)
式 中 P 是 LPC 的 阶 数 , 取 P =10 。 所 采 用 结 构 如 图 1 。 在计算自相关系数的部分,如果在累加部分采用移 位 寄 存 器 来 计 算 保 存 11 个 LPC 系 数 , 会 产 生 不 必 要 的 移 位 功 耗 [6] 。 考 虑 到 FPGA 丰 富 的 存 储 器 资 源 , 采 用 RAM 进行累加部分的计算,从而使功耗得到降低,如图 1 所 示。 寄存器的输出形成了连接到 加 法 器 的 数 据 通 路 ,而 加 法器的输出存储在指定位置的寄 存 器 中 ,主 状 态 机 提 供 操 作地址 ,并控制读﹑ 写次序以避免在同一位置同时进行读 写 操 作 。 采 用 此 结 构 ,可 以 避 免 不 必 要 的 移 位 功 耗 ,而 性 能 上 与 采 用 移 位 寄 存 器 无 差 别 ,故 优 于 后 者 。
Matlab 的 建 模 结 果 进 行 了 对 比 。 结 果 表 明 , 与 之 前 的 方 法 相 比 , 系 统 能 够 在 较 短 的 时 钟 周 期 内 计 算 出 LPCC 系 数 , 节 省 了 大 量 的 运 算 时 间 和 一 定 的 面 积 。 关 键 词 : 语 音 识 别 ; DSR(distributed speech recognition) ; FPGA ; 除 法 器
n-1
adder
图 3 计 算 LPCC 系 数 结 构 图
其 中 P 是 LPC 的 阶 数 , Q 是 LPCC 的 阶 数 , 取 P = Q =10 。 然而,在这个结构当中,可以看到最终的计算结果 是 ξ , 而 并 不 是 真 正 的 LPCC 系 数 。 为 此 仍 需 要 一 个 除 法
近年来,语音识别在通信与电子系统、自动控制等 领域中有着广泛的应用。 其中一个重要的发展方向是硬 件实现语音识别算法的研究。 这个方向主要是小型化、 便携式语音产品的应用 ,在这类设备上,通常是小词汇 量的 孤立 词识别 ,例如 :手机﹑ PDA 以 及 车 载 应 用 等 装 置 上。 国外 在硬 件实现 方面 的研 究较早 ,而国 内起步 较晚 , 因 此 对 基 于 FPGA 的 语 音 识 别 前 端 算 法 研 究 具 有 重 要 的 意 义 [ 1] 。 近 两 年 国 际 上 提 出 了 分 布 式 语 音 识 别 DSR (Dis-
集、特征提取 ,有关 信息 则通过 无线 数据信 道送 往网 络 中的远 程服 务器,由 服务 器 中 的 识 别 单 元 完 成 语 音 识 别 功 能 [ 2] 。 就 目 前 的 研 究 情 况 来 看 , 通 常 用 相 关 的 方 法 实 现 LPCC 系 数 的 提 取 。 而 在 LPC 系 数 提 取 部 分 的 除 法 器 , 采 用 的 结 构 不 尽 相 同 , 有 采 用 搜 索 算 法 [ 3] , 也 有 采 用 减 并 移 位 法 [ 4] ; 在 LPCC 系 数 提 取 时 , 可 以 直 接 计 算 , 也 可 以 经 过 一 定 的 变 换 [ 5] 。 为 了 将 面 积 和 性 能 得 到 最 好 的 折中,并且考虑实际 的应 用场 合 ,在以 上两 个除法 器的
n-1
Σ Σ 1- m ≤ c =- Σ ≤ a c , 其 中 P≤n≤Q n
p n m n-m m=1
m cn =- an - Σ 1am cn - m , 其 中 1 ≤ n ≤ P n m=1
r1
r2
(7) (8)
r4 multipler r3
P 是 LPC 的 阶 数 , Q 是 LPCC 的 阶 数 。
集成电路应用
Application of Integrated Circuits
基于 FPGA 的语音识别前端算法研究实现
刘文 姝 ,季 爱 明 ,王 子 欧 ( 苏 州 大 学 , 江 苏 苏 州 215021)
摘 要 : 通 过 分 布 式 语 音 识 别 DSR 的 研 究 , 提 出 了 基 于 FPGA 平 台 的 前 端 处 理 系 统 结 构 。 对 其 中 两 个 除 法 器 分 别 采 用 了 LUT 查 找 表 和 常 数 除 法 器 的 结 构 。 用 VerilogHDL 语 言 进 行 建 模 仿 真 , 并 与
中 图 分 类 号 : TN47 文献标识码: A
Realization of speech recognition front-end algorithm based on FPGA
LIU Wen Shu , JI Ai Ming , WANG Zi Ou
(Soochow University, Suzhou 215021 , China ) Abstract : According to the research of distributed speech recognition (DSR ),this paper introduces a front -end processing sys tem ,which is based on the FPGA. Especially, the system adopts LUT (look_up table ) divider and constant divider. Finally, after comparing the system simulation with the result of Matlab modeling , the system could compute LPCC coefficient in shorter clock cy cle . The experiment results show that comparing with the method used previously, this method saves numbers of operation time and some areas in the chip. Key words : speech recognition ; DSR(distributed speech recognition ) ; FPGA ; divider
设 ξi = ici 则有:
n-1
ξn =-nan - Σ ( n-m ) am ξn-m , 其 中 1 ≤ n ≤ P
m=1 p
(11) (12)
2 仿真验证
为 了 验 证 算 法 的 可 行 性 , 本 文 用 VerilogHDL 语 言 对 整 个 语 音 参 数 的 提 取 进 行 建 模 。 依 照 图 2 进 行 了 LPC 系
查找表法 乘法器数目 搜索算法
2 1 2 MUL or 1 MUL + 1 LUT
1 0 N( 数 据 位 数 )
LUT 数 目
延时
自相关输出
图 1 计算自相关系数结构图
《电子技术应用 》 2010 年第 2 期
41
集成电路应用
1.3 LPCC 系 数
Application of Integrated Circuits
按照上面的分析,如果依计算公式计算,缺点是资 源占用过多,需要时钟周期过长。 所以采用节省资源的 方法计算中间系数,对公式进行一定的变形,算法进行 一定的改进,资源得到充分利用,并且能够缩短时钟周 期 , 节 省 乘 法 器 资 源 57% [ 5] 。 计 算 LPCC 系 数 结 构 图 , 如 图 3 所示。 实现节省资源的方法:
40
欢迎网上投稿 www.chinaaet.com
《电子技术应用 》 2010 年第 2 期
集成电路应用
析。 采用公式:
N-1
Application of Integrated Circuits
故在该模块中,除法器的设计是一个关键性的问题。 常用的除法器设计算法多采用多次迭代的方法 ,如 恢复余数方法和减并移位方法等。 这类方法虽然比软件 除法要快很多,但多次迭代延时还是很大。 而且迭代次 数与数据相关,使除法器延时不定。 在语音处理这类数 据量大﹑ 对运算要求高的领域,迫切需要一种能够采用 流水线方法实现的高性能除法器。 有的方案文献当中提 到 采 用 剪 除 搜 索 方 法 [ 8] 。 但 是 , 采 用 这 种 方 法 仍 需 要 相 对较长的时间,并且仍不能消除延时不稳定的问题 。 所 以采用一种新的除法器架构— —— 流 水 线 查 找 表 法 [ 9] 。 流水线除法器可采用被除数和除数的倒数相乘实 现。 除数的倒数利用泰勒级数展开算法展开 ,取前几项 通过查表法得到倒数结果。 这就是本除法器设计的基本 思想。 以泰勒级数为基础,根据公式误差对除法面积的 影响,采用一个 2 级流水的单精度除法器。 该除法器利 用查表法和 2 个乘法器实现, 在面积上要大于搜索算 法,但是在时钟周期上,只是 2 个乘法器或者是一个乘 法 器 和 一 个 LUT 的 延 时 , 显 然 比 搜 索 算 法 的 N ( 数 据 的
设计上 ,进行 一定的 研究 ,提出 了适合 的方 案。
1 系统算法实现
本系统是对于语音识别的前端算法研究 ,要解决的 问 题是 语音采 集、特 征提取 ,而语 音的 识别 ,则 是 由 远 端 服务器来完成。 一般的特征参数提取流程图包括预加 重 、 加 窗 、 自 相 关 、 求 LPC 系 数 和 求 其 倒 谱 (LPCC) 系 数 。 下面将按照各个模块分别研究。
1.2 LPC 系 数
采 用 自 相 关 法 来 计 算 LPC 系 数 。 解 LPC 系 数 的 矩 阵 方程为:
p
Rn ( i )= Σ ak Rn (| i-k |) , 1 ≤ i ≤ p
k=1
(4)
位数)个时钟周期短得多。 该除法器有 2 点好处:一是 2 个乘法和查表可以并行执行,除法器延时较短;二是乘 法 数 据 位 数 较 少 , 乘 法 器 面 积 较 小 , 而 由 其 决 定 的 LUT 面 积 也 不 大 [ 8] 。 两 种 除 法 器 算 法 性 能 比 较 如 表 1 。
ncn =-nan - Σ ( n-m ) am cn-m , 其 中 1 ≤ n ≤ P
m=1
(9) (10)
器。 这里的除法运算所涉及到的除数仅为一组有限的常 数,采用一个通用的除法器就显得没有必要了 。 为此使 用 文 献 [10] 中 提 到 的 专 用 常 数 除 法 器 , 它 的 主 要 运 算 部 分由规则的处理单元阵列所构成,大大节省面积,易于 实现并易于扩展。