比较android或语音标签(语音命令)API中的语音wav

时间:2011-02-08 16:39:13

标签: android wav speech-recognition voice-recognition wave

我正在开发一个应用程序,我需要一些方法比较2个声音,如果它们匹配与否,我知道Voice Recognizer是一种方法,但是因为(我认为)它需要将声音转换为字符串首先,除了语音识别器支持的语言之外,它不会适合其他语言....任何想法?就像过去使用的旧式手机一样,语音标签只是将语音输入与之前在设置过程中记录的语音进行比较

2 个答案:

答案 0 :(得分:5)

相对这样做的简单方法是使用FFT(快速傅立叶变换)将原始WAV文件的时域数据转换为频域数据(其中的每个值都是变换后的数组表示特定频带的相对幅度/强度。)

如果同一个人说两次相同的单词,那么在两个WAV文件中产生的时域数据仍将在数字上非常不同。将两个WAV文件转换到频域(对两者使用相同大小的FFT窗口,即使这两个文件的长度略有不同)也会产生比原始WAV文件更加相似的频率数组。 / p>

不幸的是,我还没有找到专门针对Android的任何FFT库。这是一个引用一些基于Java的库的问题:

Signal processing library in Java?

答案 1 :(得分:1)

一个想法是比较声谱中声音的相似性。频谱图中的特征是鲁棒的并且抵抗噪声,这是分析两个声音的良好参考。 如果你采用这种方法,你应该首先找出声音的特征,而不是你需要知道如何比较两个谱图中的特征,它指的是模式识别。

这个api http://code.google.com/p/musicg-sound-api/是用java编写的,可以在android中使用。它捕获波谱图。