找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于WT588D模块的语音播报系统设计

[复制链接]
admin 发表于 2013-3-24 13:16:23 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘   要: 基于WT588D模块设计了语音播报系统,并详细叙述了语音文件的制作、下载、硬件电路设计和编程设计过程。本系统整体结构简单,音质优美,成本低廉,功能扩展方便,可以作为一个基于WT588D模块设计的模板应用到多个相关领域中。
关键词: WT588D模块;语音播报;MPC82G516单片机
       语音播报系统在儿童玩具、计算器、学习机、迎宾器、公交报站以及智能仪器仪表等设备中得到广泛应用。以往的语音播报系统中通常采用ISD系列的语音模块,其缺点是价格较高,电路设计较复杂,控制方式不够灵活,且常常因为在线录音会引入很强的噪声,严重影响放音效果。而本文使用的WT588D模块性价比较高,存储容量大,使用专用下载软件能够在线烧写音频文件,操作极其方便,并支持6 kS/s~20 kS/s采样率的音频加载,可以无损展现音频信息。
1 WT588D模块简介
     WT588D模块是广州创科有限公司与台湾华邦公司共同研发的集单片机、语音电路、SPI-Flash存储器于一体的可编程语音系统。该语音系统支持6 kS/s~22 kS/s采样频率的音频,具有220个可控制的语音地址,且每个地址还可以分成128段管理。配合WT-APP上位机操作系统软件和专用的USB下载器,可以随意设置系统的控制方式、语音地址和分段信息,支持语音信息在线烧录。
     WT588D模块支持MP3控制模式、按键控制模式、并口模式、一线串口模式及三线SPI模式。模块内部集成了DSP高速音频处理器,内置13 bit数模转换器以及12 bit PWM输出方式,可以无损地展现音频信息。PWM输出方式可以直接驱动0.5 W/8 Ω扬声器,无需额外的驱动电路[1]。
2 语音播报系统设计
2.1 语音文件的提取

     语音文件的提取有2种常用方法:(1)从录制的文件中提取;(2)利用文字转语音软件提取。
     从录制的文件中提取语音的步骤为:首先通过录音软件或通过手机录制wav格式的音频文件(例如包括0~9、时、分、秒等信息),然后打开GoldWave音频编辑软件,在原始wav格式文件中找到要截取的语音段,通过鼠标选择复制粘贴到新文件中即可。在该软件中还可以对音频进行合并、降噪、滤波等特效处理。
     利用SoundToWav文字转语音软件,使得音频文件提取更方便。该软件利用TTS(Text To Speech)即语音合成技术,可以将任意文字转换成语音文件。为了得到较好的音质,采用了ChineseMandarinVoice语音引擎,该引擎的中文女声音色较好,基本接近真人发声水平。在SoundToWav软件中选择该语音引擎并选中按行分割文件方式,输入要转换的文字信息,点击转换即可生成音频文件。
     以上两种方法中,第一种方法的真人录制语音更自然生动更具有感染力,但容易引入噪声干扰,音效相对较差些。而文字转语音噪声低、语音清晰、音质好、操作方便,但是由于采用的是TTS语音合成方式,声音缺少饱满,缺乏真人的朗读效果。
2.2 系统硬件设计
     本文选择了WT588D模块的SPI三线连接方式。为说明对语音模块的控制过程,以完成播报当前按键次数的功能为例。图1为系统框图,包括单片机最小系统、一个独立按键、WT588D语音模块和与其配套使用的下载接口。在设计中,需要先通过WT588D VoiceChip上位机软件,将已经提取的音频文件下载到SPI-Flash存储器的相应地址段,并记录好地址与语音的对照表,方便放音时进行地址调用。图2为系统电路图,由于语音模块供电的特殊要求,通过AMS1117模块完成5 V~3 V的电压转换;通过PWM直接驱动方式连接0.5 W/8 Ω扬声器;通过发光二极管观察语音芯片的忙信号状态;单片机采用独立按键方式。
    20121107050818846414416.gif
    20121107050818908914417.gif
   2.3 系统软件设计
     三线串口控制模式由片选CS、时钟SCK和数据DATA组成,时序仿照标准SPI通信方式[2],具体时序如图3所示。
    20121107050818940164418.gif
       采用上位机软件对SPI-Flash存储器25PXX烧写语音程序时,选择三线串口控制模式。语音模块的P01口被定义为DATA数据口,P02为CS片选口,P03为CLK时钟口,单片机通过3个控制口对WT588D语音模块进行控制。三线串口控制模式下其他的I/O口均无效。P17端为BUSY忙信号输出端,可设置为播放状态LED点亮和播放状态LED熄灭。SPI-Flash存储器25PXX的电压范围要保证在2.8 V~3. 5 V之间,VDD-SIM为WT588D语音芯片的串口电源管理输入端,将25PXX的VCC连接到此端,可自动平衡WT588D与25PXX之间的串口电压。PWM输出端禁止接电容到地或直接接地,系统工作为VDD=5 V,VCC=3.3 V。
     基于SPI通信时序[3-4]编写如下通信子函数,根据参数address的值可以播放对应的语音段(注意传数时低位在前)。
void send_adr(unsigned  char  address)
{  
         unsigned  char  i;
         RESET=0;
         delay1ms(3);
         RESET=1;
         delay1ms(17);                                            /* 17ms*/
         CS=0;
         delay1ms(2);
         for(i=0;i<8;i++)
          {
            SCLK=0;
            If(address&1)                  /* low post before high*/
             DATA=1;
            else
             DATA=0;
            address >>=1;
            delay1us(50);
            SCLK=1;
            delay1us(50);
             }
         CS=1;
}
      主函数完成对独立按键的扫描过程,其中delay1ms(10)的作用为延时去抖动,key_mark为键标志,可以实现按键的一次响应[5]。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 01:22 , Processed in 0.076281 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表