具有语音合成功能的嵌入式车载终端的设计
扫描二维码
随时随地手机看文章
国外电子元器件1 引言
据广州市公布的《2005年广州市交通发展年度报告》统计,2005年广州市机动车拥有量为177.4万辆;据《法制晚报》报道2006年5月份北京机动车保有量可突破300万辆。奥运时将突破330万辆;而据2006年gsm协会公布的一组数据称:gsm手机用户数量超过20亿,中国市场最大。以上三组不同的数据显示:越来越多的人在驾驶着机动车并通过gsm终端与外界进行通讯。
现阶段,许多机动车辆都安装了车载终端。它主要用于车载导航、车辆调度、车载监控等。而许多终端设备是依靠手工操作显示终端来完成的,如驾驶员查看车辆调度中心或朋友发来的重要短消息。查看导航终端的地图等。这样就导致司机开车时不能专心,其直接后果可能导致严重的交通事故。
语音交流是人类最自然的交流方式,如果车载终端的很多操作可由实时的语音来代替的话,将有利于减少交通事故的发生率。例如,gsm modem收到短消息,司机不用手动查看。语音合成系统可以自动播报出来;可以实时地提示司机行驶的方向与路名;可以实时地将交通状况播报出来。让驾驶员了解当前交通状况,通过了解道路交通拥堵的实时信息,从而避开拥堵路段,更快到达目的地等。语音合功能成的车载终端可提高车载终端的智能性、车辆驾驶的安全性和舒适性,使用户使用起来更加方便,更具有人性化。2 语音合成及gsm m0dem2.1 语音合成技术
语音合成技术是利用计算机、智能系统等设备,按预定的程序和指令,人为产生音素、音节、词和句子的技术。
目前,语音合成技术已发展到能实时地将任意文本转换成连续可懂的自然语句输出,相应技术通常称为文语合成或文语转换(text to speech,简称tts),涉及到声学、语言学、语音数字信号处理技术、多媒体技术等多个学科。文语合成的原理:根据韵律建模的结果,从原始语音库中取出相应的语音基元,利用特定的语音合成技术对语音基元进行韵律特性的调整和修改,最终合成出符合实际的语音。2.2 语音合成模块
本设计采用安徽中科大讯飞信息科技有限公司研发的一款高端中文语音合成模块xf-s4240。该模块可通过uart、spi和12c三种接口接收待合成的文本,直接合成为语音输出(line out)。
该模块采用。intersound4.0 kt系统作为模块内核,一个是轻量级中文连续语音合成系统。
xf-s4240模块的特点如下:支持任意中文文本的合成。支持英文字母的合成,遇到英文单词时按字母方式发音;支持四种内码格式:gb2312(简体中文编码)、gbk(国家标准扩展编码)、unicode(字符编码)、big5(繁体中文编码);具有双发音人:男声、女声;具有智能的文本分析处理算法,可正确识别和处理数值、号码、时间日期及一些常用的度量衡符号,具备较强多音字处理和中文姓氏处理能力;支持软件调节语速、语调、音量等。 2.3 gsm modem
gsm modem是继gsm手机后又一种非常重要的gsm移动通信系统的终端设备。gsm modem作为一种主要的gsm网络接入设备,它是传统调制解调器与gsm无线移动通信系统相结合的一种数据终端设备,因此也叫无线调制解调器。它的出现打开了gsm网络数据通信及其应用的大门。本设计采用西门子公司生产的第三代gsm双频modemtc35i,该模块可广泛应用于pos终端、手持式设备、移动电脑、无线电话、交通控制和导航系统、快速管理安全系统、远程监视、远程抄表、自动售卖机等系统。3 车载终端的硬件设计
系统硬件是以广州周立功单片机发展有限公司的arm7系列smart arm2200嵌入式平台为基础。平台主控制器采用飞利浦公司生产的16/32位arm7tdmi-s微控制器ipc2210,它具有丰富的外部接口,例如工业标准的uart、高速的i2c接口(400 kb/s)、spi接口、a/d转换接口等,可以方便地与其他外设互连。
系统底层软件采用μcliunx内核,该内核是针对微控制领域而设计的linux系统,适合无内存管理单元(mmu)的微控制器。
xf-s4240模块可通过uart、spi和i2c接口实现与其他终端设备的通讯。本系统设计利用smartarm2200嵌入式平台的i2c接口与xf-s4240的12c接口进行通讯。xf-s4240设置为从设备,默认地址为0x80,smart arm2200设置为主设备。gsm modem则通过标准uart口与smartarm2200嵌入式系统的通用串口2连接。4 软件设计
4.1 语音模块合成的通讯协议
无论xf-s4240采用uart、spi还是i2c与其他智能系统连接,语音合成模块的上层通讯协议是相同的,下面将介绍语音合成的控制命令。
发送给xf-s4240的所有命令与数据均采用"帧"的方式进行数据封装后传输。 其中,帧头长度为一个字节,定义为16进制"0xfd";数据区长度占两个字节,高字节在前,低字节在后。数据区长度不定,但须小于1 024个字节。数据区包含命令字、命令参数和合成的语音信息。 此帧的含义:0xfd表示帧头,0x00 0x0a表示数据区长度为10个字节。0x01表示语音合成