الإدخال الصوتي

يتم تزويد كل جهاز Wear OS بميكروفون، ما يتيح للمستخدمين استخدام أصواتهم للتفاعل مع الجهاز. يمكنك تقسيم هذه التفاعلات إلى ثلاثة أنواع من التفاعلات:

  • تسجيل الصوت
  • الحصول على إدخال الكلام الحر
  • الإجراءات الصوتية

تسجيل الصوت

إنّ تسجيل الصوت على جهاز Wear OS يعمل بالطريقة نفسها التي يتم بها تسجيل الصوت على الهاتف. يمكنك مراجعة مستندات MediaRecorder لمعرفة المزيد من المعلومات حول تسجيل الصوت على Android. يمكنك أيضًا الاطّلاع على نموذج لتنفيذه في عيّنة 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
        )
    }
}

الإجراءات الصوتية

لا يمكن حاليًا استخدام "الإجراءات الصوتية" و"المهام في تطبيق مساعد Google" باستثناء تطبيقات Wear OS في الصين. يمكنك الاطّلاع على المزيد من المعلومات حول دعم الإجراءات الصوتية في الصين.