基于EP7211实现传呼信息实时语音合成和播放原理及设计

发布者:MagicGarden最新更新时间:2014-12-03 来源: 21ic关键字:实时语音  EP7211  PDA系统 手机看文章 扫描二维码
随时随地手机看文章

PDA(Personal Digital Assitant,个人数字助理)是近年来继寻呼机和移动电话之后,在国内市场迅速崛起的便携式电子产品。就其扩展意义来讲,它能够集成移动计算、电话和网络等多种功能。根据不同的应用需求,它可以管理个人信息、提供名片存储和日程安排,也可以接收各种寻呼信息(如股市、天气预报等)。如果是集成通信模块,

还可以作为移动电话使用,进行无线网络互联。广义的PDA包括简单的电子记事本、电子辞典和功能强大的掌上电脑,它们的主要区别表现在操作系统、存储能力、运算速度和数据交换能力等方面。

目前国内传统PDA产品经过几年的高速发展后,市场基于饱和,销售额出现负增长。不过由于PDA产品的灵活性,有针对性的行业应用作为一个新亮点,开始为人们所关注。经过行业应用尾后的PDA产品,已经在国内市场大显身手。文曲星展现超强的语言释译能力,比较适合于大学生和语言翻译者使用;蓝火系列能实时接收股市信息和专家点评,适合工薪阶层的炒股者。国家信息产业部已经鼓励PDA产品在交通、警务、保险等领域的行业应用和推广。

分析市场需求,我们研发了集成传呼功能的、专门面向铁路交通行业应用的铁路交通信息系统PDA。本PDA系统除了具备传统PDA的个人名片管理和辞典检索等功能外,同时提供交通行业应用的民航航班查询、铁路列车时刻表查询等功能。

本PDA的寻呼系统实现如下功能:能够通过寻呼对列车时刻表、列车晚点信息、列车剩票额、股道信息等行业数据进行动态更新。作为另一个特色,当接收到个人寻呼时,能够将寻呼内容实时地转换成语音并播放。

下面重点介绍本PDA系统中使用嵌入式处理吕EP7211实现个寻呼内容的实时语音转换和播放。该功能的实现包含前后相关的3个部分:字符语音库的建立、字符的语音合成算法和Codec语音中断服务例程。

1 实现条件和要求

PDA属于嵌入式应用系统,其同一般PC机有很大差别。硬件方面,嵌入式处理器基于RISC体系结构,一般工作频率在几十MHz,甚至更低;系统内存容量一般在几百KB~几MB之间;一般使用容量小的ROM或者Flash作为硬盘来存储可执行程序序和数据。软件方面,PDA系统一般有专用的嵌入式操作系统和软件开发调试移植环境。

个人传呼信息的特点是单条传呼信息长度变化较大,20~50个字符不等。最为常见的是“请回电话***”;传呼信息涉及到的字符数量较大,字符语音合成时运算量大,单字符合成后语音数据占用的存储空间多;需要事先建立字符语音库等。

由于具体硬件环境的限制、传呼信息的特点和语音合成的要求,该功能能够实现的前提有:语音库占用的空间小;字符合成时速度更快;采用前台进行字符语音合成时,以后台中断方式进行合成语音的播放来保证其实时性和连续性。

2 具体实现

下面分别介绍字符语音库的建立、字符语音合成算法、本PDA系统的框架结构和语音中断服务例程。

2.1 建立字符语音库

我们选用G.729语音压缩编码标准来建立语音库。该标准采用的算法是共轭结构的代数码激励线性预测(CS-ACELP),是基于CELP(码激励线性预测)编码模型的算法。这种编码规范的严格性使性能达到或超过了32Kbps的G.726 ADPCM编码,具有很高的语音质量;同时,它是在语音信号8KHz取样的基础上得到16bit线性PCM后进行编码的,压缩后的数据速率仅为8Kbps,具有相当于8:1的高压缩率。其算法延迟少于16ms。由于G.726编解码器能够实现很高的语音质量和很低的算法延时,因此被广泛地应用。

