Android语音识别
时间: 2023-12-10 09:35:14 浏览: 144
Android提供了SpeechRecognizer类来实现语音识别功能。下面是一个简单的例子,演示如何使用SpeechRecognizer类来实现语音识别:
```java
// 创建SpeechRecognizer对象
SpeechRecognizer mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
// 创建Intent对象,设置语音识别的参数
Intent mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
// 设置语音识别监听器
mSpeechRecognizer.setRecognitionListener(new RecognitionListener() {
@Override
public void onReadyForSpeech(Bundle params) {
// 准备开始说话
}
@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 onResults(Bundle results) {
// 识别结果
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (matches != null && matches.size() > 0) {
String result = matches.get(0);
// 处理识别结果
}
}
@Override
public void onPartialResults(Bundle partialResults) {
// 临时识别结果
}
@Override
public void onEvent(int eventType, Bundle params) {
// 其他事件
}
});
// 开始语音识别
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
```
在上面的代码中,我们首先创建了一个SpeechRecognizer对象,然后创建了一个Intent对象,并设置了语音识别的参数。接着,我们设置了一个RecognitionListener监听器,用于监听语音识别的各种事件。最后,我们调用startListening()方法开始语音识别。
阅读全文