识别 iOS 上的特定声音

Posted

技术标签:

【中文标题】识别 iOS 上的特定声音【英文标题】:Identify a specific sound on iOS 【发布时间】:2011-06-01 16:24:28 【问题描述】:

我希望能够识别 ios 应用程序中的特定声音。我想它基本上会像语音识别一样工作,因为它相当模糊,但它只需要针对 1 个特定的声音。

我已经完成了一些快速 FFT 的工作来识别超过特定阈值的特定频率,并且仅当它们是独奏时(即,它们没有被其他频率包围),所以我可以很容易地识别单个音调。我认为这只是对此的扩展,但与声音记录的 FFT 数据集进行比较,并比较音频长度上的 0.1 秒块。而且我还必须考虑幅度变化、音高变化和时间变化。

谁能指出我可以用来加速这个过程的任何预先存在的来源?我似乎找不到任何可用的东西。或者失败了,关于如何开始这样的事情的任何想法?

非常感谢

【问题讨论】:

您找到解决方案了吗?我正在尝试做类似的事情 - 在两个设备之间传输数据,使用音频来表示数据,所以我只需要识别由两个设备上已经存在的文件生成的特定声音.... 【参考方案1】:

根据您的描述,您想要做什么并不完全清楚。 “特定”的声音是什么样的?它有高背景噪音吗? 具体的可识别特征是什么(例如音高、不和谐、音色……)? 您想将它与哪些其他“声音”进行比较? 您是否只想将任意声谱与“模板声音”进行匹配? 你的声音是打击乐、旋律、演讲……吗?是长还是短……? 您期望最佳辨别力的频率范围是多少?特征是否随时间不变?

没有适用于所有事情的“通用”解决方案。语音识别本身是相当复杂的,不能很好地处理可辨别频率不在的抽象声音。 MEL 波段。

因此,总而言之,您留下了太多悬而未决的问题,无法获得有用的答案。 我只能根据少量信息提出以下建议:

对于模板声音: 1) 从功率谱中提取谱峰位置 2)测量峰值周围的标准偏差并从中构造高斯 3)保存高斯以供以后分类 对于未知的声音: 1) 提取光谱峰值位置 2)将这些点投影到保存的高斯上,这会给你留下峰值位置的 z 分数 3) 使用计算的 z 分数,您应该能够对模板声音进行分类

注意:这是一种非常粗略的方法,它根据声音最强大的频率来区分声音。使用高斯,它为最强大的频率的微小变化留下了空间。

【讨论】:

我有类似的要求,虽然我有更多细节。我的背景噪音很低,我试图在它发生时拾取高噪音。我能想到的最好的例子是,如果你想在暴雨期间识别出引人注目的灯光(但不是在非常响亮的水平)。噪音在音量上有一定程度的变化,但大部分是相同的。我需要考虑左右声道强度。您将如何提取光谱峰并构建高斯?识别它? 抱歉回复晚了。由于您似乎只对幅度变化感兴趣,所以一个简单的阈值就可以了。您还可以通过测量幅度再次下降所需的时间来增加稳健性,然后将此信息用于阈值过滤器。

以上是关于识别 iOS 上的特定声音的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 的声音识别?

如何在现场系统声音中识别声音“峰值”?

iOS 14 「声音识别」功能简测:戴耳机也能知悉敲门了?

iOS14 - 为听力障碍人士打造的声音识别功能

iOS 14 的“声音识别”如何使用?

Swift 中的“声音”识别?