基于ISDl420的语音编辑器设计
[10-10 20:38:44] 来源:http://www.88dzw.com 单片机学习 阅读:8645次
文章摘要: 为方便起见,系统采用平均分段管理方式。根据ISDl420语音芯片器件使用手册可知,最多可分为160个段。其中,O~159为分段使用的有效地址。系统按1 s四个字的语速算,对于20 s的存储空间来说,最多不能超过80个段,该时段空间最小为1个字。其分段范围为1<分段数<80,在这个前提下,用户可根据实际需求来分段,段号为O~79。在执行[分段]命令时,要将地址间隔计算出来,以便段号与语音芯片地址映射。地址间隔存于专用地址间隔单元spacing中。分段寄存器seg_num:存放执行[分段]命令后的分段数。用户进行录音、放音的段号,程序必须验证在此范围方可执行,否则提示错误信息“
基于ISDl420的语音编辑器设计,标签:单片机开发,单片机原理,http://www.88dzw.com
为方便起见,系统采用平均分段管理方式。根据ISDl420语音芯片器件使用手册可知,最多可分为160个段。其中,O~159为分段使用的有效地址。系统按1 s四个字的语速算,对于20 s的存储空间来说,最多不能超过80个段,该时段空间最小为1个字。其分段范围为1<分段数<80,在这个前提下,用户可根据实际需求来分段,段号为O~79。在执行[分段]命令时,要将地址间隔计算出来,以便段号与语音芯片地址映射。地址间隔存于专用地址间隔单元spacing中。分段寄存器seg_num:存放执行[分段]命令后的分段数。用户进行录音、放音的段号,程序必须验证在此范围方可执行,否则提示错误信息“E”。系统默认分段数seg_num为40,spacing为4,分段确定后,段地址可以由下式计算:
分段地址=seg_num×spacing
地址间隔=160/seg_num
暂存器temp:系统预留一个单元。用来以二进制数方式存放段号。以temp_sign为暂存器标志,用于指示按键输入,其等于0时,段号只有1位;等于1时,段号有2位。前次数字键是十位,当前数字键是个位。如果是两位数,程序要对这两位二一十进制数进行计算,转换成二进制数,即BCD十位×10+BCD个位。存入temp。当执行录音、放音、分段操作时,程序从temp取参数,计算段地址。用户在输入段号时,如果出现错误,可重新输入。第一次输入的段号,将被第二次输入的段号覆盖。
组合段缓冲ally_buf:系统预留1O个单元,只有执行组合放音时才用。组合是所有段中任意选择10个段构成的队列。系统用ally_point-er作为入队地址指针,以ally_out作为出队地址指针。组合放音时,在该指针指示下,依次将录音段从缓冲区中取出播放,以构成短语,直到ally_out=ally_pointer。程序在没有执行[组合]功能时,保持ally_pointer=O;当用户按下[组合]键时,程序应将暂存器temp的内容传入ally_buf中,并修改ally_pointer。在执行[放音]时,程序首先检查ally_pointer是否等于0,是,执行temp的段放音;否则。执行ally_buf的段放音,直到FF标志。用户指令单元dictate;存放用户指令。主程序从这里识别用户命令,并执行命令。命令标志sign_dic:其等于O时,当前按键为数字键。等于1时,当前按键为命令键。命令与数字的识别:当键盘码大于7F时,为数字按键,否则为命令按键。七段显示:O~9,E为错误提示。这里采用共阴极7段数码管,如图6所示。
出口如下:
temp为对应段号的二进制数。可以直接计算段地址,最大范围,小于分段数seg_num。
sign_dic等于1时,请求执行dictate中的命令。
dictate为命令代码。
5 结语
按照该方法设计的语音编辑器可行性强,操作简单,界面清晰,在实际的生活中,该语音编辑器经过改进后可以很方便地应用到MP3,DVD,录音笔等音频设备中,同时也可以用到远程语音控制中。与其他的相比,该语音编辑器具有价格更低廉,可单独作为器件来实现,因此具有一定的实用价值。
《基于ISDl420的语音编辑器设计》相关文章
- › 基于ISP1362的U盘MP3播放器设计
- › 基于ISP技术及89C55单片机的图像处理系统设计
- › 基于ISL3300x设计的I2C总线扩展方案
- › 基于ISDl420的语音编辑器设计
- › 基于ISDl420的多路语音报警系统
- 在百度中搜索相关文章:基于ISDl420的语音编辑器设计
- 在谷歌中搜索相关文章:基于ISDl420的语音编辑器设计
- 在soso中搜索相关文章:基于ISDl420的语音编辑器设计
- 在搜狗中搜索相关文章:基于ISDl420的语音编辑器设计