На каждом устройстве Wear OS есть микрофон, поэтому пользователи могут взаимодействовать с устройством с помощью голоса. Их можно разделить на три типа:
- Записывать аудио
- Как получить голосовой ввод в свободной форме
- Голосовые команды
Записывать аудио
Запись аудио на устройстве Wear OS работает так же, как и на телефоне. Подробнее о записи аудио на устройствах Android можно узнать из документации по MediaRecorder. Пример реализации можно найти в образце Wear Speaker на сайте GitHub.
Как получить голосовой ввод в свободной форме
Вызовите встроенную в систему функцию распознавания речи, чтобы получать голосовой ввод от пользователей. Используйте голосовой ввод, чтобы отправлять сообщения или выполнять поиск.
В приложении вызовите startActivityForResult()
с помощью действия ACTION_RECOGNIZE_SPEECH. Это запустит распознавание речи, и вы сможете обработать результат в onActivityResult().
В приведенном ниже фрагменте кода показано, как запустить и обработать действие распознавания речи.
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 ) } }
Голосовые команды
В настоящее время голосовые команды и действия в приложении Ассистента не поддерживаются, за исключением приложений Wear OS в Китае. Подробнее о поддержке голосовых действий в Китае…