如何使用Android的实时演讲文字?

前端之家收集整理的这篇文章主要介绍了如何使用Android的实时演讲文字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Android 4.1中,您可以使用 keyboard上的麦克风选项获得实时演讲文字转换.

我一直在查看android.speech的文档,试图找出如何将实时语音实现为应用程序的文本.但是,唯一可以促成这一点的选项是“EXTRA_PARTIAL_RESULTS”选项(服务器每次尝试使用它时都会忽略).

代码

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,"VoiceIME");
intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS,true);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS,3000L);

mSpeaker.startListening(intent);

从不返回部分结果.

我知道这是可能的,因为键盘版本是一贯的.有人知道吗

解决方法

在开始呼叫之前,您需要注册onPartialResults-callback.两个重要的事情要注意:

>调用onPartialResults的bundle的结构不是由Android API指定的;
>并不是每个语音识别器都支持这种回调.

因此,您的代码将专门针对Google语音搜索.

mSpeaker.setRecognitionListener(new RecognitionListener() {
  ...
  public void onPartialResults(Bundle partialResults) {
    // WARNING: The following is specific to Google Voice Search
    String[] results = 
      partialResults.getStringArray("com.google.android.voicesearch.UNSUPPORTED_PARTIAL_RESULTS");
    updateTheUi(results);
  }
  ...
}

要在开源应用程序中查看此回调操作,请参阅Babble:

> Google Play:https://play.google.com/store/apps/details?id=be.lukin.android.babble
>源代码https://github.com/lukin0110/babble/blob/master/android/app/src/be/lukin/android/babble/BabbleActivity.java

猜你在找的Android相关文章