如果多次调用,Sphinx语音识别功能无法正常工作

时间:2014-03-29 13:51:21

标签: speech-recognition microphone cmusphinx sphinx4

我正在从另一个班级的不同主题中调用斯芬克斯语音识别。 我已经将语音识别代码放在一个方法中,并且每个线程都有一个方法,一次一个,第一个线程工作正常,第二个线程显示错误,程序终止。

以下是我的语音识别方法:

public String voiceGet() throws InterruptedException{
cm = new ConfigurationManager(HelloWorld.class.getResource("helloworld.config.xml"));
        recognizer = (Recognizer) cm.lookup("recognizer");
        microphone = (Microphone) cm.lookup("microphone");
        microphone.clear();
        recognizer.allocate();
         if(microphone.startRecording())
        {

                System.out.println("Speak now");
                Result result = recognizer.recognize();
                if(result != null)
                {
                    resultString = result.getBestResultNoFiller();
                    System.out.println(resultString);
                } else
                {
                    System.out.println("nothing spoken");
                }

        } else
        {
            System.out.println("microphone not available");
            recognizer.deallocate();
            System.exit(1);

        }
            recognizer.deallocate();
            recognizer=null;
            microphone.stopRecording();
            microphone.clear();
            microphone=null;
            cm=null;
        return resultString;


    }

我通过另一个类中的此类对象调用此方法。它第一次运行良好,从第二次起,它显示以下错误:

microphone not available
19:07:46.001 SEVERE microphone         Can't open microphone line with format PCM_SIGNED 16000.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian not supported.

请告诉我如何修改我的代码。

0 个答案:

没有答案