概述
随着多媒体时代的到来,文本、图形、图像的显示已经十分不便,但要实现语音的输出功能却要困难些,因为它要涉及模拟信号的处理、功率的放大及数据的存储管理等内容。在以往处理中是如何来实现的呢?通常是采用语音芯片来实现,即通过输入引脚直接将语音的模拟信号存储到芯片内部的记录单元中,播放时再按指定单元地址顺序输出。由于记录的是模拟信号,所以就省去了模拟信号与数字信号的相互转换过程。受存储单元的限制,一般语音芯片所存储的语音段时间长度不会很长,通常1分钟已是不短时间了,如语音芯片ISD17240就是1分钟芯片。故对语音功能的使用受到一定的制约。
实现方法及比较
伴随微控器的普及,采用DAC转换技术的语音播放功能越来越成熟。其工作的原理是将语音文件插入SD卡中,播放时再将数字信号转换为模拟信号,经功放驱动,由扬声器输出相应的语音信息。要设计一本能播讲故事的书,采用语音芯片往往会限制故事的长度。而采用微控器所实现的语音播放技术,则对该设计功能的实现带来极大的便利。其最主要的特点就是以SD卡作为存储介质,这样存储数据的容量就有了成百倍的扩展,从而突破了容量限制的瓶颈。在能耗方面,由于微控器多采用了低能耗技术且采用低电压供电,有利于采用电池供电并维持较长的使用时间。此外,在成本方面也没有什么增加。
语音播放基础
YL-KL26Z开发板是否具有语音播放功能呢?回答是肯定的,在开发板上已配备了语音播放的全部硬件支持。此外,它在配带的光盘上还提供了相应的示例程序源代码,为语音故事书的设计提供了基础性的支持。该例程位于YL-KL26Z开发板资料/测试源码/MDK/YL-K26Z_demo/SD_SPI/Demo_SD_wav目录下。
在对其进行测试前,需准备一个mini型的SD卡,然后将YL-KL26Z开发板资料/测试音频文件/1.wav文件复制到SD卡的根目录。并将此SD卡插入开发板的卡座中。然后对Demo_SD_wav/Keil目录下的kinetis_l_demo.uvpro项目文件进行编译。编译后再将Keil/DebugInFlash目录下的MKL_DebugInFlash.bin文件复制到由YL-KL26Z开发板所虚拟的U盘中。通过按下复位键,即可启动程序运行并发出声音,其实物图如下: