我正在开发一个应用程序,我需要一些方法来比较两个声音是否匹配,我知道语音识别器是一种方法,但因为(我认为)它需要先将声音翻译成字符串,它除了语音识别器支持的语言之外,其他语言不会那么适合....有什么想法吗?就像过去的电话过去所做的那样,它只是将语音输入与设置期间录制的语音进行比较的语音标签
问问题
7628 次
2 回答
5
一个相对简单的方法是使用 FFT(快速傅立叶变换)将原始 WAV 文件的时域数据转换为频域数据(其中转换后的数组中的每个值代表一个相对幅度/强度)特定频段)。
如果同一个人说同一个词两次,则生成的时域数据在两个 WAV 文件中的数值仍然会有很大差异。将两个 WAV 文件转换到频域(使用相同大小的 FFT 窗口,即使两个文件的长度略有不同)将产生比原始 WAV 文件更相似的频率数组。
不幸的是,我还没有找到任何专门针对 Android 的 FFT 库。这是一个引用一些基于 Java 的库的问题:
于 2011-02-08T16:54:52.790 回答
2
一个想法是比较声谱图中声音的相似性。声谱图的特点是鲁棒性强,抗噪性强,是分析两种声音的良好参考。如果你采用这种方法,你应该首先找出声音的特征,然后你需要知道如何比较两个频谱图中的特征,它指的是模式识别。
这个 api http://code.google.com/p/musicg-sound-api/是用 java 编写的,可以在 android 中使用。它捕获波谱图。
于 2011-11-10T11:33:19.080 回答