SpeechRecognizer提供多种语言的结果,但我只想要一种语言

时间:2018-09-26 09:53:01

标签: android speech-recognition

我知道这个问题已经问过很多次了,但是我没有找到适合我的答案。 假设我想认识瑞典人。我说“på”,我确实在结果列表中得到了该词,但是我也得到了英语单词“ paw”,其发音相同。有什么方法可以将结果列表限制为仅一种语言的单词吗?

我在调用RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS时尝试了EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE,但是在进行实际的语音识别时,它不会限制我的结果列表。 EXTRA_LANGUAGE没有任何区别。

限制结果列表的长度也不起作用,因为我首选语言的匹配不一定在结果列表中排在第一位。瑞典语不是问题,当我使用西班牙语作为首选和首选语言时,也会发生同样的事情。

我正在编写的应用需要比完整的句子更频繁地识别单个单词。

Locale def = Locale.getDefault();
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication().getPackageName());
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, def.toLanguageTag());
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, def.toLanguageTag()); 

intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{def.toLanguageTag()});
speechInput = SpeechRecognizer.createSpeechRecognizer(MainActivity.this);
speechInput.setRecognitionListener(recognitionListener);
speechInput.startListening(intent);

0 个答案:

没有答案