Spracheingabe

Jedes Wear OS-Gerät ist mit einem Mikrofon ausgestattet, sodass Nutzer per Sprachbefehl mit dem Gerät interagieren können. Sie können diese in drei Arten von Interaktionen unterteilen:

  • Audio aufnehmen
  • Spracheingabe im freien Format abrufen
  • Sprachbedienung

Audio aufnehmen

Audioaufnahmen auf einem Wear OS-Gerät funktionieren genauso wie auf einem Smartphone. Weitere Informationen zur Audioaufzeichnung unter Android findest du in der MediaRecorder-Dokumentation. Im Wear-Speaker-Beispiel auf GitHub können Sie sich auch eine Beispielimplementierung ansehen.

Spracheingabe im freien Format abrufen

Rufen Sie die integrierte Spracherkennung des Systems auf, um Spracheingaben von Nutzern zu erhalten. Verwenden Sie die Spracheingabe, um Nachrichten zu senden oder Suchanfragen durchzuführen.

Rufen Sie in Ihrer App startActivityForResult() mit der Aktion ACTION_RECOGNIZE_SPEECH auf. Dadurch wird die Spracherkennung gestartet und das Ergebnis kann dann in onActivityResult() verarbeitet werden.

Das folgende Codebeispiel zeigt, wie eine Spracherkennungsaktivität gestartet und verarbeitet wird.

Kotlin

private const val SPEECH_REQUEST_CODE = 0
...
// Create an intent that can start the Speech Recognizer activity
private fun displaySpeechRecognizer() {
    val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
        putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
    }
    // This starts the activity and populates the intent with the speech text.
    startActivityForResult(intent, SPEECH_REQUEST_CODE)
}

// This callback is invoked when the Speech Recognizer returns.
// This is where you process the intent and extract the speech text from the intent.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        val spokenText: String? =
                data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).let { results ->
                    results[0]
                }
        // Do something with spokenText.
    }
    super.onActivityResult(requestCode, resultCode, data)
}

Java

private static final int SPEECH_REQUEST_CODE = 0;

// Create an intent that can start the Speech Recognizer activity
private void displaySpeechRecognizer() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// This starts the activity and populates the intent with the speech text.
    startActivityForResult(intent, SPEECH_REQUEST_CODE);
}

// This callback is invoked when the Speech Recognizer returns.
// This is where you process the intent and extract the speech text from the intent.
@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent data) {
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
        List<String> results = data.getStringArrayListExtra(
                RecognizerIntent.EXTRA_RESULTS);
        String spokenText = results.get(0);
        // Do something with spokenText.
    }
    super.onActivityResult(requestCode, resultCode, data);
}

Sprachbedienung

Die Sprachbedienung und Assistant-App-Aktionen werden derzeit nicht unterstützt, mit Ausnahme von Wear OS-Apps in China. Weitere Informationen zur Unterstützung der Sprachbedienung für China