ورودی گفتار

همه دستگاه‌های Wear OS میکروفون دارند، بنابراین کاربران می‌توانند از صدایشان برای تعامل با دستگاه استفاده کنند. می‌توانید این موارد را به سه نوع تعامل تقسیم کنید:

  • ضبط صدا
  • دریافت ورودی گفتار آزاد
  • کنش‌های گفتاری

ضبط صدا

ضبط صدا در دستگاه Wear OS به همان روشی که در تلفن انجام می‌شود، کار می‌کند. برای کسب اطلاعات بیشتر درباره ضبط صدا در Android، به اسناد MediaRecorder مراجعه کنید. همچنین می‌توانید پیاده‌سازی نمونه‌ای را در نمونه بلندگوی Wear در Github ببینید.

دریافت ورودی گفتار آزاد

فعالیت «تشخیص گفتار» داخلی سیستم را فراخوانی کنید تا ورودی گفتاری از کاربران دریافت کنید. برای ارسال پیام یا انجام جستجو از ورودی گفتاری استفاده کنید.

در برنامه‌تان، بااستفاده از کنش ACTION_RECOGNIZE_SPEECH با startActivityForResult() تماس بگیرید. با این کار، فعالیت تشخیص گفتار شروع می‌شود و سپس می‌توانید نتیجه را در 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 در چین. درباره پشتیبانی «کنش‌های صوتی» برای چین بیشتر بخوانید.