这又是我的打detector探测器。
当出现任何信号时,我已经非常擅长检测信号-可以追踪到从墙壁剥落的打ore声到呼吸甚至在录音中听不到的呼吸。问题是,我无法确定信号何时下降到可检测的水平以下,并且该应用程序只是在“听到声音”。而且,不幸的是,打nor /呼吸经常不规则,以至于简单的自相关或类似的间隔定时方案不太可能有很大帮助。 (实际上,在某些情况下,噪声可能比呼吸更规律。)
因此,当没有信号时,我是否还缺少一些技巧来弄清楚?似乎我在这里遇到了困难,因为“信号”一开始就是很杂音。即使声音很大,也无法准确(甚至无法近似)测量信号电平。由于我仍然需要使用滚动平均值和比率来检测信号,所以电平信息会丢失。我正在寻找一些技巧来重构
基本技术
(对于Yoda)
对音频信号进行采样(出于各种原因,通常以8000Hz采样),然后以1024个块进行FFT。 (在我的实验中,汉明滤波器和重叠块似乎影响不大,尽管稍后可能会再讨论。)
FFT被分为“带”(目前为5个,其大小略有偏斜,以便在低频上放置更多细节)结束),然后将每个频段的“频谱差异”和级别相加。峰值限制值的长期平均值用作“阈值”,并使用进一步的偏差调整来维持大约20%的“超阈值”比率。
每个“超阈值”值的权重为1(在阈值下,权重为0),然后通过频带中的表观“可变性”(大约2Hz)来调整该权重,以便为承载更多表观信号的频带赋予更多权重。
对频带的权重求和,然后将后续块的求和后的权重求和约一秒钟,以产生连续的“得分”。再次将其与运行中的平均阈值(加上几种试探法)进行比较,以检测打sn的起/落。
Update
我突然想到,如果我的算法有效地保持恒定水平的信号(每个信号)级别问题),有效测量SNR的方法是通过在没有信号的情况下测量噪声。
方便的是,打are是断断续续的,中间有很多“死气”。而且我已经在检测打the信封了。因此,任何在信封外的声音(在一个打sn声的结束与下一个打sn声的开始之间)都可能是噪音!我可以(以一定程度的准确性/重复性)进行测量。 (当然,花了3次尝试才能得出一种中途的算法-现实与理论并不相符。) >(尽管以上技术为我提供了相当不错的SNR指标,但我仍然无法估计实际信号水平。我的“相对水平”指示可能会超出刻度,几乎听不到呼吸声,对于窗户摇铃器来说也是如此。我需要某种绝对级别的代理。)

评论

“这又是我的打ing探测器” –您能否链接到上一个问题(大概已在其中进行了详细描述)或在此问题上添加一些有关探测器的细节?

@yoda-dsp.stackexchange.com/questions/450/…、dsp.stackexchange.com/questions/1292/…和dsp.stackexchange.com/questions/1395/…。

#1 楼

到目前为止,您似乎已经通过音频中存在强周期性模式来识别打nor。如果您告诉我可能还有其他具有相同特性的信号源,那么该是时候继续关注信号特有的打nor特性了。我建议您更精确地研究录制声音本身的音色。鉴于听众可以将呼吸打呼tall的声音分开,因此您可以采用传统的音频信号分类方法。计算音频数据上的MFCC和起伏模式之类的功能,并训练贝叶斯分类器(或更复杂的方法)来区分呼吸打呼。例如,我发现了这一点:http://web.itu.edu.tr/kamasak/pubs/pdf/pm7_8_007.pdf

评论


$ \ begingroup $
一个问题是,声音的性质在一个晚上之间因人而异,甚至对于一个人而言,差异也很大。但是,感谢您提供线索-我将对其进行调查。
$ \ endgroup $
–Daniel R Hicks
2012年2月17日在18:16

$ \ begingroup $
如果您的训练集足够大,则使用机器学习技术可能仍然可行。
$ \ endgroup $
–小食
2012年2月17日在19:17

$ \ begingroup $
我有超过50个数据集。不幸的是,对一个集合完美运行的算法在下一个集合上却惨败。有的电视在后台运行,有的空气处理机在嗡嗡作响,等等。呼吸/打呼can几乎听不到或掉漆。受试者可能会改变姿势并完全改变打的性质。显然需要某种自整定方案。
$ \ endgroup $
–Daniel R Hicks
2012-2-18在0:19

$ \ begingroup $
您要使用哪些功能进行分类?
$ \ endgroup $
–小食
2012年2月18日在1:05

$ \ begingroup $
主要只是“光谱差异”(也称为“光谱通量”)来检测“起始”和“偏移”。但是我目前的方案将频谱划分为多个频段,并根据该频段中的视在信号强度(通过在大约1/2 Hz处出现的频谱差异的变化量来判断)对每个频段“加权”。即使噪声很大,这也可以很好地检测整个音量范围内的呼吸/打s,但实际上会丢失所有显示的实际音量。由于噪声问题,仅查看同时的总声音水平是行不通的。
$ \ endgroup $
–Daniel R Hicks
2012年2月19日在2:57

#2 楼

您可能需要构建一个动态分类器,以适应当前的主题,睡眠阶段和音频环境,而不是调整到固定的训练集。

评论


$ \ begingroup $
这就是我的想法。
$ \ endgroup $
–Daniel R Hicks
2012年2月19日在2:49