摘 要: 本文讨论了在一片ISD芯片中分段采用不同的采样频率,从而取得不同的录音质量和录音时间的方法
关键词: 语音录放;采样变换;语音芯片
Winbond公司的ISD系列语音芯片因为采用了独特的模拟数据直接存储技术,使其声音存贮效果较以前产品有大幅提高,实际试听主观评价可以达到磁带录音机的水平,是目前市场上录放效果最好的语音电路之一。
我们在开发产品“多功能英语语音示教仪”时,需要做大容量的语音存储重放。产品要求除了能够存储全部的英语音标、字母外,还要存储所有初中英语课本中的英语单词、词组,经过计算,所有的语音录音时间加起来,约有10多分钟,我们选择的ISD4004系列芯片有4个型号,分别可以存储不同时长的声音,如表1所示。
ISD各个型号的内存容量是一样的,但是声音采样频率不一样,因此录放的时间也不一样。虽然其中有10分钟和12分钟的型号,因为其采样频率低,会造成录音内容损失更多的高频信息。经过对比试听,发现如果用8kHz的采样频率,可以比较好的完成语音的重播,达到语音教学的目的,而如果用6.4kHz或以下的采样频率,语音中的高频部分会有较多的损失,采样频率越低,损失越大,当采样频率降低到5.3kHz左右时,如果是单词、词组等,仍然可以很容易分辨,但如果是重放发音相近的字母、音标,比如b和d、[z]和[s]时,则很难分辨,达不到教学的要求。
为了达到存储全部语音信息,有三个解决方案可供选择,第一是用一片ISD4004-08M,再增加一片小容量的语音芯片(8kHz采样率),这样音质最好,但是成本高。第二是用一片小容量的ISD芯片(8kHz采样频率),再配合一片ISD4004-10M,这样音质要求高的字母音标存于8kHz采样率芯片中,而对音质要求较低的单词、词组等则存于低采样率芯片中,这个方案成本稍低一些,但是仍然要用两片芯片,成本上仍不理想。第三种方案是使用一片ISD4004芯片,对片内的不同录音段分别使用不同的采样率,这个方案因为只需要使用一片芯片而成本最低,但是因为不同于其典型的应用,没有相关应用实例可以参考,因此其效果需要经过试验验证。
ISD系列芯片均有一个外部时钟输入引脚XCLK,如果该引脚接地,则芯片使用在出厂时已经设定的内部时钟。如果对该引脚输入一时钟信号,则芯片内的采样频率就由外部时钟频率来决定,根据其资料显示,当外部时钟频率为1024kHz时,内部声音的采样频率是8kHz。
查阅ISD4004的数据手册,其中并无关于改变时钟频率应用的说明,相反倒是有不能改变时钟频率的提示,原因是芯片内的抗混叠(antialias)电路和输出滤波电路均已经是固定的,改变采样频率,会影响这两个电路正常发挥作用。
但是在我们的应用中是降频使用,采样频率降低,相当于抗混叠电路和输出滤波器的设定频率偏高,这样应该不会对还原质量造成影响,有可能使信噪比下降,但如果频率改变不大,信噪比下降将会很有限。
为了验证我们的推论,进行了两个测试,一个是降频使用的测试,一个是分段降频的测试,即在同一片中分别使用两种不同的时钟频率的测试。
首先,在测试前,需要对ISD芯片编程器进行一些改造,我们将ISD4004的时钟输入XCLK引脚断开,接入可调频率发生器,测试芯片在不同时钟频率下的工作情况。我们用一片ISD4004-8M(内部频率1024kHz),在录音和重放时分别将外部频率调整到682kHz和512kHz,与ISD4004-12M和ISD4004-16M相比较。经比较发现,ISD4004-8M在682kHz时,与ISD4004-12M在录放效果上,基本上没有可察觉的差别;在512kHz时,与ISD4004-16M相比,除感觉声音略微有些“发毛”外,也没有明显的差别,这就证明,ISD芯片可以适当降低频率使用,以获得更长的录放时间,适合在对语音质量要求不是很高,以及频率降低的范围不很大的应用中。
第二步,测试在同一芯片内使用不同的时钟频率,具体测试方法是,使用ISD4004-8M芯片,前半段录音使用1024kHz的时钟频率,然后调低到682kHz,再继续录音;重放时,前半段使用1024kHz的频率,后半段使用682kHz的频率。测试结果证明,这样的做法是可行的。
变频使用ISD芯片时,有三个问题是在定频使用时不会遇到的,一个是芯片的变频录制,第二是变频芯片的复制,第三个是重放时的频率控制。
对于第一个问题,因为我们的产品中语音数据的存放比较有规律,音标、字母、单词、词组顺序存放,也就是说采用1024kHz高频率的数据均在前半段,而后半段均采用低频率。低频率段的具体频率,应根据具体需要的录音时间长短来决定,频率越低,录音时间越长,但是相应的录音质量越低,因此应该采用尽可能高的频率。经过测算,如果采用750kHz左右的频率,刚好可以把所有的内容录完。
录制完一个母片,其余生产用的芯片均可以由这个母片复制产生。不过,对于改变采样频率使用的芯片,必须按照低一档次的芯片进行设置。我们低频段使用的是750kHz,这样应该按照系统频率是682.7kHz的ISD4004-12M设置。因为对后半段语音信号来说,如果使用更高的频率来重放,必然会引起音调的升高,但是因为ISD4004-8M芯片内部的滤波器已经固定在了3.4kHz,这样就可能引起语音中高频部分的损失;而如果设成更低的系统频率,虽然音调降低,但因为ISD芯片具有良好的低频响应,因此在复制出的芯片重新以原频率放音时,不会有声音质量的损失。
为了在系统中重放时能够随时改变ISD芯片的时钟频率,我们采用了如图2的电路。
电路中,MCU端接单片机控制输出,XCLK接ISD芯片时钟输入。当模拟开关关闭时,振荡电路以较低的频率(约750kHz)振荡,当模拟开关接通时,等效电阻减小,振荡电路频率升高(约1024kHz)。。
经过实际应用,证明ISD芯片的变频使用的方案是可行的,达到了预期的目的。
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |