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 action

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.

var textForVoiceInput by remember { mutableStateOf("") }

val voiceLauncher =
    rememberLauncherForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { activityResult ->
        // This is where you process the intent and extract the speech text from the intent.
        activityResult.data?.let { data ->
            val results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
            textForVoiceInput = results?.get(0) ?: "None"
        }
    }

val scrollState = rememberScrollState()

ScreenScaffold(scrollState = scrollState) {
    // rest of implementation here
    // ...
    Column(
        // rest of implementation here
        // ...

        // Create an intent that can start the Speech Recognizer activity
        val voiceIntent: Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
            putExtra(
                RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM
            )

            putExtra(
                RecognizerIntent.EXTRA_PROMPT,
                stringResource(R.string.voice_text_entry_label)
            )
        }
        // Invoke the process from a chip
        Chip(
            onClick = {
                voiceLauncher.launch(voiceIntent)
            },
            label = stringResource(R.string.voice_input_label),
            secondaryLabel = textForVoiceInput
        )
    }
}

Voice Actions

Untuk saat ini, Voice Actions dan Action Aplikasi Asisten tidak didukung kecuali untuk aplikasi Wear OS di China. Baca lebih lanjut dukungan Voice Actions untuk China.