详解ISD1700系列语音芯片的使用方法

来源:互联网 发布:易语言ce助手源码 编辑:程序博客网 时间:2024/05/14 06:37

日常生活中,语音提示系统随处可见,如语音门铃、语音时钟、ATM存取款机、公交车报站等,语音功能越来越多应用在电子系统中。

ISD1700系列是华邦公司推出的一块优质语音录放芯片,用来替代已经停产的ISD1400系列和ISD2500系列芯片。

ISD1700系列不仅在录音时间上有更多的选择,而且在功能上增加了更加人性化的操作,且音质也有所提高。

ISD1700系列包含很多种型号,录音时间长短不一,价格也有所差异。

常见的有:ISD1720,ISD1730,ISD1760,ISD1790,ISD17120,ISD17180,ISD17240。

但是很多人拿到芯片的时候并不知道怎么用,比如要做一个语音时钟,有按键按下或者整点的时候会自动播放当前时间、温度等数据。

 

其实语音芯片的使用很简单,无非就是录音和放音。

预先将需要播放的语音录进去,在需要的播放的时候调用语音段地址进行播放就OK了。

 

首先,如何进行录音呢?

 

在芯片的数据手册中得知,ISD1700系列支持2种录音方式:线录和麦克风录。

 

所谓线录,就是将音频文件(.mp3,.WAV)通过音频线输入到芯片的第9脚(Anala)

而麦克风录音呢,就是外接一个小咪头,加上一些外围的元器件,从第10脚和第11脚录入。

 

典型的应用电路可参照数据手册:

 

在实际应用中选其中一种或者两种一起都是可以的。

 

只有音源输入还不行,芯片不会自动将声音录入。

想要录音,在有音源输入的同时,还要启动录音功能。

 

启动录音也有两种方式:按键启动和SPI启动。

 

按键启动:就是按住REC按键,此时就开始录音了,待录音结束释放按键即可。

SPI启动:利用MCU发录音命令给语音芯片,语音芯片收到命令后开始录音。此时录音也不会自动停止,所以需要在录音结束时还需要发一个STOP命令过去。

 

按键录音的优点是操作简单,只需在芯片第24脚接一个轻触按键即可。缺点是功能单一,不灵活,录音都是按顺序录入的。

 

而SPI命令需要一个MCU,如传统的89C51单片机,与语音芯片通过SPI接口通信,还需要编写程序,实现较为复杂。但它的优点也是非常明显的,除了可以顺序录音外,还能指定地址录音。

此外,用SPI通信还可以操作到语音芯片的全部功能。具体可芯片参考数据手册。

 

如果麦克风录音,按住录音按键直接对麦克风讲话就可以了。

 

如果是线录录音,我们需要一个音频文件,那么如何获取这些语音文件呢?

 

当然我们自己就可以,通过麦克风录音电脑即可。

但大多数情况下这种录音效果并不好。不是自身音色不佳就是会混入杂音。

还有一种方法就是请专门的播音人员录制,再经后期软件处理,像电视广告那种,这种方式录音效果无疑是最好的。

但是这种需要花费不少银子。

 

在这里,我推荐大家用一款语音合成软件:科大讯飞语音合成软件。

软件集成有男声库和女生库,只需输入文字,就可以播放语音并合成音频文件。适合于一般场合的应用。

安装文件较大,建议大家可以到网上搜索下载或者直接向我索要。

运行界面如下图:

 

好了,假设已经录音完毕。那么如何播放呢? 

播放也有两种方式:按键播放和SPI

 

按键就是按一下播放按键,语音芯片就会播放当前语音段(所谓当前语音段,就是播放指针指向的那一段语音段)。

录音完后,播放地址默认指向最后一段。

而按一下下一段按键(接在第26脚),就能使播放指针指向下一段,从而播放下一段语音段。

所以按键播放也是只能循环顺序播放。对于应用丰富的智能系统,显然不能满足要求。

 

因此,大多数基于ISD1700的语音系统都是采用SPI通信,才能够灵活播放指定的任意语音段。

而指定播放语音段则需要知道每个语音段的始末地址

如何获取语音段的详细地址,是实际应用中的关键。

 

也有两种方法:

一是通过计算的方法。

二是通过专业的工具,利于上位机软件直接读取。

 

首先讲一下计算的方法。

以ISD1760为例,我们知道,1760芯片在标准8KHz的采样率下,能够录制60S的语音时长。

而通过芯片数据手册得知,1760最大的存储地址是0x01EF。

需要注意的是,录音地址是从0x0010开始,并不是从0x0000开始。

所以整个芯片可用的录音地址是:0x01EF - 0x0010 = 0x01DF。

所以每个地址单元可录制的时长为:60S / 0x01DF = 0.0125S。

假设录了一段2S长的语音段,则占用了2/0.0125 = 160个地址单元。

如果是从0x0010开始录音的,那么结束地址应该就是0x00B0 (0x0010+160 = 0x00B0)。

其它语音段依次类推。

 

需要说明的是:推算出来的结果是存在误差的。

原因是因为采样电阻不精密或者受温度影响,可能导致采样率有些偏差,而重复计算也存在累积误差。

所以这种方法只能用于估算,并不能精确定位语音段的地址。

 

要想精确得知语音段的始末地址,则需要借助专业的编程器/拷贝机。

 

网上搜索一下“语音芯片拷贝机”,就会有很多结果。

在此不指名哪个品牌,以免有广告之嫌。

这些产品一般都是配有上位机软件,可以利用串口或者USB口与电脑连接,在上位机上进行录音、擦除、播放、准确读出每个语音段的地址、批量拷贝等功能。

可是,如此强大的拷贝机/编程器,价格可想而知,也是相当贵的,一般价位都在800元,1000元以上的也有,最便宜的也需要500元左右。

这对于个人开发而言,特别是一些学生朋友们,显然是无法接受的。

 

为此,灵动电子开发并推出了2款适用于ISD1700系列语音芯片的开发学习工具。

1、灵动ISD1700系列语音芯片录音板

这款超值的学习套件功能强大,同时兼容独立按键模式和SPI模式,配合上位机软件,可对语音芯片进行查询、录音、擦除、播放、定点录音、定点擦除、定点播放等全部功能。

同时还提供整个学习板的硬件原理图(Protel格式)、C51源程序、使用说明书等全套资料。

2、灵动ISD1700系列语音芯片拷贝机/编程器

灵动拷贝机编程器除了具有上面的录音板功能外,还有以下特点:

自动识别并支持ISD1700全系列的各个型号;

支持话筒录音、线路录音、混合录音;

批量拷贝,1个母片可同时对2个子片进行拷贝复制,适合工厂量产;

可完全脱离PC(电脑) ,实现全部功能;

自带LCD1602 显示屏、系统按键、ISD独立按键;

串口模拟SPI指令,即通过上位机即可操作ISD芯片的全部SPI命令。

   

原创粉丝点击