我为语音识别文本做了一个演示。我刚刚构建了演示Building Pocketsphinx On Android 它运作良好。但我的问题是如何从音频文件输入,而不是从实时说话。有什么想法解决它吗?感谢。
答案 0 :(得分:2)
您可以使用Pocketsphinx API处理任何二进制数据,包括从文件读取的二进制数据。您只需确保数据采用所需格式。一旦将二进制数据读入short []类型的缓冲区,就可以使用pocketsphinx API调用来处理它:
导入edu.cmu.pocketsphinx.pocketsphinx;
Pocketsphinx ps = new Decoder(....)
ps.processRaw(buf, buf.length, false, false);
处理完所有数据后,您可以检索结果
Hypothesis hyp = pocketsphinx.getHyp();
System.out.println(hyp.getHypstr())
答案 1 :(得分:0)
虽然当天晚些时候,希望它可能对其他寻求解决类似要求的人有所帮助。
请查看SpeechRecognizer
课程中的以下代码,尤其是Declaring AudioRecord object
AudioRecord录音机=新的AudioRecord(
AudioSource.VOICE_RECOGNITION,sampleRate,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,bufferSize * 2);
创建另一个类,如SpeechRecognizer,您可以选择MediaRecord