字符语音库是一个单字发音语音数据的集合,中段数据之间相互独立,不具有相关性。语音库包含了国标一、二级字库中的所有6763个汉字、10个阿拉伯数字和26个英文字符的标准普通话语音数据。每个汉字或字符发音时长为0.65s,采用8KHz抽样频率,使用了G.729A语音编码算法对上述的语音数据进行压缩,压缩后数据速率为8Kbps,相当于具有8:1的高压缩率。在汉字中,同音字占了相当大的比例,而在语音合成中对于同音字的处理是没有区别的,故近7000个汉字,我们只存储1123个不同的发音。经过同音字处理和采用G.729标准压缩字符语音数据,则最终建立的语音库文件大小为729 950字节,完全符合本PDA系统的数据存储要求;否则,语音库数据量太大,本PDA系统不能接受!

建立一个语音压缩数据库的具体步骤如下:

*将数字和常用汉字的标准发音独立地录入到数据文件中,作为基础数据。使用cooledit2000软件完成语音的录入。

*对于输入数据,按照每帧10ms(80个样点)的长度,将A_law语音通过简单换算变成16bit PCM数据,作为编码算法的输入。

*按照G.729A算法标准,对数据进行编码。

*将编码后的数据转换为二进制比特流,写入语音库文件中。压缩后数据速率为8Kbps,具有相当于8:1的高压缩率。

用C语言实现这一过程的程序流程如图1所示。

字符语音库的建立是在Windows平台及Visual C++编程环境下实现的,最终压缩处理后数据量的大小为729 950字节,每个字符语音数据的大小是650字节。

2.2 语音合成

当收到个人传呼信息时,语音合成程序首先从指定位置获取传呼信息数据,然后在语音库中查找每个汉字、阿拉伯数字或者英文字符的发音,重组一个数据文件。解码程序对该文件进行解码并且输出原始语音。语音合成流程如图2所示。

语音合成过程首先是当前字符在语音库的定位。对于10个阿拉伯数字和26个英文字符,将其放在语音库开头。这些字符的查找比较方便。汉字是2字节存储,我们依居其区位码来作为语音库中的定位索引。字符语音检索结束后的语音压缩数据作为该字符解码过程的输入。

数据解码过程可以分为参数解码和重构信号后处理2部分。首先要从输入的数据中提取参数符号,对这些符号解码之后,可以获得相应于10ms话音帧的编码器参数。这些参数包括线性预测系数、自适应码本矢量、固定码本矢量以及它们的增益。解码之后的参数用来计算重建语音信号。得到重构语音信号只有通过后处理过程来对该信号进行放大,包括后向滤波、高通滤波以及按比例因子扩大,最后得到原始的语音数据。

字符解码器原理如图3所示。

2.3 PDA系统的体系结构

PDA系统中嵌入式处理器EP7211进行数据处理,传呼解码芯接收传呼信息并进行解码,LCD提供数据输出显示,触摸屏提供用户输入接口,Flash用来存储应用程序和数据,SRAM为程序运行提供内存空间,电源电路为嵌入式处理器和外围设备提供所需要工作电压。[page]

    嵌入式处理器EP7211是Cirrus Logic公司专门为低成本、超低功耗的嵌入式应用设计的,包含ARM7TDMI处理器内核和丰富的外围接口。外围接口有CODEC音频接口、SPI串行A/D接口、单色LCD接口、DRAM接口、红外接口、2个PWM接口、实时时钟RTC以及电源检测接口。EP7211的内核电路工作在2.5V,而外围电路工作在3.3V;可根据具体情况对内核的时钟进行动态编程控制,可工作在18、36、49和74MHz。另外EP7211还有3种基本供电模式:正常操作(operating)、空闲(idle)和等待(standby)。在等待模式,主时钟被关断,整个CPU及相关外围(除中断和RTC)也关断,但可通过中断或按钮来唤醒。

