我已经阅读了很多关于SO的问题,坦率地说,每个问题都没有描述解决该问题的任何特定方法。有些人说“做FFT”,有些人说“零交叉”等。但是我只了解数字音频输入由一个特定频率的幅度阵列组成。很好。超越它。
现在我知道尼奎斯特定理,频率,振幅,傅立叶级数等,这是从2-3年前的某个学期在我的大学课程中做到的。但是那时候我们真的没有教过傅立叶在现实世界中的使用情况,而且我不花心思去研究更多关于傅立叶的知识,而不仅仅是学习通过该课程。但是现在我将不得不使用所有这些东西。
这是我要检测的声音的快照:
显然,声音具有独特的图表。我只想了解如何为图中的独特尖峰线提取其特定独特特征。像是什么幅度,频率等等,还有多少时间-尽管我猜这很微不足道。
我想要一个简单,循序渐进,不模糊的说明列表-我可以用谷歌搜索我不懂的术语。
像这样吗?-
获取输入音频数据
频谱图
获取您想要在无噪声环境中检测到的声音的频谱图
研究该图-绘制该声音的独特特征
利用(4)中找到的声音特征,做出某种可以检测实时音频馈送中那些特定特征的功能
如果找到匹配项,那么-工作已完成。
完善算法以消除误报。
我当时想让用户在一个相当好的环境中记录他们想要存储的声音作为手势。并且用户只会在安静的时间间隔之间发出声音; 录制开始和结束时3秒。
可以这么说,在最初的3秒钟内,我的系统将确定当前输入是正常的安静背景声音。然后,图表中的突然变化将开始声音输入。然后,当录制停止时,录制将继续进行3秒钟,随后是安静的时间间隔。这将由用户手动完成。然后,它将仅自动存储图表中突然变化持续的那部分的特征-在填充时间之间的某个地方。
因此,该部分的特性将另存为该声音的手势数据,该数据随后将用于检测实时音频馈送中的特定声音。
问题是,我在用通俗的英语思考所有这些。我需要考虑数学和物理学,以便能够在我的代码中有效地实现它。关于我在代码中写什么和在哪里写,我真是一无所知,即使我有这么多库和关于SO的问题也是如此。
很抱歉,如果这很长。