基于FPGA的语音信号实时处理

发布者:美好未来最新更新时间:2011-05-11 来源: 微型机与应用关键字:FPGA  语音 手机看文章 扫描二维码
随时随地手机看文章
   

摘   要: 介绍一种在语音识别系统中运用FPGA技术对语音信号进行前期实时处理的方法。利用DSP Builder设计信号处理算法的图形化电路模块,运用硬件环(HIL Hardware in the Loop)技术对模块进行软硬件协同仿真。满足设计要求后,再用Signal Compiler 将模块转换成VHDL语言和Quartus II工程文件下载至目标芯片。结果表明此方法可以快速灵活地设计出语音处理模块,语音数据能在要求的时间范围内处理完毕,达到了实时处理的目的。
关键词: 语音识别; FPGA; 实时; 信号处理

    随着语音识别技术的应用越来越广,对其实时性的要求也越来越高。专用的DSP语音芯片虽然有硬件加速功能,但其指令依然是串行计算,在实时性方面有所欠缺。如今,具有并行运算能力的FPGA主频不断提高,加上其设计灵活、功耗低、体积小等优点[1],可以满足语音信号实时处理的要求。目前很多语音处理算法都是基于软件平台的,真正的语音处理硬件实现很少。本文针对非特定人的语音信号,研究当前主流的语音处理算法,并将这些基于软件平台的算法“硬件化”。在保证一定精度的前提下将浮点运算转换成便于FPGA实现的定点运算[2]。


    本文以通过对语音信号滤波、分帧、加窗、能量计算等模块的设计为例,介绍语音信号实时处理的方法,需要运用到MATLAB.、DSP Builder、QUARTUS II、ModelSim等EDA工具联合设计[3]。语音信号经过模数转换进入FPGA以后,对其滤波,因为要对信号进行实时处理,需要采用动态分帧,最后计算出每帧的能量为语音信号的下一步处理如端点检测、特征提取[4]等做好前期准备。


1 实时处理算法分析
    语音数据经过A/D转换之后进入芯片,首先对其进行滤波。为了使信号的频谱趋向平坦,需要对其进行预加重滤波,这里采用一阶FIR滤波器[5]:

    语音信号虽然是一种非平稳信号,但在短时内(10 ms~30 ms)可以看作是平稳的[2],这样就可以对其进行分帧处理。在实时系统中无法确定语音的长度和大小,只能对其进行动态分帧。考虑到帧的连续性,采用交叠分帧,帧移取0.5,硬件中可以用两个FIFO实现,其中FIFO1的读时钟频率是写时钟的两倍,且FIFO2的读写时钟频率与FIFO1读时钟频率相同。
    分帧后的数据需要窗函数对其加权,加窗后的语音信号为sω(n)=s(n)×ω(n)。由于汉明窗在语音频段的平滑特性,因此本文采取汉明窗[4]:

2 硬件模块的实现
    仿真时通过读取hex文件来模拟实时的数据流。通过MATLAB将采样频率16 kHz,宽度8 bit的wav格式音频文件转化成hex文件的数据。部分代码如下[6]:
     ……
      [y,fs,n]=wavread(‘speech.wav’);
      y1=int8(y×(2^n-1)+128);
      [a,b]=size(y1);
      fid=fopen(‘speech.txt’,’wt’);
      for i=1:a;
      line=[num2str(i-1),’:’,num2str(y1(i)),’;’];
      fprintf(fid,’%s\n’,line);
      end
      fclose(fid);
    ……
    在模块中通过地址计数器将ROM中的数据不断读出,然后对数据流进行滤波。其DSP Builder模块实现如图1所示。

    考虑到语音信号的短时平稳性,将256点数据分为一帧写入Dual-Clock FIFO,写入128点后以两倍的写入速度读出,同时以两倍速度写入深度为128的FIFO2。如此循环便可以实现帧的交叠。具体实现如图2所示,左半部分为时钟控制模块。

    为了使每帧的数据点与窗函数的数据点一一对应,在加窗之前搭建了一个时序控制模块。Constant1控制模块延时384个时钟周期,counter是模为256的计数器。将LUT设为17 964-15 073×cos([0:2×pi/255:2×pi])[6]。分帧后的信号取模然后与窗函数相乘再累加便得到其能量,由Multiply Accumulate模块实现[2]。Clock提供基础时钟,PLL产生模块所需要的两个时钟,Signal Compiler对模块进行编译,转化成VHDL语言。具体模块如图3所示。