系统软件开发平台采用了我们自主开发研制的、专门面向嵌入式应用系统开发的XGW平台。XGW开发平台采用消息驱动机制,是C语言开发。它功能强大、模块化设计、扩展性强、产品升级容易,总体框架如图5所示。

图5全面反应了XGW开发平台的体系结构,包括事件消息驱动机制、内存管理、字符和图形显示输出、图形组件库等。图形组件库中的编辑框、列表框、按钮等为用户应用程序开发提供系统应用编程接口API。不过,XGW平台对于系统硬件的中断响应没有提供统一的入口和出口,需要开发人员单独处理。XGW开发平台的消息分为鼠标消息、键盘消息和定时器消息等3类。

2.4 语音中断服务例程

嵌入式处理EP7211本身提供的外设语音录放Codec(coder/decoder)芯片可以实现语音的录入和播放功能。该模块提供2个独立的16字节长的数据发送和接缓冲区(FIFO),其为全双工模式,数字据点发速率是64kbps。芯片自身提供工作时钟、定时脉冲以及数据串/并和并/串转换功能。编程人员通过设置EP7211相应的控制寄存器使能这些项功能,则每当数据收发缓冲区半慢或者半空时(8字节),芯片自身就会产生一次中断信号供外部处理。理论计算芯片中断速率是1ms/次。

语音播放中断服务例程主要完成的工作是,当产生语音中断时,仍然有数据需要播放,则向语音数据发送缓冲区FIFO中写入指定数据,剩下的工作由Codec芯片本身来完成。中断服务例程ISR的伪代码如下(因为具体实现代码没有通用性,故此处用伪码描述):

void IRQ_Codec_Handler(void)

{

while(检测系统状态寄存器,发现语音芯片数据发送缓冲区FIFO非满)

{

if(已经播放过的语音数据长度<给定的需要播放的语音数据长度)

{

向语音芯片发送数据缓冲区FIFO写入指定数据;

调整已经播放过的语音数据长度;

if(已经播放过的语音数据长度>=给定的需要播放的语音数据长度)//结束

{

禁止数据发送缓冲区中断;

复位各相关的全局变量;

程序返回;

}

}

else

{

向语音芯片发送数据缓冲区FIFO写入默认数据

0XFF;

}

}

}

3 试验结构和分析

由于在设计阶段充分考虑过语音合成算法的大运算量和系统的实时性要求,故我们在具体实现的时候也采取了一些措施,比较突出的有:用ARM汇编语言来实现关键性的函数代码;语音合成时提高处理器EP7211的工作频率(处理器正常工作频率是18MHz);对于一些常用的三角函数计算,采用查表的方式等来加快程序执行速度。在PDA样机测试中,单字符合成时间在650ms左右,基本上能够满足实际应用需求。数据语音库经过处理之后,占用了729 560字节也能够满足本PDA系统的存储的要求。

当PDA系统收到1条个人传呼信息时,在语音库的支持下,立刻启动语音合成算法,逐个进行字符语音合成。当第1个字节语音合成结束后,立刻启动语音中断服务例程进行语音播放。这样收到的个人传呼信息,前台逐个字符解码时,其后台语音播放也在进行。根据实际测试参数,基本上满足了系统的实时性要求。

从一定角度看,单字符650 ms的语音合成时间基本能够满足实际应用需要,但还是希望能够进一步减小这个值。这由于我们对ARM算是器的使用还处在研究阶段。ARM本身提供了16位的Thumb指令集和32位的ARM指令集,而且两者在某些方面表现出较大差别。一般来讲,Thumb代码长度是ARM代码长度的65%,而执行效率要经后者高出60%。但在某些方面,32位ARM指令集也会表现出其优于16位Thumb指令集的强大功能;同时该处理器系统支持ARM指令庥和Thumb指令集混合编程模式。随着对二者差别和各自优势的深入理解,结合本系统的硬件体系结构,采用有效的指令集混合编程模式将会使程序执行效率进一步提高,从而使实时性得到进一步加强。

