Android PocketSphinx录制AudioRecord对象的非法状态异常错误

Android PocketSphinx录制AudioRecord对象的非法状态异常错误,android,cmusphinx,android-audiorecord,Android,Cmusphinx,Android Audiorecord,在一些没有实际测试设备的设备上,当我开始PocketSphinx识别时,我得到了一个力闭合,碰撞报告如下所示。注意,它之前被混淆了: java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord. at android.media.AudioRecord.startRecording(AudioRecord.java:515) at edu.cmu.pocketsphinx.Spe

在一些没有实际测试设备的设备上,当我开始PocketSphinx识别时,我得到了一个力闭合,碰撞报告如下所示。注意,它之前被混淆了:

java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.
at android.media.AudioRecord.startRecording(AudioRecord.java:515)
at edu.cmu.pocketsphinx.SpeechRecognizer.setSearch(Unknown Source)
at edu.cmu.pocketsphinx.SpeechRecognizer$1.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:155)
at android.os.HandlerThread.run(HandlerThread.java:60)
根据事故报告,它似乎不是特定于某个设备


错误表示无法初始化音频记录。大多数人喜欢它不能在16khz下录制,你需要使用8khz型号的hub4wsj_sc_8k而不是en_us_semi。您还需要更改配置中的samplerate。@NikolayShmyrev使用16khz mmodel有什么好处吗?是否值得将两者都包括在内,并允许用户在两者之间进行选择?不,这并没有很大的优势,8khz型号也可以用于关键字激活。另请看,我改为8khz型号,但仍有问题,我意识到PocketSphinx没有调用其录音对象的release,因此我修复了此问题,但我仍然偶尔遇到此问题。。。我将尝试添加一个等待初始化检查,看看这是否修复了它。。。