3仿真测试
    将上述三个子模块和Simulink中的模拟示波器Scope连接在一起,读取ROM中语音”1、2、3”的数据流。结果显示在示波器上,如图4所示。从上到下依次为原始信号、滤波信号、分帧信号、能量信号。

    从图中可以看到设计模块已经可以实时处理数据,达到了设计要求。接下来便可以将其转换成VHDL语言在QUARTUS II中进行仿真,生成pof文件下载到FPGA里面。打开Signal Compiler,Family选择Cyclone II,Device选择ALTERA公司的EP2C5T144C6芯片。点击compile,便可以生成工程文件、VHDL代码及配置文件[1]。


    以上属于软件仿真,具有速度慢、内容不易控制等缺点。ALTERA的DSP Builder提供的HIL模块可以在Simulink模型与FPGA开发板之间通过JTAG通信口建立联系,从而实现基于MATLAB/DSP Builder平台的硬件仿真。打开HIL模块,设置好工程文件speech.pof路径,连接上FPGA开发板,点击Configure FPGA便可以进行硬件仿真。打开示波器查看仿真结果与软件仿真结果吻合。在QUARTUS II中对生成的工程文件进行编译。整个系统使用了306个LE、214个寄存器、62个管脚,非常节省资源。


    通过DSP Builder进行FPGA设计无论是建模还是仿真都非常方便快捷,并可以在外部硬件测试平台不够完善的条件下引入HIL模块进行软硬件联合仿真。相对于传统开发方式,具有更大的优势。在时序仿真时可以看出从语音输入到能量的输出占用640个周期,在100 MHz的工作频率下仅耗时6.4 μs,是在MATLAB下运行速度的50多倍,实时性得到了充分的体现。

关键字:FPGA  语音 引用地址:基于FPGA的语音信号实时处理

上一篇:Altera推出业界首款基于MIPS的FPGA软核处理器
下一篇:基于NETFPGA的手背静脉身份认证系统

推荐阅读最新更新时间:2024-05-02 21:22

