detectspeechnn
描述
例子
检测音频信号中的演讲
读入一个音频信号,其中包含语音和音乐和听声音。
[audioIn, fs] = audioread (“MusicAndSpeech-16-mono-14secs.ogg”);声音(audioIn fs)
调用detectspeechnn
在信号获取感兴趣的区域(roi),样本中,包含演讲。
投资回报率= detectspeechnn (audioIn fs)
投资回报率=2×21 63120 83600 150000
样本的roi转换为秒。
roiSeconds = (roi-1) / fs
roiSeconds =2×20 3.9449 5.2249 9.3749
情节与演讲的音频波形区域。
detectspeechnn (audioIn fs)
完善语言地区能源和监督
读入一个包含扬声器的音频信号重复短语“卷”。
[audioIn, fs] = audioread (“MaleVolumeUp-16-mono-6secs.ogg”);
通过调用比较发现演讲区域detectspeechnn
有无能源为基础的应用程序的语音活动检测(VAD)后处理。
tiledlayout (2, 1) nexttile () detectspeechnn (audioIn fs) nexttile () detectspeechnn (fs, audioIn ApplyEnergyVAD = true)
调整后加工参数检测的演讲
读入一个音频信号。
[audioIn, fs] = audioread (“MusicAndSpeech-16-mono-14secs.ogg”);
调用detectspeechnn
没有输出参数显示检测到的情节演讲区域。
detectspeechnn (audioIn fs);
修改参数用于后处理算法,看看它们是如何影响区域检测到演讲。关于VAD后处理算法的更多信息,请参阅后处理。
mergeThreshold =1.3;%秒lengthThreshold =
0.25;%秒activationThreshold =
0.5;%的概率deactivationThreshold =
0.25;%的概率applyEnergyVAD =
假;detectspeechnn (fs, audioIn MergeThreshold = MergeThreshold,…LengthThreshold = LengthThreshold,…ActivationThreshold = ActivationThreshold,…DeactivationThreshold = DeactivationThreshold)
检测在流式音频的演讲
使用detectspeechnn
检测演讲流式音频信号的存在。
创建一个dsp.AudioFileReader
对象播放一个音频文件进行处理。设置SamplesPerFrame
属性读100 ms不重叠的块的信号。
误判率= dsp.AudioFileReader (“MaleVolumeUp-16-mono-6secs.ogg”);analysisDuration = 0.1;%秒误判率。SamplesPerFrame =地板(analysisDuration * afr.SampleRate);
的神经网络结构detectspechnn
不调用之间保持状态,最好执行在分析更大量的音频信号。当你使用detectspeechnn
在流的情况下,特定的应用程序需求的准确性,计算效率和延迟决定,分析时间和是否重叠分析块。
创建一个timescope
对象图音频信号和探测到演讲的地方。创建一个audioDeviceWriter
播放音频流。
范围= timescope (NumInputPorts = 2,…SampleRate = afr.SampleRate,…TimeSpanSource =“财产”时间间隔= 5,…YLimits = [-1.2, 1.2],…ShowLegend = true, ChannelNames = (“音频”,“发现演讲”]);adw = audioDeviceWriter (afr.SampleRate);
流循环:
从音频文件读取女士在100年的一块。
使用
detectspeechnn
发现任何地区演讲的框架。使用sigroi2binmask
该地区指标转换为一个二进制的面具。音频信号和检测到演讲的阴谋。
播放的音频设备的作家。
而~结束(误判率)audioIn =误判率();段= detectspeechnn (audioIn、afr.SampleRate LengthThreshold = 0.01);掩码= sigroi2binmask(段,afr.SamplesPerFrame);范围(audioIn面具)adw (audioIn);结束
输入参数
audioIn
- - - - - -音频输入
列向量
音频输入信号,指定为一个列向量(单通道)。
数据类型:单
|双
fs
- - - - - -采样率(赫兹)
积极的标量
采样率在赫兹,指定为一个积极的标量。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:detectspeechnn (audioIn fs, ApplyEnergyVAD = true)
MergeThreshold
- - - - - -合并阈值
0.25
(默认)|负的标量
合并阈值在几秒钟内,指定为负的标量。函数合并演讲区域隔开时间小于或等于指定的阈值。设置阈值正
不要合并任何检测区域。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
LengthThreshold
- - - - - -长度阈值
0.25
(默认)|负的标量
长度阈值在几秒钟内,指定为负的标量。函数不返回演讲地区持续时间小于或等于指定的阈值。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ActivationThreshold
- - - - - -概率阈值段开始演讲
0.5
(默认)|标量在[0,1]
概率阈值开始段的一次演讲中,指定为一个标量在区间[0,1]。
数据类型:单
|双
DeactivationThreshold
- - - - - -概率阈值段结束演讲
0.25
(默认)|标量在[0,1]
结束段的一次演讲中,概率阈值指定为一个标量范围[0,1]。
数据类型:单
|双
ApplyEnergyVAD
- - - - - -应用能源的声音活动检测器
假
(默认)|真正的
应用能源语音活动检测(VAD)演讲神经网络检测到的区域,指定为真正的
或假
。
数据类型:逻辑
输出参数
roi
-演讲区域
N2矩阵
演讲地区,作为一个返回N2矩阵指数的输入信号,N是个别演讲地区发现的数量。第一列包含的索引开始演讲,第二列包含索引的一个区域的终结。
算法
预处理
的detectspeechnn
使用以下步骤函数进行预处理的音频数据。
重新取样16 khz的声音。
计算为中心的短时傅里叶变换)使用25 ms周期性的汉明窗和10 ms跳长度。垫的信号,这样第一个窗口集中在0。
把STFT功率谱图。
应用与40个乐队获得梅尔梅尔滤波器组谱图。
梅尔·声谱图转换为对数尺度。
标准化的梅尔·乐队零均值和标准偏差为1。
神经网络推理
预处理的数据传递给pretrained VAD神经网络。网络输出的概率表示在每一帧的演讲的音频输入谱图。
神经网络是一个移植版本的vad-crdnn-libriparty
pretrained SpeechBrain提供的模型[1]结合卷积,复发,充分连接层。
后处理
的detectspeechnn
函数后处理和监督网络的输出使用以下步骤。
应用的激活和解除激活阈值后验概率来确定候选人演讲区域。
可选,应用能源和监督来完善检测到演讲的地区。
合并演讲区域根据合并阈值接近对方。
删除演讲区域长度短于或等于阈值。
引用
[1]Ravanelli Mirco,等。SpeechBrain:通用语言工具包。2021年6月arXiv 8。arXiv.org,http://arxiv.org/abs/2106.04624
版本历史
介绍了R2023a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。