溫馨提示×

android speechrecognizer怎樣用

小樊
155
2024-11-25 18:39:58
欄目: 編程語言

要使用Android SpeechRecognizer,您需要遵循以下步驟:

  1. 添加權限:在AndroidManifest.xml文件中添加以下權限,以訪問麥克風和語音識別服務。
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
  1. 檢查權限:在運行時檢查應用是否具有錄音權限。如果沒有,請請求用戶授權。
private static final int REQUEST_RECORD_AUDIO_PERMISSION = 200;

private void requestRecordAudioPermission() {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
            != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.RECORD_AUDIO},
                REQUEST_RECORD_AUDIO_PERMISSION);
    } else {
        startSpeechRecognizer();
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == REQUEST_RECORD_AUDIO_PERMISSION) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            startSpeechRecognizer();
        } else {
            Toast.makeText(this, "Permission denied. Can't use speech recognition.", Toast.LENGTH_SHORT).show();
        }
    }
}
  1. 初始化SpeechRecognizer:在Activity中初始化SpeechRecognizer對象。
private SpeechRecognizer speechRecognizer;

private void startSpeechRecognizer() {
    speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
    speechRecognizer.setRecognitionListener(new RecognitionListener() {
        // 實現RecognitionListener接口的方法
    });
}
  1. 設置意圖過濾器:創建一個Intent對象,用于啟動語音識別服務,并設置相應的意圖過濾器。
private static final int START_SPEECH_RECOGNITION = 1;

private void startVoiceRecognition() {
    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");
    intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak now");
    startActivityForResult(intent, START_SPEECH_RECOGNITION);
}
  1. 處理識別結果:在onActivityResult方法中處理語音識別的結果。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == START_SPEECH_RECOGNITION && resultCode == RESULT_OK && data != null) {
        ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        String recognizedText = results.get(0);
        // 處理識別到的文本
    }
}
  1. 開始語音識別:在需要開始語音識別的地方調用startVoiceRecognition()方法。
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        requestRecordAudioPermission();
    }
});

現在,當用戶點擊按鈕時,應用將請求錄音權限并開始語音識別。識別到的文本將顯示在屏幕上。您可以根據需要處理識別到的文本。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女