在Android 13上实现语音识别,可以使用Android提供的SpeechRecognizer类。以下是一个基本示例代码:
首先,在AndroidManifest.xml文件中添加以下权限:
然后,在你的Activity中引入SpeechRecognizer类,并在onCreate方法中初始化它:
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
public class MainActivity extends AppCompatActivity {
private SpeechRecognizer speechRecognizer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
speechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {
// 当用户开始说话时调用
}
@Override
public void onBeginningOfSpeech() {
// 当检测到用户开始说话时调用
}
@Override
public void onRmsChanged(float rmsdB) {
// 音量变化时调用
}
@Override
public void onEndOfSpeech() {
// 当用户停止说话时调用
}
@Override
public void onError(int error) {
// 发生错误时调用
}
@Override
public void onResults(Bundle results) {
// 获取识别结果时调用
ArrayList matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (matches != null && !matches.isEmpty()) {
String recognizedText = matches.get(0);
// 在这里处理识别到的文本
}
}
// 其他回调方法...
});
}
}
接下来,在你的Activity中添加开始语音识别的方法,例如一个按钮的点击事件:
public class MainActivity extends AppCompatActivity {
// ...
public void startSpeechRecognition() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
speechRecognizer.startListening(intent);
}
}
最后,记得在Activity销毁时停止语音识别:
public class MainActivity extends AppCompatActivity {
// ...
@Override
protected void onDestroy() {
super.onDestroy();
if (speechRecognizer != null) {
speechRecognizer.destroy();
}
}
}
这样,当用户点击按钮时,语音识别将会开始,并在识别到结果时调用onResults方法进行处理。你可以根据自己的需求进行进一步的处理,例如将识别的文本显示在界面上或执行其他操作。