微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用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

原文地址:https://www.jb51.cc/android/311311.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