• 基于语音信号识别性别(Matlab代码实现)


    💥💥💞💞欢迎来到本博客❤️❤️💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ⛳️座右铭:行百里者,半于九十。

    目录

    📋1 概述

    📝2 运行结果

    📃3 参考文献

    📋4 Matlab代码实现

    📋1 概述

       性别鉴定旨在通过对输入的语音信号进行分析处理,判定一个语音处理系统中说话人的性别,它是说话人识别和语音识别的一个重要研究课题。准确的性别鉴定不仅对于提高说话人识别的精度有重要意义,在非特定人连续语音识别的前端加入性别鉴定,然后利用男女两个语音模型对输入语音进行语音识别,还可以在较大程度上提高语音识别的准确度。
     

    📝2 运行结果

     部分代码:

    %% Digital Signal Processing Project- Gender Identification and Classification                                    
      

    %% Program:
    %Feature Matrix
    datamat=zeros(11,4); % data matrix to store features
    for k=1:11
        filename=['s' num2str(k) '.wav'];
        [my2,fs] = audioread(filename);%Reading the files
        [fundamental_freq,zero_crossing,short_energy]=Charac_features(my2,fs);%Finding features
        %Storing features in the data matrix
        datamat(k,1)=k;
        datamat(k,2)=fundamental_freq;
        datamat(k,3)=zero_crossing;
        datamat(k,4)=short_energy;
    end

    %% Feature Extraction and Classification

    fundamental_freq_level=135;%Manually fixing the value of the fundamental freq
    zero_crossing_level=12;%Manually fixing the value of the zero crossing value
    short_energy_level=0.5;%Manually fixing the value of the Short energy value

    %Reading a file and getting the fundamental,zero crossing, short energy
    %values
    [my2,fs] = audioread('s2.wav');
    figure;plot(my2);title('Test Signal');
    xlabel('Index');ylabel('Amplitude');

    [freq,zero_cross,short_ene]=Charac_features(my2,fs);

    %Giving weights and finding a number for a particular obseravation
    marks=0.25*(freq/fundamental_freq_level)+(zero_cross/zero_crossing_level)*0.35;
    marks=marks+ (0.4*short_ene/short_energy_level)

    if marks>1 %if value greater than 1 for that particular observation
        ans='female'
    else 
        ans='Male'
    end  
    %%

    📃3 参考文献

    [1]黄关维.一种用于说话人性别鉴定的混合算法[J].现代计算机(专业版),2008(08):8-11+17.

    📋4 Matlab代码实现

  • 相关阅读:
    Linux中getopt函数、optind等变量使用详解
    Vite项目配置resolve.alias后提示『找不到模块』的解决办法
    rk3568 SDK的buildroot添加package
    强化学习qlearning-小安子历险记代码实现
    Spring Boot如何实现OAuth2授权?
    如何理解分布式架构和微服务架构呢
    Windows 10驱动开发入门(五):创建虚拟显示器 Indirect Display驱动开发
    unity---接入Admob
    【大话云原生】负载均衡篇-小饭馆客流量变大了
    Linux高级IO
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127778791