matlab识别性别怎么办,MATLAB说话人性别的简单判断(GUI界面)

function varargout = GUI(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @GUI_OpeningFcn, ...

'gui_OutputFcn', @GUI_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function GUI_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = GUI_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function pushbutton1_Callback(hObject, eventdata, handles)

set(handles.text1,'Visible','off');

[filename pathname]=uigetfile({'*.WAV';'*.*'},'¿ªÊ¼'); %%读取音频文件

str=[pathname filename];

[Y,fs]=audioread(str);

L=length(Y); %原信号点数

N=fix(fs*0.015); %帧长

frameN=fix(L/N); %帧数

Y=Y/max(abs(Y)); %归一化

%%

%%%%%%短时能量%%%%%%%%

En=zeros(1,frameN);

Mn=zeros(1,frameN);

for i=1:frameN

Yn=Y(((i-1)*N+1):i*N);

En(i)=sum(Yn.*Yn);

end

%%

%%%%%%浊音提取%%%%%%%%

Emax=max(En);

ref=0.08*Emax;

for i=1:frameN

if(En(i)>ref)

Mn(i)=1;

end

end

%%

%%%%%%基音频率%%%%%%%%

for i=1:frameN

if(Mn(i)==1)

Yn=Y(((i-1)*N+1):i*N);

Yn0=Yn;

R=Relation(Yn0,N);

[Rmax1,Rdot1]=max(R(18:160));

f1(i)=fs/(Rdot1+17);

end

end

%%%%%%某帧采样点%%%

for i=140:140

if(Mn(i)==1)

Yn=Y(((i-1)*N+1):i*N);

Yn0=Yn;

R1=Relation(Yn0,N);

end

end

axes(handles.axes1);

plot(Y),xlabel('帧数'),ylabel('幅度'),title('原信号');

axes(handles.axes2);

plot(En),xlabel('帧数'),ylabel('En'),title('短时能量');

axes(handles.axes3);

plot(f1),xlabel('帧数'),ylabel('f'),title('基音频率');

axes(handles.axes4);

plot(R1),xlabel('帧数'),title('自相关');

%%%%男女声判断%%%%

sum1=0;

s=0;

for i=1:frameN

if(Mn(i)==1)

s=s+1;

sum1=sum1+f1(i);

end

end

Final=mean(sum1);

if Final>200

set(handles.text2,'String','判断结果:女声');

else

set(handles.text2,'String','判断结果:男声');

end

function pushbutton2_Callback(hObject, eventdata, handles)

close;

自相关函数另外编写(放在主程序里运行时间长)function Re=Relation(X,N)

for i=0:(N-1)

Re(i+1)=0;

for n=1:(N-i)

Re(i+1)=Re(i+1)+X(n)*X(n+i);

end

end

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab说话识别系统是一种基于语音信号的人体生物特征识别技术,它是通过提取和比较说话人的声音特征来识别说话人身份的。在这个回答中,我将描述一个Matlab实现的基于图形用户界面(GUI)的说话识别系统。 首先,我们需要创建一个GUI界面,包括按钮、文本框和音频输入或文件选择功能。用户可以通过这个界面选择要输入的音频文件或直接通过麦克风录制音频。 接下来,我们需要实现信号处理和特征提取算法。针对输入的音频,我们可以使用信号处理技术进行预处理,如去噪和降低回声等。然后,使用语音特征提取算法来提取和表示说话人的声音特征。常用的特征包括短时能量、过零率、倒谱系数和梅尔频率倒谱系数等。 在特征提取之后,我们需要实现一个分类器来区分不同的说话人。常见的分类器包括高斯混合模型(GMM)、支持向量机(SVM)和深度学习模型等。针对这些分类器,我们可以通过训练阶段收集多个已知说话人的音频样本,并使用这些样本来训练模型,从而得到识别说话人的能力。 最后,在GUI界面中,我们可以增加一个识别按钮,当用户点击该按钮时,系统将对输入音频进行处理,提取特征,并使用事先训练好的模型来识别说话人的身份。识别结果可以在界面上显示,告知用户识别说话人身份。 总结起来,这个Matlab说话识别系统GUI界面是一个方便用户使用的工具,它通过利用声音特征提取和分类器模型来区分不同的说话人。用户可以输入音频文件或通过麦克风录制音频,并通过点击识别按钮获得说话人的身份。这种系统可以应用于声纹识别、安全验证等领域。 ### 回答2: MATLAB说话识别系统是一个使用语音信号进行说话人辨识的软件系统。为了方便用户操作和结果展示,可以使用MATLABGUI界面来设计一个友好的用户界面。 首先,界面应包含主要功能按钮和操作界面。用户可以通过按钮选择要进行的操作,如录音、训练模型或进行说话人辨识。操作界面上可以显示当前操作状态和结果展示。 其次,为了方便用户录制和选择语音样本,可以在界面中添加录音功能。用户可以点击相应按钮开始录音,并将录制好的语音样本保存到指定文件夹中。同时,界面应提供选择已有语音样本的选项,用户可以浏览文件系统中的语音文件并进行选择。 接着,界面中应有训练模型的功能。用户可以选择训练集,并点击训练按钮开始模型训练。训练过程中需显示训练进度和训练结果。训练完成后,用户可以保存模型文件到指定位置以供后续使用。 最后,界面应提供说话人辨识的功能。用户可以选择要辨识的语音文件,并点击辨识按钮进行说话人辨识。辨识结果会在界面上显示,并可以保存结果到本地文件。 在界面设计中,应注重用户友好性和交互性。可以使用图标、按钮、文本框等控件来美化界面,增加用户体验。另外,还可以添加帮助文档和使用说明,对系统功能及使用方法进行详细介绍。 通过MATLABGUI界面,用户能够更方便地使用说话识别系统,进行录音、训练和说话人辨识操作,并获得及时的结果展示。 ### 回答3: Matlab是一种强大的编程语言和环境,可以用于开发各种应用程序。为了实现一个语音识别系统的GUI界面,首先需要安装Matlab软件并熟悉它的使用。 在Matlab中,我们可以使用图形用户界面(GUI)工具来创建用户友好的界面。首先,我们可以通过Matlab提供的GUIDE(GUI Development Environment)工具创建一个新的GUI应用程序。 创建GUI界面时,有多种元素可供选择,如按钮、文本框、下拉菜单等。对于语音识别系统的界面,我们可以添加一个按钮用于开始录音,另外再添加一个文本框用于显示识别结果。此外,还可以添加一个标签或图标,用于显示系统的名称或Logo。 在录音按钮的回调函数中,可以调用Matlab的音频处理库,如音频录制和识别函数。这些函数能够将录制的语音样本转换为数字信号,并对其进行特征提取和模式匹配,最终得出识别结果。将识别结果显示在文本框中,并可以根据需要添加一些格式化处理。 除了录制和识别功能之外,我们还可以在GUI界面中加入其他功能,如设置阈值、选择语种或模型、录制时长控制等选项。这些选项可以通过滑块、下拉菜单或复选框等元素进行选择和操作。 最后,可以将GUI界面美化,添加背景图片、调整字体、颜色和布局等。还可以为各个元素设置合适的位置和大小,以便用户更加方便地使用系统。 总结来说,通过Matlab的GUI工具和音频处理库,我们可以设计并实现一个语音识别系统的GUI界面。这个界面可以包含按钮、文本框、标签等元素,实现录制、识别和显示功能,并提供其他辅助设置。整个系统的设计与开发可以通过Matlab的丰富功能和可视化界面实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值