在Java中是否有任何方法可以检测Android设备是否安装了脱机语音识别语言,以及是否提示用户不下载它?
我知道你可以要求发言到文本,更喜欢离线语音到文本,但是你怎么知道设备是否安装了语言?
这个问题不是关于如何使用离线语音,这是有效的.问题是"如何从Java应用程序代码中检测和下载/安装脱机语音语言".即让应用程序检测他们是否安装了脱机德语,如果没有提示用户下载/安装它.
我试图实现连续的SpeechRecognition机制.当我开始语音识别时,我在logcat中收到以下消息:
06-05 12:22:32.892 11753-11753/com.aaa.bbb D/SpeechManager: startSpeechRecognition:
06-05 12:22:33.022 11753-11753/com.aaa.bbb D/SpeechManager: onError: Error 7
06-05 12:22:33.352 11753-11753/com.aaa.bbb D/SpeechManager: onReadyForSpeech:
06-05 12:22:33.792 11753-11753/com.aaa.bbb D/SpeechManager: onBeginningOfSpeech: Beginning
06-05 12:22:34.492 11753-11753/com.aaa.bbb D/SpeechManager: onEndOfSpeech: Ending
06-05 12:22:34.612 11753-11753/com.aaa.bbb D/SpeechManager: onError: Error 7
Run Code Online (Sandbox Code Playgroud)
这个错误7表示ERROR_NO_MATCH.如你所见,它几乎立即被召唤.这不是不恰当的行为吗?
以下是startSpeechRecognition和第一个错误7之间的完整日志:
06-05 12:22:32.892 11753-11753/com.aaa.bbb D/SpeechManager: startSpeechRecognition:
06-05 12:22:32.932 4600-4600/? I/GRecognitionServiceImpl: #startListening [en-US]
--------- beginning of system
06-05 12:22:32.932 3510-7335/? V/AlarmManager: remove PendingIntent] PendingIntent{6307291: PendingIntentRecord{2af25f6 com.google.android.googlequicksearchbox startService}}
06-05 12:22:32.932 4600-4600/? W/LocationOracle: Best location was null
06-05 12:22:32.932 3510-4511/? D/AudioService: getStreamVolume 3 index 90 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用 android SpeechRecognizer 的应用程序。我用它来做一些简单的事情。我单击一个按钮,我的语音识别器开始监听,我从我所说的内容中得到了一些结果。
容易吧?好吧,我的问题是我需要使 SpeechRecognizer 更快。我的意思是,我单击按钮,说“Hello”,SpeechRecognizer 需要大约 3-4 秒的时间返回一个包含可能结果的数组。我的问题是:
是否可以使 SpeechRecognizer 返回结果更快?或者花更少的时间来关闭监听意图并开始处理它监听的内容?也许还有另一种方法可以做到这一点?哪个会有比这个更好的性能?
我在检查库时看到了这 3 个参数:
EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS:
我们停止听到语音后需要多长时间才能认为输入完成。
EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS
话语的最小长度。
EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
在我们停止听到语音后认为输入可能完成所需的时间。
http://developer.android.com/intl/es/reference/android/speech/RecognizerIntent.html
我已经尝试了所有这些,但它不起作用,或者也许我没有正确使用它们。这是我的代码:
public class MainActivity extends Activity {
private static final String TIME_FORMAT = "%02d:%02d:%02d";
private final String TAG = "MainActivity";
private StartTimerButton mSpeakButton;
private CircleProgressBar mCountdownProgressBar;
private CountDownTimer mCountDownTimer;
private TextView mTimer;
private int mRunSeconds = 0;
private SpeechRecognizer mSpeechRecognizer;
private Intent mSpeechRecognizerIntent;
private boolean mIsListening = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRunSeconds …Run Code Online (Sandbox Code Playgroud) 我在 android 上使用 SpeechRecognizer 来识别用户的声音。在卸载 Google App 之前它运行良好。(https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en)
我更新了 Google App,但出现了“绑定到识别服务失败”等错误。如何使应用程序成功运行?
我该怎么做才能正常使用 SpeechRecognizer?
谢谢。