ورودی صدا

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

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

ضبط صدا

ضبط صدا در دستگاه Wear OS به همان روشی که در تلفن انجام می شود کار می کند. برای کسب اطلاعات بیشتر در مورد ضبط صدا در اندروید به مستندات MediaRecorder مراجعه کنید. همچنین می توانید به یک نمونه پیاده سازی در نمونه Wear Speaker در 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 در چین پشتیبانی نمی‌شوند. درباره پشتیبانی Voice Actions برای چین بیشتر بخوانید.