android studio实现语音识别
时间: 2023-09-18 10:06:01 浏览: 455
SpeechRecognizer:Android开发-在Android项目里集成讯飞语音识别与合成的实现
在 Android Studio 中实现语音识别,可以使用 Android 提供的 SpeechRecognizer 类。下面是一个简单的示例代码,演示如何通过语音输入获取文本:
1. 在你的 Android 项目中,打开 `build.gradle` 文件,并确保以下依赖项已添加到 `dependencies` 部分:
```groovy
implementation 'com.android.support:support-v4:29.0.0'
```
2. 创建一个新的 Activity 或在现有的 Activity 中添加以下代码:
```java
import android.content.Intent;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Button startBtn;
private TextView resultTextView;
private SpeechRecognizer speechRecognizer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startBtn = findViewById(R.id.start_btn);
resultTextView = findViewById(R.id.result_textview);
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startSpeechRecognition();
}
});
}
private 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, "en-US"); // 设置识别语言为英语,可以根据需要调整
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<String> resultData = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
if (resultData != null && resultData.size() > 0) {
String recognizedText = resultData.get(0);
resultTextView.setText(recognizedText);
}
}
@Override
public void onPartialResults(Bundle partialResults) {
// 部分识别结果
}
@Override
public void onEvent(int eventType, Bundle params) {
// 其他事件
}
});
speechRecognizer.startListening(intent);
}
}
```
3. 在你的布局文件 `activity_main.xml` 中添加以下代码:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/start_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Recognition" />
<TextView
android:id="@+id/result_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/start_btn"
android:layout_marginTop="16dp" />
</RelativeLayout>
```
这样,当你点击 "Start Recognition" 按钮时,将会启动语音识别,并将识别出的文本显示在 TextView 中。
请注意,为了在 Android 设备上进行语音识别,你需要连接到互联网并且设备上安装了相应的语音识别引擎。此外,在 AndroidManifest.xml 文件中,你需要添加相应的权限:
```xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
```
希望这对你有帮助!如果你有其他问题,请随时问。
阅读全文