当有人说话时,我正在使用 pocketsphinx 来识别 android 应用程序中的单词。我想实现功能以返回pocketsphinx记录的声音的最大幅度。如果我说任何单词,我需要得到一个声音级别作为回报(无论是从解码器识别还是不识别单词)。我做了什么:我查看了当前在源文件中注释的 pocketsphinx-->SpeechRecognizer 的代码:
/* while (!interrupted()
&& ((timeoutSamples == NO_TIMEOUT) || (remainingSamples > 0))) {
int nread = recorder.read(buffer, 0, buffer.length);
if (-1 == nread) {
throw new RuntimeException("error reading audio buffer");
} else if (nread > 0) {
decoder.processRaw(buffer, nread, false, false);
int max = 0;
for (int i = 0; i < nread; i++) {
max = Math.max(max, Math.abs(buffer[i]));
}....
我似乎是这个最大值是从缓冲区计算我如何从完整的记录中计算出来的。有人可以给我提示吗?