4

我们所知道的,许多语言都包含来自其他语言的几个单词。在使用 android 语音识别 (Androdi4.1) 开发 android 应用程序时,我们需要该应用程序同时(或异步)处理两种语言(EN 和 TR)的语音输入,并为我们带来两种结果。

土耳其语发音的英文单词“Burger”是“Börgır”。如果我们在英语中使用 android 语音识别,应用程序将 Burger 理解为 Burger (on text)。如果我们在土耳其语中使用 android 语音识别,应用程序将 Burger 理解为 Börgır(on text) 这是因为土耳其语被写成口语。

例如:

带有土耳其语选项的语音识别结果:Börgır yemek istiyorum

带有英语选项的语音识别结果:Burger xxxxx yyyyyyyyy

预期结果是(综合结果):Burger yemek istiyorum

那么你知道如何同时处理两种语言吗,用android语音识别来收集两种结果,然后我们将它们结合起来以获得最好的结果。

以下代码用于在应用程序中实现 android 语音识别:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

// Specify the calling package to identify your application

intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "tr"); --- or eng-us
4

3 回答 3

4

使用当前的 Android API 无法做到这一点。

您可以尝试同时运行两个SpeechRecognizer实例(一个带有土耳其语EXTRA_LANGUAGE,另一个带有英语)。这可能不起作用,因为不同的服务不能同时使用麦克风。

您可以尝试自己实现记录部分,然后将生成的字节数组推送到两个不同的识别器。但是没有API。

于 2013-01-30T11:35:57.663 回答
3

我是这样解决的:

   language = "tr-TR";
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, language);
    intent.putExtra(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES, language);
    intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, language);
    intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, language);
    intent.putExtra(RecognizerIntent.EXTRA_RESULTS, language);
    startActivityForResult(intent, REQUEST_CODE);
于 2016-06-21T11:56:19.090 回答
0

我建议您为语音识别器选择一种语言,例如英语。然后当你说你的另一种语言时,看看语音识别器会出现什么。您也许可以解释对此的英语认可。

例如,如果您想对英语识别器说西班牙语,而用户用西班牙语说“si”,您可能会注意到识别器将其识别为“see”

于 2013-01-30T18:47:56.563 回答