ISD1700系列应用心得(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
分段录音母片制作
今年夏,因产品需要,原来的ISD1400系列的语音芯片,已经不能在产品上使用了。迫不得已,改用ISD1700系列的了。
跑遍深圳市场,没有一家能够提供ISD1700系列语音芯片的开发工具,如编程序器、烧录音器什么的,没办法,只好自己做。
在制作(ISD1700TOOLS)过程着,也对ISD1700系列芯片,有新的认识,现将一些心得,记录下来。主要目的是给自己做一个资料整理,以便日后有需要时,好有个查找。因断断续续写(本来就没打算要发表,权当工作记录),读取来显得零散。
这些心得,不敢说对刚刚接触ISD1700的工程师,有些帮助。只要你不嫌我行文罗嗦,你就将就着看吧,我得说声谢谢了。
好像有许多要说的,不知从何说起。就先所说昨天对ISD1700分段语音的录制说起吧。
【分段录音实例】
【应用背景】
这是一个应用在监控报警设备上的案例。有一监控设备,共有32个防区。单片机监控这些防区,发现异常(状态改变)时,发出语音报警。报警内容为:
“防区代号”+“防区”+“防区名称”+“报警”
如:03防区为“财务中心”,出现异常时,发出的报警语音为:
03防区财务中心报警
每个防区均用“防区代码”和“防区名称”映射。防区名称可由用户更改。
【思路】
根据应用要求,对语音进行分段录制和播放,需要播放时,根据报警点,进行组合放音。
本案例中,采用ISD1740语音芯片,正常8K采用时,可存储40秒语音信息。因本例中是使用电话语音播放,故用4K采样频率。这样可录放的语音长度为80秒。
好了,下面将各分段的“语音元素”(嘿嘿,我这样称呼),规划如下。原文件是用Excel做的,加上几个公式,得到如下的表格:
AddName | 内容 | 时长(秒) | 字节 | SH | SL | EH | EL | SetPlay | SetRec | SetDel |
Isd0 | 0 | 0.5 | 2 | 00 | 10 | 00 | 11 | 900010001100 | 910010001100 | 920010001100 |
Isd1 | 1 | 0.5 | 2 | 00 | 12 | 00 | 13 | 900012001300 | 910012001300 | 920012001300 |
Isd2 | 2 | 0.5 | 2 | 00 | 14 | 00 | 15 | 900014001500 | 910014001500 | 920014001500 |
Isd3 | 3 | 0.5 | 2 | 00 | 16 | 00 | 17 | 900016001700 | 910016001700 | 920016001700 |
Isd4 | 4 | 0.5 | 2 | 00 | 18 | 00 | 19 | 900018001900 | 910018001900 | 920018001900 |
Isd5 | 5 | 0.5 | 2 | 00 | <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1A | 00 | 1B | 90001A001B00 | 91001A001B00 | 92001A001B00 |
Isd6 | 6 | 0.5 | 2 | 00 | 1C | 00 | 1D | 90001C001D00 | 91001C001D00 | 92001C001D00 |
Isd7 | 7 | 0.5 | 2 | 00 | 1E | 00 | 1F | 90001E001F00 | 91001E001F00 | 92001E001F00 |
Isd8 | 8 | 0.5 | 2 | 00 | 20 | 00 | 21 | 900020002100 | 910020002100 | 920020002100 |
Isd9 | 9 | 0.5 | 2 | 00 | 22 | 00 | 23 | 900022002300 | 910022002300 | 920022002300 |
IsdZc | 正常 | 1 | 4 | 00 | 24 | 00 | 27 | 900024002700 | 910024002700 | 920024002700 |
IsdBj | 报警 | 1 | 4 | 00 | 28 | 00 | 2B | 900028002B00 | 910028002B00 | 920028002B00 |
IsdTd | 停电 | 1 | 4 | 00 | 2C | 00 | 2F | 90002C002F00 | 91002C002F00 | 92002C002F00 |
IsdKm | 开门 | 1 | 4 | 00 | 30 | 00 | 33 | 900030003300 | 910030003300 | 920030003300 |
IsdGd | 供电 | 1 | 4 | 00 | 34 | 00 | 37 | 900034003700 | 910034003700 | 920034003700 |
IsdZd | 红外 | 1 | 4 | 00 | 38 | 00 | 3B | 900038003B00 | 910038003B00 | 920038003B00 |
IsdFq | 防区 | 1 | 4 | 00 | 3C | 00 | 3F | 90003C003F00 | 91003C003F00 | 92003C003F00 |
IsdByq | 变压器 | 1.5 | 6 | 00 | 40 | 00 | 45 | 900040004500 | 910040004500 | 920040004500 |
IsdKzgm | 控制柜大门 | 1.75 | 7 | 00 | 46 | 00 | 4C | 900046004C00 | 910046004C00 | 920046004C00 |
IsdXL | 线路 | 1 | 4 | 00 | 4D | 00 | 50 | 90004D005000 | 91004D005000 | 92004D005000 |
IsdCh0 | 00防区 | 1.75 | 7 | 00 | 51 | 00 | 57 | 900051005700 | 910051005700 | 920051005700 |
IsdCh1 | 01防区 | 1.75 | 7 | 00 | 58 | 00 | 5E | 900058005E00 | 910058005E00 | 920058005E00 |
IsdCh2 | 02防区 | 1.75 | 7 | 00 | 5F | 00 | 65 | 90005F006500 | 91005F006500 | 92005F006500 |
IsdCh3 | 03防区 | 1.75 | 7 | 00 | 66 | 00 | 6C | 900066006C00 | 910066006C00 | 920066006C00 |
IsdCh4 | 04防区 | 1.75 | 7 | 00 | 6D | 00 | 73 | 90006D007300 | 91006D007300 | 92006D007300 |
IsdCh5 | 05防区 | 1.75 | 7 | 00 | 74 | 00 | 7A | 900074007A00 | 910074007A00 | 920074007A00 |
IsdCh6 | 06防区 | 1.75 | 7 | 00 | 7B | 00 | 81 | 90007B008100 | 91007B008100 | 92007B008100 |
IsdCh7 | 07防区 | 1.75 | 7 | 00 | 82 | 00 | 88 | 900082008800 | 910082008800 | 920082008800 |
IsdCh8 | 08防区 | 1.75 | 7 | 00 | 89 | 00 | 8F | 900089008F00 | 910089008F00 | 920089008F00 |
IsdCh9 | 09防区 | 1.75 | 7 | 00 | 90 | 00 | 96 | 900090009600 | 910090009600 | 920090009600 |
IsdCh10 | 10防区 | 1.75 | 7 | 00 | 97 | 00 | 9D | 900097009D00 | 910097009D00 | 920097009D00 |
IsdCh11 | 11防区 | 1.75 | 7 | 00 | 9E | 00 | A4 | 90009E00A400 | 91009E00A400 | 92009E00A400 |
IsdCh12 | 12防区 | 1.75 | 7 | 00 | A5 | 00 | AB | 9000A500AB00 | 9100A500AB00 | 9200A500AB00 |
IsdCh13 | 13防区 | 1.75 | 7 | 00 | AC | 00 | B2 | 9000AC00B200 | 9100AC00B200 | 9200AC00B200 |
IsdCh14 | 14防区 | 1.75 | 7 | 00 | B3 | 00 | B9 | 9000B300B900 | 9100B300B900 | 9200B300B900 |
IsdCh15 | 15防区 | 1.75 | 7 | 00 | BA | 00 | C0 | 9000BA00C000 | 9100BA00C000 | 9200BA00C000 |
IsdCh16 | 16防区 | 1.75 | 7 | 00 | C1 | 00 | C7 | 9000C100C700 | 9100C100C700 | 9200C100C700 |
IsdCh17 | 17防区 | 1.75 | 7 | 00 | C8 | 00 | CE | 9000C800CE00 | 9100C800CE00 | 9200C800CE00 |
IsdCh18 | 18防区 | 1.75 | 7 | 00 | CF | 00 | D5 | 9000CF00D500 | 9100CF00D500 | 9200CF00D500 |
IsdCh19 | 19防区 | 1.75 | 7 | 00 | D6 | 00 | DC | 9000D600DC00 | 9100D600DC00 | 9200D600DC00 |
IsdCh20 | 20防区 | 1.75 | 7 | 00 | DD | 00 | E3 | 9000DD00E300 | 9100DD00E300 | 9200DD00E300 |
IsdCh21 | 21防区 | 1.75 | 7 | 00 | E4 | 00 | EA | 9000E400EA00 | 9100E400EA00 | 9200E400EA00 |
IsdCh22 | 22防区 | 1.75 | 7 | 00 | EB | 00 | F1 | 9000EB00F100 | 9100EB00F100 | 9200EB00F100 |
IsdCh23 | 23防区 | 1.75 | 7 | 00 | F2 | 00 | F8 | 9000F200F800 | 9100F200F800 | 9200F200F800 |
IsdCh24 | 24防区 | 1.75 | 7 | 00 | F9 | 00 | FF | 9000F900FF00 | 9100F900FF00 | 9200F900FF00 |
IsdCh25 | 25防区 | 1.75 | 7 | 01 | 00 | 01 | 06 | 900000010601 | 910000010601 | 920000010601 |
IsdCh26 | 26防区 | 1.75 | 7 | 01 | 07 | 01 | 0D | 900007010D01 | 910007010D01 | 920007010D01 |
IsdCh27 | 27防区 | 1.75 | 7 | 01 | 0E | 01 | 14 | 90000E011401 | 91000E011401 | 92000E011401 |
IsdCh28 | 28防区 | 1.75 | 7 | 01 | 15 | 01 | 1B | 900015011B01 | 910015011B01 | 920015011B01 |
IsdCh29 | 29防区 | 1.75 | 7 | 01 | 1C | 01 | 22 | 90001C012201 | 91001C012201 | 92001C012201 |
IsdCh30 | 30防区 | 1.75 | 7 | 01 | 23 | 01 | 29 | 900023012901 | 910023012901 | 920023012901 |
IsdCh31 | 31防区 | 1.75 | 7 | 01 | 2A | 01 | 30 | 90002A013001 | 91002A013001 | 92002A013001 |
IsdZj | 主机名称 | 4 | 16 | 01 | 31 | 01 | 40 | 900031014001 | 910031014001 | 920031014001 |
表格说明,只要你的ISD1700稍微熟悉,应该明白上表的内容。
【母片制作】
第1步:准备声源文件
找一个录音软件,各种录音编辑软件应该不难找。我是用WindowsXP自带的“录音机”程序。就在“程序\附件\娱乐\录音机,别看它简单,可比较实用。后来,同事还送我一个Cool Edit Pro2.1,中文汉化的,也蛮好用。
录音,找个清静的地方,自己对着话筒,吼吧。不满意自己的声音,就找个漂亮妹妹当播音员吧。嘿嘿,我准备叫老婆帮忙,北京的MM,标准的普通话。
还有,登录安徽科大讯飞,利用语音合成演示软件,可以进行语音合成。不过版权问题,自己解决,你要盗版,与我无关。
总之,将声源文件准备好,看看我的:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
第2步:打开录音机,试试看播放一段语音
第3步:连接硬件
① 电脑喇叭输出口,接ISD1700TOOLS编程器的LINE输入(右下角的浅绿色插座),对用线路录音的方式。
② 音响线接ISD1700TOOLS编程器的喇叭输出插孔(黑色的那个),用来做录音监听。
③ 连接好串口线
④ 最后别忘记连接电源
第4步:打开串口调试助手,如下图设置好波特率
第5步:插入ISD1740芯片,打开编程器电源开关
第6步:调整采样频率。
将编程器选择到【功能1】,设置采样频率为4K。只需要设置一次,编程器将采样频率保存到EEPROM中,下次重新更改之前,采样频率不变。
第7步:设置PC-SPI模式及声控模式。
将ISD1700TOOLS编程器,选择到功能7,将“声控”模式选择到SC:M,即MIC话筒声控模式。
第8步:上电,设置APC寄存器。
在串口调试助手中,输出上电指令,即在发送对话框中输入“0100回车”,再点击“手动发送”,这时,应该得到回复:
MOSI:0100
MISO:0300
如果没有回复,则检查前几步是否正确。
接下来,更改APC寄存器。设置为线路输入录音,监控开。输入如下指令:“650804回车”,点击“手动发送”,同样会得到回复。
此时,点击电脑的录音机放音,声音可通过ISD1700输出的监听的音箱上,如果听不到声音,则前几步错误,返回检查或重新设置。
第9步,输入指定录音指令SetRel
我们来录音“0”到ISD中
在串口调试助手软件中,输入:910010001100,回车,点击手动发送。
提示:参照上表,将SetRel列中的对应的内容,复制,然后粘贴到串口调试软件中,我的表格是在EXCEL中制作的,这样不容易出错。(需要EXCEL原文件的朋友,跟我联系:TEL:13602696863,Email:isd1700@163.com,kuheye@163.com,QQ:798183213)
这时,ISD1700编程器的LCD上,显示如下:
第10步,关键一步。
先说说原理吧,因为声控模式选择为话筒声控。而录音模式选择为线路录音,乍看起来,好像不合理,其实不然。
ISD1700编程器会自动拦截录音指令,然后在根据声控模式,等待声控触发。就是说ISD1700编程器的单片机,已经将录音指令准备好,就等声控触发了。
好,关键一步操作:
同时进行下面两个操作:
① 用鼠标点击“录音机”播放(你播放的声源文件要先装载好);
② 对准编程器的话筒,吹一声口哨。
口哨声是标准的正弦波,可作为话筒触发的声源,如果你不会吹口哨的话(你丫的是太监不成,口哨都不会吹?),那就弄点响声出来(敲桌子摔板凳,大声咳嗽,喊救命都行)。
好了,一段录音完成,而且是按指定的地址录音。试听一下,按ISD1700编程器的按PLAY键(即ISD1700独立按键,小按键左边第一个),听听刚刚录制的声音满意否。
如果不满意,删除,在串口调试软件中输入:920010001100,即SetDel命令。回到第9步,重新操作。
如果满意,那就进行下一段录音,重复第9步执行。
如法炮制,依次录制其他分段录音。
母片制作完成后,可利用ISD1700TOOLS的编程器,进行整片拷贝,多备份几个母片,具体详见ISD1700【功能4】
文章评论(0条评论)
登录后参与讨论