【问题标题】:Real-time identification of non-speech, non-music sound from a continuous microphone stream从连续的麦克风流中实时识别非语音、非音乐声音
【发布时间】:2012-01-07 06:08:25
【问题描述】:

我希望记录与特定声音相对应的事件,例如关门声或烤面包机吐司。

系统需要比“大声噪声检测器”更复杂;它需要能够将特定声音与其他响亮的噪音区分开来。

识别不一定是零延迟,但处理器需要跟上来自始终开启的麦克风的连续传入数据流。

  • 此任务是否与语音识别有显着不同,或者我可以使用语音识别库/工具包来识别这些非语音声音吗?
  • 鉴于我只需要匹配一个声音(而不是在声音库之间进行匹配)的要求,我可以做一些特殊的优化吗?

This answer 表示 匹配过滤器 是合适的,但我对细节不清楚。由于目标声音的变化,我认为目标声音样本和麦克风流之间的音频波形数据的简单互相关不会有效。

我的问题也和this类似,没有引起太多关注。

【问题讨论】:

标签: java python real-time pattern-recognition audio-fingerprinting


【解决方案1】:

我发现了一篇关于这个主题的有趣论文

它也应该适用于您的应用程序,如果不比车辆声音更好的话。

在分析训练数据时,它...

  1. 采样 200 毫秒
  2. 对每个样本进行傅里叶变换 (FFT)
  3. 在频率向量上添加Principal Component Analysis

    • 计算此类所有样本的平均值
    • 从样本中减去平均值
    • 计算平均协方差矩阵的特征向量(每个向量与其自身的外积的平均值)
    • 存储均值和最重要的特征向量。

然后对声音进行分类,它...

  1. 采样 200 毫秒 (S)。
  2. 对每个样本进行傅里叶变换。
  3. 从频率向量 (F) 中减去类别 (C) 的平均值。
  4. 将频率向量与 C 的每个特征向量相乘,得到一个数字。
  5. 从 F 中减去每个数字与相应特征向量的乘积。
  6. 获取结果向量的长度。
  7. 如果此值低于某个常数,则 S 被识别为属于 C 类。

【讨论】:

    【解决方案2】:

    Cowling (2004) 的这篇博士论文 Non-Speech Environmental Sound Classification System for Autonomous Surveillance 对音频特征提取和分类的不同技术进行了实验结果。他使用诸如叮当声的钥匙和脚步声等环境声音,并且能够达到 70% 的准确率:

    发现最好的技术是连续小波变换 使用动态时间规整或梅尔频率倒谱进行特征提取 具有动态时间规整的系数。这两种技术 达到 70% 的识别率。

    如果你把自己限制在一种声音,也许你可以达到更高的识别率?

    作者还提到,在语音识别(学习矢量量化和神经网络)方面效果很好的技术在环境声音方面效果不佳。

    我还在这里找到了一篇更新的文章:Detecting Audio Events for Semantic Video Search,作者是 Bugalho 等人。 (2009),他们检测电影中的声音事件(如枪声、爆炸等)。

    我在这方面没有经验。由于您的问题激起了我的兴趣,我只是偶然发现了这些材料。我在这里发布我的发现,希望对您的研究有所帮助。

    【讨论】:

    • @AJMansfield 找到文章的替代链接。
    猜你喜欢
    • 2019-04-12
    • 2021-07-15
    • 2021-08-13
    • 2022-01-05
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多