高性能语音拨号器的设计与实现
2006-05-07 来源:电子技术应用
摘要:以数字信号处理器ADSP2186L为核心,通过单片机进行系统控制,设计语音拨号器,实现语音控制的自动拨号功能。
关键词:DSP 语音识别 双音多频
随着语音信号处理理论以及超大规模集成电路的发展,语音识别、语音编码以及语音合成技术逐步走向实用化。国外已有相应的应用电子产品问世(如美国Sensory公司的产品),国内市场上也出现了具备语音识别功能的手机(如PHILIPS,SAMSUNG等公司的产品)。本文介绍的基于ADSP2186L的语音拨号器集语音识别、语音编解码、语音提示、语音合成以及双音多频拨号功能于一体,与现有产品相比具有容量大,识别率高,使用方便的优点。
1 系统功能
·可存储200个用户词条,800个电话号码。
·支持语音查询方式,用户只需口述词条,即可获得相应的电话号码。同时兼容手动查询方式。
·具有方便的编辑功能(增加、删除、修改用户记录)。
·具有双音多频拨号功能,使用普通电话机便可实现自动拨号。
2 系统整体模块设计
整个系统可分为信号处理单元,系统控制单元和用户界面单元共三个功能模块。
2.1 信号处理单元
本单元包括数字信号处理器,编解码器和存储器。
作为系统语音信号处理核心的ADSP2186L是ANALOG DEVICES公司生产的低电压16位定点数字信号处理器。该芯片具有以下特点:
· 运算速度33MIPS;
·片内含40K Byte RAM,分为16K Byte的程序RAM及24K Byte的数据RAM;
·两路独立可编程全双工串行通信接口,支持A律/μ律的硬件语音解压扩,支持自动缓冲区操作;
·4M Byte的外部寻址空间;
·支持内外存之间的DMA操作;
·13个可编程的I/O口。
DSP在系统中主要完成语音信号的特征提取,端点检测和模板匹配,同时负责用户记录的管理。
与ADSP2186L配套使用的是ANALOG DEVICES公司最新生产的低电压16位编解码器AD73311L,该芯片通过设置相应的寄存器可实现8~64kHz的多种采样频率,具有可编程的输入输出增益控制。该芯片在系统中完成语音信号的A/D,D/A转换。
系统存储器选用SILICON STORAGE TECHNOLOGY公司生产的8M位快闪存储器(Flash Memory)SST39VF080Q,主要存储两部分内容,DSP的应用程序和用户的语音记录数据。该芯片具有软件写保护功能,可以防止应用程序的意外更改,全片分为256个4KByte的扇区,适于语音记录的存取。
2.2 系统控制单元
选用SAMSUNG公司生产的4位单片机KS57C2308,该芯片主要负责系统整体流程控制以及用户界面控制。KS57C2308具有较宽的工作电压,同时提供段式液晶的驱动,具有较强的I/O操作能力,适合应用于要求多个I/O口以及液晶显示的工作环境。采用KS57C2308可以简化系统,并使系统具有较好的外部接口扩展能力。
2.3 用户界面单元
包括键盘、液晶、驻极话筒和扬声器四部分。
系统硬件模块结构如图1所示。
2.4数字信号处理器与编解码器之间的通信
数字信号处理器ADSP2186L与编解码器之间的通信通过独立的串行口完成。具体连线如图2所示,信号说明如表1所示。
表1 信号说明
引脚名称 | 作 用 |
SCLK | 串口位时钟 |
RFS | 接收帧同步时钟 |
TFS | 发送帧同步时钟 |
DR | 数据接收引脚 |
DT | 数据发送引脚 |
由于AD73311L采取自接外部晶振,通过内部设置分频寄存器确定采样率的工作方式,ADSP2186L的SCLK、TFS,RFS均设为外部输入。采用DSP的串口时序进行通信。
2.5 数字信号处理其余单片机间的通信
ADSP2186L与单片机的接口与此类似,区别在于ADSP2186L的SCLK、TFS、RFS均设为内部输出。单片机通过通用的I/O口模拟DSP的串口时序,通信协议采用自定义的数据包格式,速度快,可靠性高。单片机同时控制DSP的复位引脚,进一步保证系统工作的可靠性。
2.6 数字信号处理器与外部存储器的接口
DSP与外部存储器之间通过地址和数据总线连接,利用DSP的BMS、WR、RD引脚实现对外部存储器存的片选及读写控制。系统复位时,DSP由外部存储器中自动加载程序,系统运行过程中的数据通过DMA方式进行传输。
单片机通过专用的液晶驱动引脚控制液晶,通过通用的I/O引脚完成键盘扫描。
3 系统软件实现
系统软件采取模块化设计,根据功能将DSP的程序分为10个基本模块。
(1)系统初始化
初始化内容包括算法参数,状态变量,端口设置。
(2)通信接口
主要功能是接收单片机指令,并在完成相应的操作序列后回送操作结果。
(3)语音记录
使用DSP的自动缓冲区技术,在用户口述词条的过程中,实时提取用于识别和回放的特征参数,利用高性能的端点检测算法去除静音段及噪声段,将实际语音段的特征数据保存在数据RAM中。
(4)语音识别
使用模式识别方法将数据RAM中的特征参数与外部存储器中保存的现有用户记录相比较,找出最相近的记录作为识别结果,获得相应的记录指针。
(5)语音提示
利用预先编码的数据合成语音,用于对用户的相应操作进行提示,方便用户使用,减少误操作的可能性。编解码采用多脉冲线性预测编码(Multi-Pulse Linear Predict Code)算法,能以较低的码率获得较高质量的合成语音。
(6)语音回放
利用“语音记录”过程中提取的回放特征参数合成语音,用于用户检验记录结果或识别结果。根据参数提取的实时性要求,此处采取速度快,合成质量好的编解码算法。
(7)增加记录
将“语音记录”中提取的特征参数连同相应的用户电话号码存入外部存储器。同时修改记录指针。
(8)修改记录
保持记录的特征参数不变,只修改电话号码。
(9)删除记录
删除整个用户记录,包括特征参数和电话号码,同时清除相应指针。
(10)双音多频拨号
利用级数展开的方法合成正弦信号,经编解码器进行D/A转换后至扬声器输出,实现自动拨号功能。
单片机利用键盘接收用户指令,通过功能模块的不同组合方式,可以形成多种控制流程,以适应不同应用场合的需要。
系统软件框图如图3所示。
4 系统性能测试
本系统具有较高的识别率,对于普通词条,识别率超过99%,对于发音相近的易混淆词条,如“李平,李宁,李丁”,识别率也可达到90%以上。同时,本系统具有良好的用户界面,用户在语音提示下完成相应操作,方便快捷。
本系统具备语音拨号器的基本功能,由于它的软件和硬件设计都具有模块化特性,很容易改造成适用于其他应用场合的语音控制系统。因此,本系统具有较为广泛的应用前景。