gpt4 book ai didi

AndroidPocketSphinx : How does the system know which recognizer is invoked?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:33 24 4
gpt4 key购买 nike

正在研究TestPocketSphinxAndAndroidASR.java的源码我不太清楚的第一件事是系统如何知道要调用哪个识别器(即 Google 或 CMUSphinx)。

我可以看到识别 Activity 是由以下各项启动的:

  Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);

但据我所知,此代码并非特定于 GVR(Google 语音搜索)或 CMUSphinx。

那么 Android 如何知道启动哪个识别器呢?

在 onCreate() 的前面,有一个对 AndroidPocketSphinx 设置的引用:

mUsePocektSphinxASR = prefs.getBoolean(PreferenceConstants.PREFERENCE_USE_POCKETSPHINX_ASR, false);

但是搜索整个项目只会产生下一个语句,它使用这个 bool 值来显示不同的 Toast:

if (mUsePocektSphinxASR){
Toast.makeText(TestPocketSphinxAndAndroidASR.this, "Would be working offline, using PocketSphinx Speech recognizer...", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(TestPocketSphinxAndAndroidASR.this, "Working online, Using system speech recognizer (Google speech recognition server)... ", Toast.LENGTH_LONG).show();
}

所以我不明白系统如何知道(基于该偏好)启动哪个识别器。

Android 如何知道要启动哪个识别器?

最佳答案

您的问题并非特定于 Android 上的语音识别。这只是一个关于 Android 上如何进行 Intent 解析的问题。

您的代码构建了一个 Intent 并将其传递给 startActivityForResult 以启动相应的 Activity 。如果有多个相应的 Activity ,Android 会弹出一个选择对话框,或者根据用户设置的默认值自动选择。如果例如自动选择 Google 语音搜索,然后您可以尝试在应用程序管理器中对其应用“清除默认值”。运行 Android 4.1 的 Samsung Galaxy S II 说明:

Settings -> Application manager -> All -> Google Search (v2.7.9...)
-> Launch by default -> Clear defaults

Google 搜索“默认启动”设置现在应显示“未设置默认值”。现在,如果您启动一项支持 ACTION_RECOGNIZE_SPEECH 的 Activity,并且如果除了 Google 搜索之外您还安装了一个或多个支持该 Intent 的应用,那么您将看到该对话框。如果为了测试您需要一个支持 ACTION_RECOGNIZE_SPEECH 的应用,请安装 Kõnele . (我不确定您引用的基于 CMU Sphinx 的代码是否实际实现了这种 Intent 类型,但我没有仔细检查。)

关于AndroidPocketSphinx : How does the system know which recognizer is invoked?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18604166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com