【问题标题】:How to use more then one language in android speech recognition at the same time如何在android语音识别中同时使用一种以上的语言
【发布时间】:2013-01-29 18:43:42
【问题描述】:

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

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

例如:

土耳其语选项的语音识别结果: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

【问题讨论】:

  • 你找到解决办法了吗?

标签: android android-intent speech-recognition speech-to-text


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我是这样解决的:

       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);
    

    【讨论】:

    • 没有解决问题,你在离线模式下试过了吗
    • 离线模式?以太网关闭时如何访问 google api。我想,这是不可能的
    【解决方案3】:

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

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

    【讨论】:

    • 如果我们找不到任何使用当前 API 的解决方案,解释是我们的答案。正如 Kaarel 所说,目前没有解决方案,我们将继续使用您和我们的解决方案,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    相关资源
    最近更新 更多