精华内容
下载资源
问答
  • 语音信号端点检测

    2014-11-27 19:21:49
    能很好的实现语音信号端点检测,wav语音文件,16kHz采样。
  • 为提髙复杂噪声环境下语音信号端点检测的准确率,提岀一种基于梅尔频谱倒谱系数(MFCC)距离的多维特征语音信号端点检测算法。通过计算语音信号的MrcC距离,结合短时能量和短时过零率对特征距离进行修正,并更新其...
  • 一种语音信号端点检测法的FPGA实现.pdf
  • 语音信号端点检测的改进 端点检测的改良方法
  • 端点检测对于语音识别有着重要的意义。本程序采用双门限端点检测算法,双门限端点检测算法的基本思想是:先用短时平均能量进行初次判断,然后再在这个基础上用短时平均过零率进行再次判断。初次判断得到大致的语音段...
  • matlab程序双门限法语音信号端点检测(可实现多段检测)
  • 本文应用时间序列信号的短时分形维维的非线性理论,对低倍噪比的语音信号端点检测和自适应滤波进行了研究。针对信噪比在odB和一5 dB的噪声语音信号的端点检测和滤波进行了计算机仿真实验。实验结果表明:短时分形...
  • 端点检测语音信号处理过程中非常重要的一步,它的准确性直接影响语音信号处理的速度和结果,因此端点检测方法的研究,特别是在噪声环境下端点检测的研究,一直是语音信号处理中的热点。从基于时域参数、频域参数、...
  • 首先在matlab中装好voicebox工具箱,里面有一些需要用到的.m文件具体程序如下:x=readwav('D:/hao.wav');...%未到语音端点帧%amp1=10;%amp2=2;status=0;minlen=15;figure(1);subplot(311);plot(x);Frame...

    首先在matlab中装好voicebox工具箱,里面有一些需要用到的.m文件

    具体程序如下:

    x=readwav('D:/hao.wav');

    t=x;

    N=size(x)

    x=double(x);

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

    y1=0;%未到语音的端点帧

    %amp1=10;

    %amp2=2;

    status=0;

    minlen=15;

    figure(1);

    subplot(311);

    plot(x);

    FrameLen=240;

    FrameInc=80;

    tmp1  = enframe(x(1:end-1), FrameLen, FrameInc);

    tmp2  = enframe(x(2:end)  , FrameLen, FrameInc);

    signs = (tmp1.*tmp2)<0;

    diffs = (tmp1 -tmp2)>0.02;

    zcr   = sum(signs.*diffs, 2);

    subplot(312);

    plot(zcr);%显示过零率

    title('过零率')

    xlabel('帧')

    amp=sum(abs(enframe(filter([1 -0.9375],1,x),FrameLen,FrameInc)),2);

    subplot(313);

    plot(amp);%显示短时能量

    title('短时能量');

    xlabel('帧');

    amp1=min(10,max(amp)/4);

    b=max(amp)/4

    amp2=min(2,max(amp)/8);

    c=max(amp)/8

    %开始端点检测

    x1=0;

    x2=0;

    for n=1:length(zcr)

    switch status

    case 0,

    if amp(n)>amp1   %进入语音段

    x1=n;

    status=1;

    end

    case 1,  %保持在语音段

    if amp(n)

    x2=n

    count=x2-x1;

    status=3,

    end

    case 3,

    if count

    statu=0;

    end

    end

    end

    x1

    x2

    这个里面可以显示过零率和短时能量的端点检测图形

    x1和x2分别是语音的起始端点的帧和结束端点的帧。这里我只是用到了短时能量来求出x1和x2。

    需要一些改进。

    展开全文
  • 这是一个关于对语音信号进行端点检测的VB程序,可以在语音识别或说话人识别中进行使用
  • 本文采用时间序列信号短时分形的非线性分析方法,对信噪比在0dB 和- 5dB 的噪声语音信号进行 了语音端点检测和自适应滤波研究。通过计算机仿真实验,结果表明:噪声语音信号的短时分形维维数的大 小能较准确地判定...
  • 是一篇文献,主要是对语音段的端点检测,基于matlab的方法,大家可以参考一下。是一篇文献,主要是对语音段的端点检测,基于matlab的方法,大家可以参考一下。是一篇文献,主要是对语音段的端点检测,基于matlab的...
  • 语音信号端点检测 包括短时能量 过零率 等讲解
  • 语音信号端点检测(VC++6.0)

    热门讨论 2008-05-22 22:03:31
    这是我的毕业设计“基于神经网络的拼音识别系统”的端点检测部分... 端点检测的函数是CWaveDoc::OnEndpointDetect() ,大家运行时需要修改读入语音信号的路径。 需要读入的语音信号b1.wav一并附于wav文件。
  • vc的语音信号端点检测程序,能够短时能量,过零率等特征,检测语音出语音信号的端点。 vc的语音信号端点检测程序,能够短时能量,过零率等特征,检测语音出语音信号的端点。
  • 语音信号端点检测程序

    热门讨论 2013-12-13 16:58:25
    vc的语音信号端点检测程序,能够短时能量,过零率等特征,检测语音出语音信号的端点。
  • 语音信号端点检测

    2014-04-08 16:14:28
    通过能量过零率的端点检测算法,实现语音信号端点检测
  • 端点检测 语音信号

    2014-05-26 09:31:45
    端点检测 语音信号 语音信号处理
  • 语音信号处理的论文,对语音进行端点分割,语音的特征提取,包含了经典和最新的方法。
  • 这个是利用子带谱熵法进行语音信号端点检测的代码,给出了参考文献,有兴趣时可以看一下,发博客以作备忘!!!

    这个是利用子带谱熵法进行语音信号端点检测的代码,给出了参考文献,有兴趣时可以看一下,发博客以作备忘!!!

    function [voiceseg,vsl]=vad_1(s,fs)

    %该函数采用子带谱熵法检测语音信号的端点
    %输入:s :输入信号s
    %      fs:输入信号的采样频率(Hz)
    %      Is:设定一个前导无话段用来计算门限值(比如我们分段时预留了至少0.5s,
    %          故可以设定Is=0.5,或者根据实际情况取),若分段时没预留噪声,或者
    %          预留噪声段混有语音,会对该算法造成较大影响。
    %输出:voiceseg 为一个数组,分别给出了起始帧结束帧和有话段帧数
    %说明:1.这里我们认为语音段必须大于0.2s,噪声段必须大于0.1s
    %      2.调整门限值(T1,T2)或  maxsilence,minlen或者K值可以调整端点检测效果
    %参考文献:一种基于自适应谱熵的端点检测改进方法 1006—9348(2010)12—0373—03
    %    20150617 by boat      
    %检查人:
    %基本参数和变量的设定和求取  
    IS=0.3;
    wlen=floor(25/1000*fs);                     % 帧长设为25ms
    inc=floor(wlen/2);                          % 帧移为帧长的50%


    xx1=s-mean(s);
    展开全文
  • (1)掌握语音处理的基本概念,基本理论和基本方法; (2)掌握双门限法的原理; (3)学会利用短时能量和短时过零率对语音信号进行端点检测
  • 为了提高语音信号端点检测的准确率,提出了改进的端点检测方法。该方法在传统基于能量和过零率的端点检测方法基础上,加入第三道门限——近似熵,对信号进行三级门限检测。仿真实验表明,该方法比传统方法更有效、更...
  • 语音识别端点检测Matlab代码

    热门讨论 2013-02-22 11:23:10
    语音端点检测是从一段输入语音信号中确定语音的起始点和结束点。正确的端点检测可以减少不必要的计算量,提高语音识别的精度和减少识别时间。通常采用短时能量和短时过零率相结合的方法来寻找语音的开始帧和结束帧。
  • 语音端点检测的方法语音端点检测的方法 演讲者:刘德体 语音端点...语音端点检测的目的和意义 目的 语音信号端点检测技术其目的就是从包含语音的一段信号中准确地确定语音的起始点和终止点,区分语音和非语音信号...

    语音端点检测的方法

    语音端点检测的方法 演讲者:刘德体 语音端点检测的目的和意义 基于短时能量和短时平均过零率的端点检测 基于倒谱特征的端点检测 基于熵的端点检测 基于复杂性的端点检测(KC复杂性和C0复杂性) 不同语音端点检测方法的实验结果对比 语音端点检测的目的和意义 目的 语音信号端点检测技术其目的就是从包含语音的一段信号中准确地确定语音的起始点和终止点,区分语音和非语音信号,它是语音处理技术中的一个重要方面。 意义 有效的端点检测技术不仅能在语音识别系统中减少数据的采集量,节约处理时间,还能排除无声段或噪声段的干扰,提高语音识别系统的性能,而且在语音编码中还能降低噪声和静音段的比特率,提高编码效率。 基于短时能量和短时平均过零率的端点检测 短时能量 语音和噪声的区别可以体现在它们的能量上,语音段的能量比噪声段能量大,语音段的能量是噪声段能量叠加语音声波能量的和。在信噪比很高时,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景区分开。这是仅基于短时能量的端点检测方法。 信号{x(n)}的短时能量定义为: 语音信号的短时平均幅度定义为: 其中w(n)为窗函数。 短时平均过零率 短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号称为过零。过零率就是样本改变符号次数。 信号{x(n)}的短时平均过零率定义为: 式中,sgn为符号函数,即: 过零率有两类重要的应用:第一,用于粗略地描述信号的频谱特性;第二,用于判别清音和浊音、有话和无话。从上面提到的定义出发计算过零率容易受低频干扰,特别是50Hz交流干扰的影响。解决这个问题的办法,一个是做高通滤波器或带通滤波,减小随机噪声的影响;另一个有效方法是对上述定义做一点修改,设一个门限T,将过零率的含义修改为跨过正负门限。 于是,有定义: 检测方法 利用过零率检测清音,用短时能量检测浊音,两者配合。首先为短时能量和过零率分别确定两个门限,一个是较低的门限数值较小,对信号的变化比较敏感,很容易超过;另一个是比较高的门限,数值较大。低门限被超过未必是语音的开始,有可能是很短的噪声引起的,高门限被超过并且接下来的自定义时间段内的语音超过低门限,意味着信号开始。 此时整个端点检测可分为四段:静音段、过渡段、语音段、结束。实验时使用一个变量表示当前状态。静音段,如果能量或过零率超过低门限,就开始标记起始点,进入过渡段。过渡段当两个参数值都回落到低门限以下,就将当前状态恢复到静音状态。而如果过渡段中两个参数中的任一个超过高门限,即被认为进入语音段。处于语音段时,如果两参数降低到门限以下,而且总的计时长度小于最短时间门限,则认为是一段噪音,继续扫描以后的语音数据,否则标一记结束端点。 基于倒谱特征的端点检测 概念 信号倒谱的一种定义是信号的能量谱密度函数S(ω)的对数的傅里叶反变换,或者可以将信号s(n)的倒谱c(n)看成是logS(ω)的傅里叶级数展开,即: 式中Cn=C-n为实数,通常称为倒谱系数,且 对于一对谱密度函数S(w)与S’(w) ,利用Parseval定理,其对数谱的均方距离可用倒谱距离表示: 式中,Cn与C’n分别代表谱密度函数S(w)与S’(w)的倒谱系数。 方法: 倒谱距离的测量法步骤类似于基于能量的端点检测,只是将倒谱距离代替短时能量来作为特征参数。首先,假定前几帧信号是背景噪声,计算这些帧的倒谱系数,利用前几帧倒谱系数的平均值可估计背景噪声的倒谱系数,噪声倒谱系数的近似值可按下述规则进行更新,即当前帧被认为是非语音帧: 式中 为噪声倒谱系数的近似值, 为当前测试帧的倒谱系数,p为调节参数。 倒谱距离可用下式近似计算: 式中 对应于 的噪声倒谱系数,计算所有测试帧与

    展开全文
  • 为了提高语音信号端点检测的准确率,提出了一种基于双门限-频带方差的检测方法。该方法将语音信号短时能量、短时过零率和频带方差结合起来,作为检测语音信号起始位置和终止位置的参数。仿真实验表明,该方法比传统...
  • 语音活动端点检测(VAD)已经是一个古老的话题,用于分离信号中语音信号和非语音信号,首先我们讲述VAD的三种做法:1,通过分帧,判断一帧的能量,过零率等简单的方法来判断是否是语音段;2,通过检测一帧是否有基音...

    语音识别系列7-语音活动端点检测(VAD)

    一、介绍

    语音活动端点检测(VAD)已经是一个古老的话题,用于分离信号中语音信号和非语音信号,首先我们讲述VAD的三种做法:1,通过分帧,判断一帧的能量,过零率等简单的方法来判断是否是语音段;2,通过检测一帧是否有基音周期来判断是否是语音段;3,通过DNN的方法训练模型来分类是否是语音帧。相对来说,通过DNN的方法来做VAD准确率会更好一些,本节我们讲述通过DNN来做语音分类,进而分离语音段和非语音段。

     

    二、方法及原理

    我们采用的训练数据为:语音识别做音素对齐后的数据,也就是说每一帧都有对应的音素,我们这里把对应为SIL的帧作为非语音帧,把对应为非SIL的帧作为语音帧。这样我们就有了训练DNN模型的数据和标签。接着我们使用KALDI中NNET3来训练DNN网络,为了减小网络规模,我们使用TDNN,每层结点数逐层递减,代码如下:

     

      echo "$0: creating neural net configs";
      num_targets=`feat-to-dim scp:$targets_scp - 2>/dev/null` || exit 1
      feat_dim=`feat-to-dim scp:$data_dir/feats.scp - 2>/dev/null` || exit 1
    
      mkdir -p $dir/configs
      cat <<EOF > $dir/configs/network.xconfig
      input dim=$feat_dim name=input
    
      relu-renorm-layer name=tdnn1 dim=200 input=Append(-2,-1,0,1,2)
      relu-renorm-layer name=tdnn2 dim=100 input=Append(-2,0,2)
      relu-renorm-layer name=tdnn3 dim=50 input=Append(-3,0,3)
      relu-renorm-layer name=tdnn4 dim=25 input=Append(-3,0,3)
      output-layer name=output dim=$num_targets max-change=1.5
    EOF
      steps/nnet3/xconfig_to_configs.py --xconfig-file $dir/configs/network.xconfig --config-dir $dir/configs/
    
      steps/nnet3/train_raw_dnn.py --stage=$train_stage \
        --cmd="$decode_cmd" \
        --feat.cmvn-opts "--norm-means=false --norm-vars=false" \
        --trainer.num-epochs 2 \ 
        --trainer.optimization.num-jobs-initial 2 \ 
        --trainer.optimization.num-jobs-final 4 \ 
        --trainer.optimization.initial-effective-lrate 0.001 \
        --trainer.optimization.final-effective-lrate 0.0001 \
        --trainer.optimization.minibatch-size 512 \
        --egs.dir "$common_egs_dir" --egs.opts "$egs_opts" \
        --cleanup.remove-egs $remove_egs \
        --cleanup.preserve-model-interval 10 \
        --nj 20 \
        --use-dense-targets=true \
        --feat-dir=${data_dir} \
        --targets-scp=$targets_scp \
        --dir=$dir || exit 1;

    训练完成后,我们就得到了一个二分类的DNN模型,接下来就是一些策略的问题了,在这里,我们把状态分为8个状态:1,未知状态;2,语音开始状态;3,语音状态;4,语音结束状态;5,非语音开始状态;6,非语音状态;7,非语音结束状态;8,结束状态。

    策略是:语音开始时是未知状态,如果窗口中非语音帧的个数大于语音帧的个数,我们是非语音开始状态,如果连续10帧都判断为语音帧,那么返回非语音结束状态和语音开始状态,反之亦然。

    但是这样一个结果就是语音过渡时间过短,我们会在语音开始状态之前和语音结束状态之后补一段非语音帧,这样可以防止误判。

     

    三、结论

    以上就是我们使用DNN模型来做VAD,从实验结果来看,效果还不错。

     

     

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,958
精华内容 783
关键字:

语音信号端点检测