Input suara

Setiap perangkat Wear OS dilengkapi dengan mikrofon sehingga pengguna dapat menggunakan suaranya untuk berinteraksi dengan perangkat. Anda dapat membagi interaksi ini menjadi tiga jenis:

  • Merekam audio
  • Mendapatkan input ucapan bentuk bebas
  • Voice actions

Merekam audio

Perekaman audio di perangkat Wear OS berfungsi dengan cara yang sama seperti di ponsel. Lihat Dokumentasi MediaRecorder untuk mempelajari lebih lanjut cara merekam audio di Android. Anda juga dapat melihat contoh implementasi di Contoh Speaker Wear di GitHub.

Mendapatkan input ucapan bentuk bebas

Panggil aktivitas Pengenal Ucapan bawaan sistem untuk mendapatkan input ucapan dari pengguna. Gunakan input ucapan untuk mengirim pesan atau melakukan penelusuran.

Di aplikasi Anda, panggil startActivityForResult() menggunakan tindakan ACTION_RECOGNIZE_SPEECH. Tindakan ini akan memulai aktivitas pengenalan suara, dan Anda dapat menangani hasilnya di onActivityResult().

Contoh kode berikut menunjukkan cara memulai dan menangani aktivitas pengenalan ucapan.

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);
}

Voice Actions

Untuk saat ini, Voice Actions dan Action Aplikasi Bantuan tidak didukung kecuali untuk aplikasi Wear OS di Tiongkok. Baca dukungan Voice Actions untuk Tiongkok selengkapnya.