2

我制作了一个语音识别文本的演示。我刚刚 在 Android 上构建了演示 Building Pocketsphinx ,它运行良好。但我的问题是如何从音频文件中进行输入,而不是实时发言。有什么办法解决吗?谢谢。

4

2 回答 2

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())

有关更多详细信息,请参阅CMUSphinx 教程的 Pocketsphinx 部分

于 2013-03-22T16:00:00.790 回答
0

虽然今天有点晚了,但希望它可能对寻求解决类似要求的其他人有所帮助。在课堂上查看以下代码,SpeechRecognizer特别是在声明 AudioRecord object AudioRecord recorder = new AudioRecord(AudioSource.VOICE_RECOGNITION, sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize * 2); 创建另一个类,如 SpeechRecognizer,您可以选择任何支持的音频源MediaRecord

于 2014-11-07T11:39:46.867 回答