- 首先需要在AndroidManifest.xml文件中添加以下权限:
- 然后在gradle内添加依赖包:
dependencies {
implementation 'com.google.android.gms:play-services-speech:16.0.0'
}
- 在布局文件中,添加一个用于接受语音转换后文字的TextView控件,如下所示:
- 在Activity或Fragment内定义使用语音输入的方法:
private void startVoiceRecognition() {
// 创建意图,启动Google语音识别器
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Listening...");
// 启动意图,等待语音识别结果
try {
startActivityForResult(intent, SPEECH_REQUEST_CODE);
} catch (ActivityNotFoundException e) {
// 如果设备上未安装语音识别包,则给出提示信息
Toast.makeText(this, "This device doesn't support speech-to-text", Toast.LENGTH_LONG).show();
}
}
- 在onActivityResult()方法中处理语音识别结果,并将结果显示在TextView中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (matches.size() > 0) {
String transcript = matches.get(0);
tvTranscript.setText(transcript);
}
}