ISD1700系列应用心得(一)
分段录音母片制作
今年夏,因产品需要,原来的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
|
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,标准的普通话。
还有,登录安徽科大讯飞,利用语音合成演示软件,可以进行语音合成。不过版权问题,自己解决,你要盗版,与我无关。
总之,将声源文件准备好,看看我的:
第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】
系统分类: 汽车电子 | 用户分类: 无分类 | 来源: 无分类 | 【推荐给朋友】 | 【添加到收藏夹】