FPGA实现SAR实时信号处理的进一步研究
摘要:高时效性是SAR成像系统的一个关键性能,要求处理的数据量大、运算量大和快速进行实时处理。SAR成像运算最主要集中在距离向和方位向的压缩处理上,常用的压缩处理方案是采用高速DSP实现,这种方法曾被认为是SAR实时处理的最佳硬件实现方案。但是,近几年可编程器件的发展,使得FPGA成为比DSP更为优越的压缩处理方式。结合工程实践,介绍了采用ALTERA公司的Strat6ix系列芯片实现SAR实时处理机系统的具体设计方案。 关键词:DSP 合成孔径雷达(SAR) 实时信号处理 FFT算法 数据压缩 SAR成像处理运算量非常巨大,要达到准实时甚至全实时的成像处理速度,就需要高性能的处理设备。常用的数据处理方案是采用高速DSP芯片实
[半导体设计/制造]
Xilinx:FPGA处理速度快过GPU
日经亚洲评论13日报导,NVIDIA Corporation虽凭借通用GPU(GPGPU)登上人工智能(AI)芯片一哥位置、但竞争对手早已在一旁虎视眈眈。 美国低功耗现场可程序逻辑门阵列(FPGA)制造商Xilinx表示,伙伴厂商利用FPGA芯片进行基因体定序与优化语音识别所需的深度学习、察觉FPGA的耗能低于GPU且处理速度较快。 相较于GPU只能处理运算,FPGA能以更快速的速度一次处理所有与AI相关的信息。 英特尔(Intel Corp.) 在2015年底并购美国FPGA厂商Altera。 在GPU领域落后NVIDIA、超威(AMD)的英特尔打算藉由Xeon Phi进军AI芯片市场。 NVIDIA Corporatio
[手机便携]
通过语音控制泊车 苹果汽车更新自动驾驶专利
近日,网通社从外媒CARSCOOPS获悉,苹果更新了一项名为“使用意图信号在目的地附近引导自动驾驶汽车”的专利。该专利可通过智能设备或语音识别精确控制自动驾驶车辆进行指定位置泊车。 专利显示,自动驾驶车辆乘客可通过该功能精确选择停车位,甚至是停车后想从哪侧门下车,乘客只需在智能设备如手机上精确的将位置指出即可,并为用户提供了地图选点指引或手机操纵杆指引两种交互方式。与此同时,乘客还可通过语音控制(Siri)输入指令。 苹果在专利申请中表示:“这些信号可能包括指示从车辆上可以看到的地标或标志的语音命令,例如‘在园艺用品入口附近停车’或‘在自助餐厅入口附近停车’。”目前该专利仍处在申请阶
[汽车电子]
通过<font color='red'>语音</font>控制泊车 苹果汽车更新自动驾驶专利
面向低功耗工业4.0应用的可编程安全功能
面向低功耗工业4.0应用的可编程安全功能 安全性是医疗、工业、汽车和通信领域的一个重大问题。许多行业都在采用基于互联智能机器和系统的智能联网机器及工艺,从而优化工艺和流程。这些系统容易受到恶意攻击、未知软件错误的影响,而远程控制甚至可能导致物理安全问题,因此必须防止未经授权的访问或非法控制。 工业发展的最新篇章,也就是常说的第四次工业革命(又称工业4.0),开创了创新和发展的新纪元,但本身也存在一系列危险和挑战。工业4.0定义了系统、网络、机器和人类之间的通信和互联互通,其中包含物联网(IoT),这将复杂性推向了新的高度。虽然互联互通具有提高效率、实时识别和纠正缺陷、预测性维护以及改进各种功能之间的协作等优势,但这些优势也
[嵌入式]
面向低功耗工业4.0应用的可编程安全功能
基于ARM与FPGA的可重构设计
可重构技术是指利用可重用的软硬件资源,根据不同的应用需求,灵活地改变自身体系结构的设计方法。常规SRAM工艺的FPGA都可以实现重构,利用硬件复用原理,本文设计的可重构控制器采用ARM核微控制器作为主控制器,以FPGA芯片作为协处理器配合主控制器工作。用户事先根据需求设计出不同的配置方案,并存储在重构控制器内部的存储器中,上电后,重构控制器就可以按需求将不同设计方案分时定位到目标可编程器件内,同时保持其他部分电路功能正常,实现在系统灵活配置,提高系统工作效率。  1 SVF格式配置文件   很多嵌入式系统中都用到了FPGA/CPLD等可编程器件,在这些系统中利用SVF格式配置文件就可以方便地通过微控制器对可编程器件进行重新配
[嵌入式]
基于ARM与<font color='red'>FPGA</font>的可重构设计
Altera通过收购电源技术创新者 Enpirion提供突破性 FPGA 电源解决方案
2013年5月15号,北京 ——Altera公司(NASDAQ: ALTR) 今天宣布,该公司已经签署了收购 Enpirion, Inc. 的最终合并协议。Enpirion 是业界领先的高效集成电能转换产品(即电源单芯片系统 (PowerSoC))供应商。 Altera 的 FPGA(现场可编程门阵列)与 Enpirion 的电源单芯片系统相结合,将有助于客户增强性能、降低系统功耗、提高可靠性、减小产品体积以及加快产品上市。 Altera公司总裁、首席执行官兼董事会主席 John Daane 表示:“电源管理日益成为通信、计算和企业以及工业应用领域来突出其产品上差異化的战略性竞争优势。通过为 Altera 新增一个电源部门,我们
[嵌入式]
一种改进型的时分多址的实现方法
随着现代通信技术的发展,各种多址技术在日常生活中的应用正变得越来越广泛。所谓多址技术,是指许多用户同时使用同一频谱,采用不同的处理技术,使不同用户信号之间互不干扰地被分别接收和解调。多址技术分为频分多址(FDMA)、码分多址(CDMA)、时分多址(TDM-A)。频分多址是以不同的频率信道实现通信,码分多址是以不同的代码序列实现通信,而时分多址是以不同的时隙实现通信,它是一种实现共享传输介质或网络的通行技术。   时分多址技术把时间分割成周期性的帧,每一帧再分割成若干个时隙,通过介质或者网络发送信号。在满足定时和同步的条件下,接收方可以分别在各个时隙中接收到对应的信号而不混扰。时分多址技术具有保密性较高,传输容量较大等特点。  
[嵌入式]
一种改进型的时分多址的实现方法
CEVA联手Fluent.ai,提供智能边缘超低功耗语音理解解决方案
CEVA,全球无线连接和智能传感技术的授权许可厂商(NASDAQ:CEVA) 和小尺寸设备上多语言语音理解解决方案的领先提供商Fluent.ai宣布,两家企业合作为智能边缘设备提供超低功耗语音到意图(speech-to-intent)解决方案。Fluent.ai的语音到意图技术套件已针对CEVA的低功耗音频和传感器中枢DSP进行了移植和优化,为OEM和ODM厂商提供了功能强大的高性能解决方案,用于将智能语音激活和语音控制功能集成到可穿戴设备、消费类设备和物联网产品中。 Fluent.ai提供抗噪声的嵌入式多语言语音理解解决方案,能够在嵌入式的低功耗设备上完全离线运行。Fluent.ai的独有技术,可以支持任何语言和口音,
[模拟电子]
CEVA联手Fluent.ai,提供智能边缘超低功耗<font color='red'>语音</font>理解解决方案
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved