本项目采用MATLAB编写匹配滤波器,用于分析和区分不同性别的语音信号特征,实现自动识别声音是来自男性还是女性。
在MATLAB中实现匹配滤波器用于识别男女语音,并为此项目创建了一个基于MATLAB的GUI应用程序。该应用介绍了典型的男性基本频率范围为85Hz到180Hz,女性的基本频率则位于165Hz至255Hz之间。
**方法一:**
使用内置音高功能`[f0,inx] = pitch(audioIn, fs)`来直接返回输入音频文件在采样率fs下的基本频率f0。因此,我们可以将此值与165Hz进行比较以判断声音是男性还是女性的。这种方法仅适用于MATLAB 2018版本。
运行`Male_Female_inbuilt_pitch.m`文件可以使用该方法来标识性别。
**方法二:**
通过运行`Male_Female_VoiceRecognizer.m`文件,利用Simulink实施进行识别。在Simulink中,“来自多媒体文件”块被用来作为输入采样音频,每个音频通道包含3500个样本。这些数据随后传递到下一个模块,在此计算每帧的频率。
以下是用于该功能的代码:
```matlab
function y = fcn(x)
Fs = 44100;
coder.extrinsic(butter); % 包含butter函数
```
这种方法利用了Simulink来处理音频信号,并通过设计滤波器等步骤来进行性别识别。