关键字:实时语音  EP7211  PDA系统 引用地址:基于EP7211实现传呼信息实时语音合成和播放原理及设计

上一篇:基于嵌入式和无线收发模块的教学楼节能系统
下一篇:基于嵌入式的水泥回转窑胴体温度监测系统设计

推荐阅读最新更新时间:2024-03-16 13:47

声频系统在手机与PDA 中的应用设计
  本篇文章即是要探讨声频系统在手机与PDA 之应用与设计,让系统与研发人员设计出适合消费者的产品。   无线可携式电子产品应用之考虑因素   以下列出在选择声频功率放大器时必须考虑到的主要因素。   较高的电源电压抑制(Power Supply Rejection Ration;PSRR)   声频功率放大器必须具有较高的PSRR,可以避免受到电源与布线噪声的干扰。   快速的开关机(Fast turn on & off)   拥有较长的待机时间,为手机或PDA 之基本诉求,AB 类声频放大器的效率约为50 至60 %,D 类声频放大器的效率可达85 至90%,不管使用何种声频放大器,为了节省功率消耗,在不需
[嵌入式]
基于PDA的个人移动导航系统的设计
引 言 信息技术的重点正由技术转向信息,即转向对信息的处理、集成、有效利用和快速获取。地理信息系统是实现地理信息获取、管理、可视化、分析、输出等的高效手段。PDA是最近迅速崛起的新兴电子消费性产品,即智能电脑工具,是供人们沟通、连接和互动的移动数字设备,集计算、电话、传真和网络等多种功能于一身,并且,这些功能都能通过无线方式实现。 移动计算是国际上最近几年发展起来的新科技,但已获得了长足的发展,在硬件方面有手执鼠标、语音输入设备等。使用移动计算技术,特别是移动GIS,能够远距离传输图形等数据,工作人员能够在偏远的山区通过移动设备将获得的最新测量结果传送给数据中心,也可以获取数据中心的数据。在国外,在Mobile GIS技术的前
[应用]
嵌入式实时英语语音识别系统的设计和实现
随着移动设备的快速发展,迫切需要一种更友好、更便捷的用户操作系统。自动语音识别系统能够提供便利的人机交互,将成为一种主要方法。目前,实验室环境中自动语音识别系统已经取得了很好的效果,但需要很大的存储空间和运算资源。当自动语音识别应用于移动设备时,必须对模型和识别策略进行相应改进,才能满足其对运算速度、内存资源和功耗的要求。为了解决这个问题,本文将结合英语语音的特点,设计并实现嵌入式英语语音识别系统,完成中等词汇量的孤立词实时识别任务。 1 硬件平台 嵌入式系统的软硬件高度结合,针对系统的特定任务,要量体裁衣、去除冗余,使得系统能够在高性能、高效率、高稳定性的同时,保证低成本和低功耗。因此,系统硬件平台的选用是影响系统整体性能的关
[单片机]
嵌入式<font color='red'>实时</font>英语<font color='red'>语音</font>识别<font color='red'>系统</font>的设计和实现
基于DSP的高速实时语音识别系统的设计
实时语音识别系统中,由于语音的数据量大,运算复杂,对处理器性能提出了很高的要求,适于采用高速DSP实现。虽然DSP提供了高速和灵活的硬件设计,但是在实时处理系统中,还需结合DSP器件的结构及工作方式,针对语音处理的特点,对软件进行反复优化,以缩短识别时间,满足实时的需求。因此如何对DSP进行优化编程,解决算法的复杂性和硬件存储容量及速度之间的矛盾,成为实现系统性能的关键。本文基于TMS320C6713设计并实现了高速实时语音识别系统,在固定文本的说话人辨识的应用中效果显著。 1 语音识别的原理 语音识别的基本原理框图如图1所示。语音信号中含有丰富的信息,从中提取对语音识别有用的信息的过程,就是特征提取,特征提取方法是整个语音识
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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