好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

男女声识别系统.doc

10页
  • 卖家[上传人]:飞***
  • 文档编号:4291585
  • 上传时间:2017-08-18
  • 文档格式:DOC
  • 文档大小:1.06MB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 男女声识别系统摘 要:本文通过对男性和女性声音的语音特征的研究,发现男女声的基音频率存在较大的差异,并设计了基于基音频率分析的男女声识别系统男女声识别系统由以下三个模块电路构成:话筒放大器,低通滤波器,半波整流电路,单片机测量控制模块话筒放大器采用 NE5532P 音前置芯片,对语音信号进行放大;八阶低通滤波器 MAX293 完成基音信号的提取;单片机 STC12C5410AD 实现频率测量和控制输出功能经仿真与电路实测,男女声的识别效果良好关键词:男女声识别、基音频率、低通滤波器、单片机一、引言人类基音的范围约为 70~350Hz 左右,由于生理结构的不同,男性与女性的声音呈现出不同的听觉特征,男声的基音频率大都在 100—200HZ 之间,而女声则在 200—350HZ 之间;在会话中,同一发音者的基音频率变化的统计结果,如图一所示女声与男声相比,前者的平均值、标准差都为后者的两倍左右不同发音者的基音频率分布如图二所示,在对数频率轴上男声,女声分别呈现正态分布,男声的基音频率的平均值和标准差分别为 125HZ 及其 20HZ女声约为男声的2 倍鉴于男女声存在基音频率的明显差异,基音频率可作为男女声识别的依据。

      二、方案论证与比较基于男女声基音频率的差异,男女声识别的实现可以通过基音频率的测量来实现基音频率的实现有多种方法如 FFT 分析、自相关分析等方案一:基于 FFT 的短时频谱分析把语音信号数字化,即经 AD 采样量化之后,用 FFT 算法处理,得到信号的频谱,从而获得基音频率这种方法由于算法较复杂,数据处理量大,如用单片机来实现,编程复杂,运算速度慢,难以满足实时要求方案二:滤波器基音提取技术利用低通滤波器滤除多次谐波及共振峰等高频成分,得到近似的基音信号,此法可以用硬件电路构成滤波器实现基音信号的粗略提取,避免了大量算法分析和数据处理,实现起来相当简单为了证明这种方法的有效性, 我们用计算机声卡录制了近 20 名男女同学的单音、词组和句子的 WAV 文件,在 MATLAB 上编写程序进行仿真1.男女声信号通过 400HZ 低通滤波后的仿真波形比较我们将男女声信号经过八阶低通滤波器,其截止频率设定为 400HZ仿真结果如图三所示从图形上我们可以看到:通过 400HZ 的低通滤波器后,男声输出为约 120HZ 左右周期性信号(非单频正弦波) ;女声输出约 250HZ 左右周期性信号,其波形接近正弦波。

      这说明经过 400HZ 低通滤波器后,女声声音主要由基音信号构成,而男性声音的非正弦性是由于其二次谐波及共振峰的存在的结果2.男女声信号通过 200HZ 低通滤波后的仿真波形比较我们将男声、女声输入信号经过八阶低通数字滤波器滤波,截止频率设定为 200HZ男声、女声及其通过 200HZ 低通滤波后的波形如图四所示:从上边的图形我们看出:经过 200HZ 的低通滤波器,男声输出为较好的正弦波(基音信号) ,而女声基本上没有信号通过从 MATLAB 数据处理软件对采集信号分析的结果表明,用滤波器提取基音频率的方法完全可行我们在计算机上用这种方法编写了男女声识别软件,对男女声基音特征进行提取,实现了识别的仿真实验表明,在正常说话条件下,系统具有较高的识别率,仿真效果令人满意三、系统实现1.设计思想与系统构成:话筒 放大 200HZ低频滤波400HZ低频滤波单片机整流整流LED灯显示话筒产生的语音信号很微弱,大约 50mV 左右,必须经过放大才能送往后级电路处理两个高阶低通滤波器分别工作在 400HZ 的截止频率和 200HZ 截止频率这主要是为了保证始终有一路信号是含谐波分量较少的近似基音信号。

      整形电路把正弦波转化为矩形脉冲,送往单片机 STC12C5010AD 测量其周期单片机完成多次测量后,进行统计,作出男声还是女声的判断,送输出显示2.主要电路的设计与说明A、话筒放大电路通过用 NE5532P 芯片来实现语音放大,把微弱的语音信号放大的 50 倍左右如图所示,采用 NE5532 运算放大器作音频前置放大电路其优点是体积小、功耗小、一致性较好电路如下图所示:B、低通滤波电路采用 MAX293 可控截止频率 8 阶巴特沃夫低通滤波器,如图所示,则电路结构简单,外围元件少,截止频率可由外部时钟控制或由时钟输入端所接电容决定截止频率控制简单,且滤波效果好调试时,由外部时钟控制截止频率,调试完成后,可将滤波器的截止频率固定,即在时钟输入端(CLK)接一个一定大小的电容比较两个方案,方案二实现滤波简单方便,满足系统要求C、全整流电路如图所示,U5A、U6A 各组成一线性半波整流电路,而 U5B、U6B 各组成一加法电路U5A 和U5B,U6A 和 U6B 构成一线性全波整流电路D、单片机电路把经过整流后的两路频率信号输入 STC12C5410AD 进行 A\D 转换并采样再各求出两组采样好的数据的能量,以便来进行比较。

      若求出来的两个结果较接近就为男声,那么男声的那个发光二极管就会亮起来若两个结果相差较大就为女声,那么女声的那个发光二极管就会亮起电路如下:3. 软件设计 A 程序设计流程图:B 程序:#includesfr ADC_LOW2 = 0xBE;//定义 STC12C5410AD 特殊功能寄存器sfr ADC_CONTR = 0xC5;sfr ADC_DATA = 0xC6;sfr p0m0 = 0x93;sfr p0m1 = 0x94;sfr p1m0 = 0x91;sfr p1m1 = 0x92;sfr p2m0 = 0x95;sfr p2m1 = 0x96;sfr p3m0 = 0xb1;sfr p3m1 = 0xb2;sbit getv = P2^1;//定义指示灯sbit male = P2^6;sbit female = P2^7;#define divgate 4//定义全局常量和全局变量#define countgate 185#define on 1#define off 0unsigned char div;unsigned char ad200,ad400;unsigned char test;unsigned char i,count;unsigned char code display_AD_channel_ID[2] = {0x00,0x01};void delay100us( char Delay)//延时程序,延时时间=Delay*100us{char d;for(;Delay>0;Delay--){ for(d=0;d0;t--) for(j=6245;j>0;j--) ;}unsigned char Ad_Change(unsigned char channel)//AD 转换子程序{ADC_CONTR = ADC_CONTR&0xe0; //1110,0000 清 ADC_FLAG,ADC_START 位和低 3 位ADC_CONTR = ADC_CONTR|(display_AD_channel_ID[channel]&0x07); //设置当前通道号 //延时使输入电压达到稳定ADC_DATA = 0; //清 A/D 转换结果寄存器 delay100us(5);ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换do { ; } while((ADC_CONTR & 0x10)==0); //0001,0000 等待 A/D 转换结束ADC_CONTR = ADC_CONTR&0xE7; //1110,0111 清 ADC_FLAG 位,停止 A/D 转换return ADC_DATA;}void get_result()//声音采集和处理子程序{ count=0;getv=on;male=off;female=off;for(i=0;idivgate) count++;}else if(ad200countgate)//判别男女并指示{female=on;male=off;}else{male=on;female=off;}getv=off;delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);delay50ms(50);//返回等待下次测试}void main(){SP=0x31;IE=0x85;//开系统中断getv=0;male=1;female=0;ADC_CONTR =0xe0; //1110,0000 打开 A/D 转换电源。

      设定采样速率为 210 个机器周期p1m0 = 0x03; //0000,0011P1.0--P1.1 先设为开漏断开内部上拉电阻 p1m1 = 0x00; delay100us(10); while(1)//循环等待声音信号输入{ male=~male;female=~female;delay50ms(50);test=Ad_Change(0);//先不跟你聊了,写好程序部分的实验报告好给你们if(test>0x02){ test=Ad_Change(0); if(test>0x02)//重复先不跟你聊了,写好程序部分的实验报告好给你们{test=Ad_Change(0);if(test>0x02){get_result();//对声音进行判别}} }}}四、系统电路测试与分析1.带话筒放大器的测试:调整放大增益,使输出幅度较大而不失真2.低通滤波器性能的测试:信号发生器产生 200-400HZ 正弦波作为 400Hz 截止频率低通滤波器的输入信号,用示波器观察输出信号,可看到输出为正弦波,450HZ 以上正弦波输入时基本无输出信号,可见滤波效果很好。

      信号发生器产生 100-300HZ 正弦波作为 200Hz 截止频率低通滤波器的输入信号,用示波器观察输出信号,同样可看到很好的滤波效果3.单片机系统调试:用仿真器调试测量与处理程序4.整机测试:下面是对若干位学生的测试结果由测试结果得到,该系统判断准确率为 70%原因是,就一个说话者来说,基音频率并不是固定不变的,测试声音 平均基音频率(Hz) 判定结果男声 164.4 男男声 164.6 男男声 139.2 男男声 152.2 男男声 161 男女声 255.8 男女声 242.4 男女声 279.2 女女声 264.6 女女声 254.4 男不同声音、不同声调、说话者的情绪等都会影响基音频率,另外辅音会对测试结果有一定的影响正因为如此,容易造成误判 (如某位男同学发的某些音,用系统测试误判为女声) 五 总结这个科技制作,我们从三月份开始着手找方案,并多次找钟老师指导,一开始,我们想尝试用全软件的 ARM 的开发板实现,可是近半个月的时间,找的资料都没能让我们很好的了解 ARM 的使用,所以我们最后决定改变方案,使用硬件跟单片机软件相结合的办法,硬件部分,对所需的芯片不熟悉,经过钟老师指导,我们应用了 MAX293 的滤波器,经网上找资料,学会 MAX293 的应用及其外围电路的搭建,放大电路并没有太大的问题,只是我们本来打算用一个具有自增益控制的芯片,但是在赛格找不到,所以只能单用运放实现,放大跟滤波的电路完成后,整流部分则参考了《模拟电子线路》里面的一个图。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.