检测语音信号中的语音边界
detectSpeech (___)
如果没有输出参数,则显示输入信号中检测到的语音区域的图。
的detectSpeech
算法基于[1],虽然修改使统计阈值是短期能量和光谱扩散,而不是短期能量和光谱质心。图和步骤提供了算法的高级概述。有关详细信息,请参见[1].
使用指定的参数将音频信号转换为时频表示形式窗口
和OverlapLength
.
计算每一帧的短期能量和光谱扩散。光谱扩展是根据spectralSpread
.
直方图是为短期能量和光谱分布创建的。
对于每个直方图,根据
,在那里米1和米2分别为第一和第二局部极大值。W被设置为5
.
通过连续的五元移动中值滤波器,对光谱扩展和短期能量进行时间平滑。
面罩是通过将短期能量和光谱传播与它们各自的阈值进行比较来创建的。要声明一个帧包含语音,一个特征必须超过它的阈值。
面具被组合在一起。对于宣布为语音的帧,其短期能量和频谱传播必须高于其各自的阈值。
如果声明为语音的区域之间的距离小于,则合并它们MergeDistance
.
[1] Giannakopoulos,塞奥佐罗斯•。“一种语音信号的消噪和分割方法,用MATLAB实现”,(雅典大学,雅典,2009)。