基于SPCE061A的通用汉字文本播音系统

[10-10 20:36:41]   来源:http://www.88dzw.com  电子制作   阅读:8205

文章摘要: 文本输入与语音播放必须很好地配合,系统采用环形缓冲区来协调这两个操作。串行口中断子程序每接收一个汉字就填人环形缓冲区,并移动写入指针。语音播放前先利用读出指针和写入指针判断环形缓冲区内是否有2字节或2字节以上的数据,若无则可进行其他操作;若有再判断该数据是否为汉字机内码。若不是只移动读出指针;若是则移动读出指针,并调用汉字语音播放函数进行单个汉字的语音播放。因为主程序的处理过程足够快,所以若汉字输入是连续的,则播放也是连续平滑的。系统的其他操作如键盘扫描及按键处理、显示驱动及数据更新等,也必须能与文本语音播放协调配合。系统调试时,在主程序循环中插入一个键盘扫描程序,用按键控制

基于SPCE061A的通用汉字文本播音系统,标签:电子小制作,http://www.88dzw.com
        
 
  文本输入与语音播放必须很好地配合,系统采用环形缓冲区来协调这两个操作。串行口中断子程序每接收一个汉字就填人环形缓冲区,并移动写入指针。语音播放前先利用读出指针和写入指针判断环形缓冲区内是否有2字节或2字节以上的数据,若无则可进行其他操作;若有再判断该数据是否为汉字机内码。若不是只移动读出指针;若是则移动读出指针,并调用汉字语音播放函数进行单个汉字的语音播放。因为主程序的处理过程足够快,所以若汉字输入是连续的,则播放也是连续平滑的。

  系统的其他操作如键盘扫描及按键处理、显示驱动及数据更新等,也必须能与文本语音播放协调配合。系统调试时,在主程序循环中插入一个键盘扫描程序,用按键控制音量增减、重复播放同一汉字等。因为一个汉字的解码播放和其他操作是交替进行的,所以进行其他操作时不能解码播放,解码播放时不能进行其他操作,这就要求其他操作执行时间不超过一个汉字的播放时间,否则会影响语音播放的实时性。另一方面,其他操作的间隔时间必须大于一个汉字播放时间,否则播放操作会影响其他操作。改进程序流程可以解决以上问题,若其他操作执行时间过长,可分解成几个操作与解码播放交替进行;若其他操作间隔时间要求较短,可将其他操作移到播放子程序的解码循环中,因为D/A输出频率为8 kHz,所以理论上每次循环时其他操作所用时间只要在0.125 ms以下就不会影响语音播放。

  4结束语

  本文实现了基于凌阳SPCE061A的通用汉字文本语音播放系统。实际应用中还有一些细节问题要考虑,多音字可用读音相同的汉字代替播放;若文本中夹有英语字母,只需在语音资源中加入字母发音数据,原理与汉字播音完全相同。本系统的最大优点是硬件简单,成本低廉,软件效率高。在播音的同时还能进行其他复杂的控制操作。

上一页  [1] [2] [3] 


Tag:电子制作电子小制作维修教程知识 - 电子制作