论述了基于ISD1420和AT89C55的数字语音录放系统的设计方案,将其应用在智能地磅数据采集器 中,成为能够实现人机对话功能的语音提示器,可以大大提高工作效率,为智能地磅数据采集器的 推广使用提供了广阔的空间。
0.引言
随着现代电子、电器产品及设备智能化水平的 不断提高,数字语音系统在国内外都得到了广泛的 应用,渗透到仪器仪表、机电一体化、人工智能、 邮电业务等许多领域。传统语音组合电路设计复 杂,开发工具昂贵,语音录制及软件编制工作量巨 大,组合出来的语音效果也不甚理想,尤其在投资 不大的产品、系统中最为突出,从而制约了这一技 术的应用和发展。近几年来,模拟存储语音技术的 ISD芯片及其廉价的开发编辑工具的问世,才使得 情况大为改观。本文详细地论述了基于语音芯片 ISD1420和AT89C55的数字语音录放系统的设计方 案。
1.系统结构设计
用语音芯片ISD1420和单片机AT89C55设计的 数字语音录放系统应用在智能地磅数据采集器中, 只需简单的按键操作,就能实现人机对话控制,如 提醒货车上衡,对木材重量做出指示等。ISD1420可 分段存贮20s语音信息,将ISD1420的A1 -A7与单 片机CPU的I/O 口连接,可单独提取160段语音信 息,并且在软件的支持下可自动组合成若干段所需 要的完整的长短句。如:“欢迎使用,请上衡”,“木 材重量为五千三百二十六千克,请下衡”等。这样 既减少了人为操作的弊端,又方便了用户使用,为 智能地衡数据采集器的推广使用提供了更广大的空 间。系统框图如图]。
由图1可知整个数字语音系统的工作过程,当 用户进行录音或放音的按键操作时,单片机就会通 过口线给出语音段的起始地址,再给出低电平去触
发录音或放音。
1.1功放电路
功放电路如图2,若要改变放大电路的低段频 率响应,则可在电路图的1脚和5脚间串接一个RC 网络,该串接RC网络的阻容值应视具体要求而调
整。
1.2 ISD1420语音组合电路
1.2.1语音组合电路的原理
ISD1420是采用模拟存取技术集成的可反复录 放的20s语音芯片,具有掉电保护功能,最大可分 160段,最小每段语音长度为125ms,每段语音都可 由地址线控制输出,每125ms为一个地址,由A0- A7 8根地址线控制,用户录制的语音每一段结束后, 芯片自动设有段结束标志(EOM),芯片录满后设 有溢出标志(OVF)。如果用单片机控制电路按某一 段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志 (EOM )就开始触发下一段语音的起始地址,如此 控制便可以将很多不同段的语音组合成一句话放出 来,实现语音的自动组合。
每个语音段的时间其关系公式为:
7= 0.125 x (128A7+64A6+32A5+16A4+8A3+4A2+ 2A1+0)
用户可以先通过专用的ISD1425语音编程拷贝 机将需要的语音分段编程、连续录制到芯片中,每 段语音的长度不限,制成语音源片后,将源片的录 音端封住不让其再做录音操作,再由单片机电路控 制放音,其过程为:首先单片机将ISD1420语音芯 片完整搜索一遍,自动找出每一段的起始地址,按 分段顺序编号存入外置的串行存储器中;然后用户 通过单片机串口发出指令,单片机即将这些段的编 号、地址一一调出;依次向语音芯片发出首地址; 放音该段;该段结束;单片机收到EOM标志;单 片机发出下一段语音的首地址;放音该段,如此工 作?直到要求的一句话合成完毕。
这种控制方式有较强的通用性和方便性,它不 需要事先规定每段语音的时间长度、总段数,甚至 不需要知道每段语音在ISD1420芯片上的具体地址, 只要用户记住录入语音的段顺序即可控制各段语 音,头现自由组合。
1.2.2语音组合电路
语音组合电路如图3。首先,跳线开关置于“1- 2”学习功能位上,用户按动按键AN,单片机 AT89C55即控制ISD1420语音芯片从头至尾放音一 遍,它会将语音芯片中的每一段语音的起始地址都 记录到串行存储器24C16中,即完成了芯片搜索操 作。然后,跳线开关置于“2-3”组合功能位上,用 户可按照RS-232标准串口协议向单片机的RX端发 送合成指令,单片机即将合成命令翻译成对应的语 音芯片中各段语音的起始地址,并控制语音芯片发 出需要的语音,一段结束后立刻又播发需要的下一 段,如此将一句话合成“说”完。在单片机的TX 端将作为忙信号端使用,当有语音输出时该端将保 持低电平,空闲时为高电平。
单片机遵循标准5V的RS-2 32串口协议方式 (TX、RX双线,串口方式一、无校验),整个电路 的电源电压5-12V,静态电流13mA,工作电流 150mA,接口电平5V,外接喇叭4-8 0,输出音频 功率0.5W,还可以方便地外接功放机或有源音箱扩 音使用。
2.语音录放系统的应用
某系统中需要一个能提示货车上下衡以及播报 木材重量的语音单元,经过对所有语句的拆字分 析,有以下23段字、词素、提示音需要组合使用: 幺(00)、零(01)、-(02)、二(03)、三(04)、四(05)、五 (06)、六(07)、七(08)、八(09)、九(0A)、十(0B)、百 (0C)、千(0D)、千克(0E)、木材重量为(0F)、欢迎 使用(10)、请(11)、上(12)、下(13)、衡(14), 谢谢使用(15),再见(16)。可以先找专业播音员 将这些字、词录到磁带上,再转录到多媒体电脑中, 其中的“嘟嘟”提示音可从电脑的音效文件中找到, 然后通过ISD1425语音编程拷贝机及其电脑软件, 将这些语音都按上述顺序分段录入到ISD1420芯片 中。然后将ISD1420芯片插到本语音组合电路板上。 插上新的语音片后语音组合电路还需要搜索并存储 一次该语音芯片的各段地址,当我们需要语音单元 说“木材重量为一千二百六十千克,请下衡,谢谢 使用! ”时,就可以按照语音芯片中语音段的段位 序号和命令格式对本电路单片机的RX端发码_? AA AA0F01 0D 03 0C 07 OB 0EDD11 13 14DD15FF。其中 “AA AA”表示“下面开始输入放音的段号了”, “DD”是表示此时要暂停放音0.5s,相当于一个逗 号,“0F”是用十六进制表示的语音芯片第16段(十 进制),这一段是语音“木材重量为”,如此类推都 是要播放的各段语音,最后“FF”表示“现在即将 上述各段语音顺序播放出 来”。代码发完后要合成的 语句也就随之播放出来了。
3.软件设计
录、放音的程序流程图如图4。
例:放音内容为“木材重量为1852kg”,各字段 录入如下:
语音信息:0 1 9千百十木材重量为千克 录音段控制码(H) 40 41 …48 49 4A 4B 4C 4D ~ 50 51 -53
放音段控制码(H) 80 81 …88 89 8A 8B 8C 8E-91 92-93
千、百、十、个位数的控制码分别放在R0、R1、 R2、R4 中
程序入口:
ALARM: MOV 40H,#8EH 木材重量为”字段 ACALL PLAY ;调放音子程序(子程序中延时为
1.5s)
MOV 40H,R0 ACALL PLAY MOV 40H,#8AH ; “ ACALL PLAY MC)V40H,R1; “8” ACALL PLAY MOV 40H,#8CH ; “ ACALL PLAY MC)V40H,R2; “5” ACALL PLAY MOV 40H,#8EH ; “ ACALL PLAY MOV40H, R3; “2”
ACALL PLAY MOV 40H,#92H;“千克”
ACALLPLAY;
END
说明:40H是放音子程序的入口参数,调用子 程序前先将控制码放入40H,按照语句的顺序选择 对应的字或词段组合放音,即可实现所要播放语 句。
4.结束语
将数字语音录放系统应用在智能地磅数据采集 器中,可以指导人们如何对智能地衡进行控制,不 仅减少了人为操作的弊端,而且方便了广大的使用 者。本文所论述的是一个简单的设计理念.完全可 以应用能录音放音时间更长的IS D系列的其他芯 片,实现更长时间的语音组合,将更丰富的语音信 息录入其中,这样人机对话的功能将更加强大。人 们也可以对单片机小系统进行功能扩展,如加上实 时时钟芯片12887进行时间功能的控制,还可以加 上程序存储器、锁存器、键盘、A/D和D/A、PRINT 等,这样对语言提示器的控制就更方便、更完善了。