Java 将语音识别仅限于一种语言

Java 将语音识别仅限于一种语言,java,android,speech-recognition,Java,Android,Speech Recognition,我一直在尝试制作一个语音识别器,每次只识别选定的语言,但似乎英语总是介于两者之间,从而造成不一致。例如,使用与英语不同的语言说话,而您使用该语言所说的内容可能会被设备“听错”,从而导致出现一些随机的英语内容。 到目前为止,我一直在努力做到这一点: final SpeechRecognizer speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); //Creating SpeechRecognizer

我一直在尝试制作一个语音识别器,每次只识别选定的语言,但似乎英语总是介于两者之间,从而造成不一致。例如,使用与英语不同的语言说话,而您使用该语言所说的内容可能会被设备“听错”,从而导致出现一些随机的英语内容。 到目前为止,我一直在努力做到这一点:

        final SpeechRecognizer speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this); //Creating SpeechRecognizer
        final Intent speechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        switch (languageSelection) {
            case "En":
                callSpeechBtn();
                break;
            case "Gr":
                speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "el-GR");
                callSpeechBtn();
                break;
            case "local":
                speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
                callSpeechBtn();
                break;
        }

我假设您希望语言识别器只监听语言X,而不监听介于两者之间的任何内容。问题是,如果不认识另一种语言(并正确地翻译),它就不知道另一种语言是什么,这是不可能的。你想要的是另一个水平的智力——它需要知道他们说的不是英语,正确地计算出他们何时转换,以及正确地计算出他们何时返回。这超出了当前实现所能完成的几个步骤,我认为这并不是任何人真正想要的——这是一个非常不寻常的请求。您正在考虑编写自己的识别器来尝试这样做。我假设您希望语言识别器只监听语言X,而不监听介于两者之间的任何内容。问题是,如果不认识另一种语言(并正确地翻译),它就不知道另一种语言是什么,这是不可能的。你想要的是另一个水平的智力——它需要知道他们说的不是英语,正确地计算出他们何时转换,以及正确地计算出他们何时返回。这超出了当前实现所能完成的几个步骤,我认为这并不是任何人真正想要的——这是一个非常不寻常的请求。您正在考虑编写自己的识别器,甚至尝试这样做。