2011-06-01 61 views
5

我希望能够识别iOS应用程序中的特定声音。我猜它基本上可以像语音识别一样工作,因为它相当模糊,但它只能用于1个特定的声音。识别iOS上的特定声音

我做了一些快速的FFT的东西超过一定的阈值来识别特定的频率,只有当他们是独奏(即,他们没有其他的频率包围),所以我可以很容易地识别各个音调。我认为这仅仅是这个的扩展,但是与声音录制的FFT数据集比较,并且比较音频长度上的0.1秒块。而且我还必须考虑幅度的变化,稍微调整一点,然后稍微考虑一下。

任何人都可以指向我,我可以用它来一起加速这一进程的任何预先存在的来源?我似乎无法找到任何可用的东西。或者说失败了,关于如何开始这样的事情的任何想法?

非常感谢

+0

您是否找到解决方案?我正在尝试做类似的事情 - 在两台设备之间传输数据,使用音频来表示数据,所以我只需要识别由已经存在于两台设备上的文件生成的特定声音...... – 2017-01-24 11:37:24

回答

1

从您的描述,它不是完全清楚你想要做什么。 什么是“特定”的声音?它有高背景噪音吗? 什么是特定的可识别特征(例如音调,吸入性,音色...)? 你想对比哪些其他“声音”? 你只是想匹配一个任意的声谱与“模板声音”? 你的声音是打击乐,旋律,演讲,......?它是长,短...? 您希望最佳辨别度的频率范围是多少?这些功能是否随时间变化?

没有适用于一切的“通用”解决方案。语音识别本身相当复杂,并且不适用于抽象声音,其可识别频率不在例如MEL乐队。

所以在最后,你离开了太多悬而未决的问题得到有用的答案。 唯一的建议基础上,一些信息,我可以做如下:

 
For the template sound: 
1) Extract spectral peak positions from the power spectrum 
2) Measure the standard deviation around the peaks and construct a gaussian from it 
3) save the gaussians for later classification 

For unkown sounds: 
1) Extract spectral peak positions 
2) Project those points onto the saved gaussians which leaves you with z-scores of the peak positions 
3) With the computed z-scores you should be able to classify your template sound 

注:这是根据他们最强大的频率,判别声音非常粗略的方法。使用gaussians可以在最强大的频率上稍稍改变空间。

+0

我有类似的要求,虽然我有更多的细节。我的背景噪音很低,我试图在发生高噪音时拾取。我能想到的最好例子就是如果你想在暴风雨期间识别照明引人注意的(但不是在起泡的响亮水平)。噪音在一定程度上有所不同,但大体相同。我需要考虑左右声道强度。你将如何去提取谱峰并构造高斯?识别它? – DogEatDog 2012-04-05 03:50:10

+0

对不起,延迟回复。 由于您似乎只对振幅变化感兴趣,因此只需一个简单的阈值即可。通过测量所需的时间,您可以增加更多的鲁棒性,直到幅度再次下降,然后将此信息用于阈值滤波器。 – pokey909 2012-06-18 18:22:06