如何在我的Android应用程序中添加语音识别按钮?

时间:2018-01-21 12:43:20

标签: android speech-recognition

我是Java开发人员。对不起,我在Android上有0个想法。请耐心等待。

我正在考虑创建一个应用程序。要先构建我的应用程序,我必须学习必须学习android。为了获得动力,我正在尝试草绘应用程序,它应该是什么样子。我想让我的应用程序免提,这意味着我想使用语音识别进行导航并执行所有任务。

现在我的问题是"我有什么方法可以将Google的语音识别器作为自定义按钮添加到我的应用程序中?"所以它不会占用一半的屏幕,它只会在屏幕的最后收听。我会将音频转换为文本文件,因此,我可以使用API​​.AI来做一些事情。

还是有其他方法可以实现我的目标?

谷歌语音识别器也可以在iOS上运行吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Android SpeechRecognizer.Check实现的链接:访问https://developer.android.com/reference/android/speech/SpeechRecognizer.html

我在我的一个项目中尝试过SpecchRecognizer。

首先你必须像这样实施你的活动

public class MainActivity extends Activity implements RecognitionListener

然后在OnClickListener中执行以下代码。

SpeechRecognizer speech = SpeechRecognizer.createSpeechRecognizer(this);
                 speech.setRecognitionListener(this);
                 intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                         RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                 intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
                 intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
                 speech.startListening(intent);

在OnActivityResult中你可以得到结果。

ArrayList<String> result = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
textview.setText(result.get(0));

你也可以得到以下的实现。你可以在下面的覆盖方法中做任何你想做的事。

@Override
public void onBeginningOfSpeech() {

}

@Override
public void onRmsChanged(float rmsdB) {

}

@Override
public void onBufferReceived(byte[] buffer) {

}

@Override
public void onEndOfSpeech() {

}

@Override
public void onError(int error) {

}
@Override
public void onReadyForSpeech(Bundle params) {

}

这就是全部。