التسجيل المتزامن

يُحسِّن نظام التشغيل Android 10 تجربة المستخدم التي تتطلّب إجراء أكثر من عملية تسجيل فعالة للصوت في الوقت نفسه، على سبيل المثال، إذا أراد المستخدم التحكّم في مكالمة Voice over IP أو مسجل فيديو باستخدام طلبات صوتية تقدّمها خدمة تسهيل الاستخدام.

ينفِّذ إطار العمل الصوتي السياسة التي تسمح فقط لبعض التطبيقات المميّزة بتسجيل الصوت في الوقت نفسه مع التطبيقات العادية.

يتم تنفيذ سياسة التوافق من خلال كتم الصوت المسجَّل بدلاً من منع التطبيق من بدء التسجيل. يتيح ذلك للإطار العملي معالجة التغيُّرات في عدد وأنواع حالات استخدام ميزة "التسجيل النشط" بشكل ديناميكي، بدون منع أي تطبيق من بدء التسجيل في حال تمكّنه من استعادة إذن الوصول الكامل إلى الميكروفون بعد أن ينهي تطبيق آخر التسجيل.

نتيجةً لذلك، يجب أن يتوافق كلّ من HAL للصوت والنظام الفرعي للصوت مع العديد من بثّات الإدخال النشط في الوقت نفسه، حتى إذا كان في بعض الحالات بثّ واحد فقط يقدّم صوتًا غير صامت إلى العميل النشط.

متطلبات CDD

يُرجى الاطّلاع على CDD للاطّلاع على متطلبات إتاحة الالتقاط المتزامن.

تسجيل المواقف من HAL الصوتي

يمكن أن يؤدي سيناريو الالتقاط المتزامن إلى حالات مختلفة من حيث عدد مجريات البث النشط للإدخال أو اختيار جهاز الإدخال أو إعدادات المعالجة المسبقة.

يمكن أن تحدث المهام المتزامنة بين ما يلي:

  • عدة مصادر إدخال من معالج التطبيقات (AP)
  • مصادر الإدخال والمكالمات الصوتية
  • مصادر الإدخال ووحدة معالجة إشارات رقمية للصوت التي تُنفِّذ ميزة رصد الكلمات الرئيسية المفتاحية ذات الطاقة المنخفضة

النشاط المتزامن لمصادر إدخال AP

يستخدم إطار عمل audio_policy_configuration.xmlملف ضبط سياسة الصوت لتحديد عدد مصادر الإدخال التي يمكن فتحها وتفعيلها في الوقت نفسه.

يجب أن يتيح فلتر HAL الصوتي على الأقل مثيلاً واحدًا على الأقل لكل ملف شخصي للإدخال (mixPort من الدور sink) مدرَج في ملف الإعداد المفتوح والنشط.

اختيار الجهاز

عندما يتم ربط عدة عملاء نشطين ببث إدخال HAL نفسه، يختار الإطار العمل الجهاز المناسب لبث الإدخال هذا استنادًا إلى أولوية حالة الاستخدام.

عندما تكون عدة مصادر إدخال نشطة، يمكن أن يتضمّن كل مصدر إدخال خيارات مختلفة لتحديد الجهاز.

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

في حال حدوث تعارض (على سبيل المثال، يتشارك جهازان واجهة الصوت الرقمية أو الخلفية نفسها)، يجب أن يختار HAL للصوت البث الذي يتحكّم في اختيار الجهاز.

في هذه الحالة:

  • يجب أن تكون الحالة الناتجة متسقة وأن تقدّم خيار الجهاز نفسه عند تكرار السيناريو نفسه.
  • عند انتهاء حالة التوافق، يجب توجيه البث النشط المتبقّي إلى الجهاز الذي تم طلبه في البداية في هذا البث.

إذا حدّد HAL للصوت ترتيب الأولوية بين حالات الاستخدام النشطة، اتّبِع الترتيب نفسه المُدرَج في source_priority() في frameworks/av/services/audiopolicy/common/include/policy.h.

اختيار المعالجة المُسبَقة

يمكن أن يطلب إطار العمل الصوتي إجراء معالجة مسبقة على بث الإدخال باستخدام methodsaddEffect() أو removeEffect() HAL.

لإجراء المعالجة المُسبَقة على بثّ إدخال معيّن، لا يُفعِّل إطار العمل الصوتي سوى الإعدادات المقابلة لحالة الاستخدام النشطة ذات الأولوية الأعلى في بثّ الإدخال. ومع ذلك، قد يكون هناك بعض التداخل أثناء تفعيل حالة الاستخدام وإيقافها، مما يؤدي إلى تنفيذ عمليتين نشِطتَين متزامنتَين (مثل مثيلَين من أداة إلغاء الصدى) على بث الإدخال نفسه. في هذه الحالة، يختار تنفيذ HAL الطلب الذي يتم قبوله، ويتتبّع الطلبات النشطة ويعيد الحالة الصحيحة عند إيقاف أي من المعالجتَين.

عندما تكون عدّة مصادر تسجيل نشطة في الوقت نفسه، قد يتم تنفيذ طلبات معالجة مسبقة مختلفة على مصادر مختلفة.

يجب أن تسمح عمليات تنفيذ HAL والنظام الفرعي للصوت بتطبيق معالجة مسبقة مختلفة على مصادر بيانات مختلفة، حتى إذا كانت تشترك في جهاز الإدخال نفسه. وهذا يعني أنّه يجب تطبيق المعالجة المُسبَقة بعد إزالة ترميز أحداث البث من مصدر الالتقاط الأساسي.

إذا لم يكن ذلك ممكنًا لأسباب فنية في نظام فرعي معيّن للصوت، يجب أن يطبّق HAL للصوت قواعد الأولوية المشابهة لتلك المدرَجة في اختيار الجهاز.

إجراء مكالمة صوتية وتسجيل فيديو في الوقت نفسه من نقطة الوصول

يمكن التقاط الصور من نقطة الوصول أثناء إجراء مكالمة صوتية. إنّ هذا الموقف ليس جديدًا في Android 10 ولا يرتبط مباشرةً بميزة التقاط الصور المتزامنة، ولكن من المفيد ذكر الإرشادات لهذا السيناريو.

هناك نوعان مختلفان من عمليات الالتقاط من نقطة الوصول أثناء المكالمة.

تسجيل الإرسال والاستقبال في المكالمات

يتم تسجيل الإرسال والاستقبال في المكالمة باستخدام مصدر الصوت AudioSource.VOICE_UPLINK أو AudioSource.VOICE_DOWNLINK و/أو الجهاز AudioDevice.IN_TELEPHONY_RX.

يجب أن تعرض واجهات برمجة التطبيقات لأجهزة الصوت (HAL) ملف التعريف الخاص بالإدخال (mixPort للدور sink) مع مسار متاح من الجهاز AudioDevice.IN_TELEPHONY_RX.

عند ربط مكالمة (يكون وضع الصوت AudioMode.IN_CALL)، من المفترض أن يكون من الممكن الحصول على مصدر تسجيل نشط واحد على الأقل من الجهاز AudioDevice.IN_TELEPHONY_RX.

تسجيل المحتوى من أجهزة الإدخال عندما يكون هناك مكالمة نشطة

عندما تكون المكالمة نشطة (يكون وضع الصوت AudioMode.IN_CALL)، من المفترض أن يكون من الممكن فتح مصادر الإدخال وتفعيلها من نقطة الوصول كما هو موضّح في القسم النشاط المتزامن لمصادر إدخال نقطة الوصول.

ومع ذلك، يجب أن تكون الأولوية لاختيار الجهاز والمعالجة المسبقة مستندة دائمًا إلى طلب voice call في حال حدوث تعارض مع الطلبات الواردة من مصادر إدخال AP.

التسجيل المتزامن من وحدة التحكّم في الصوت ووحدة التحكّم في الطاقة

عندما يحتوي النظام الفرعي للصوت على وحدة معالجة إشارة رقمية (DSP) تتوافق مع وظائف رصد الكلمات الرئيسية أو سياق الصوت المنخفض الطاقة، يجب أن يتيح التنفيذ التسجيل المتزامن من نقطة الوصول ووحدة معالجة إشارة الصوت الرقمية. ويشمل ذلك كلّ من الالتقاط بواسطة وحدة معالجة الإشارات الرقمية (DSP) أثناء مرحلة الكشف الأولي والالتقاط بواسطة نقطة الوصول مع AudioSource.HOTWORD بعد بدء الكشف بواسطة وحدة معالجة الإشارات الرقمية (DSP).

من المفترض أن يظهر ذلك من خلال علامة الالتقاط المتزامن التي يُبلغ عنها HAL الخاص بعامل تشغيل الصوت من خلال وصف التنفيذ: ISoundTriggerHw.Properties.concurrentCapture = true.

يجب أن يعرض HAL للصوت أيضًا ملفًا شخصيًا خاصًا بتسجيل الكلمات الرئيسية التي يتم تحديدها باستخدام العلامة AudioInputFlag.HW_HOTWORD. يجب أن يتيح التنفيذ فتح و تفعيل عدد من مصادر الصوت في هذا الملف الشخصي يساوي على الأقل عدد نماذج الصوت التي يمكن تحميلها بشكل متزامن من خلال HAL الخاص بتشغيل الصوت.

من المفترض أن يكون من الممكن الالتقاط من ملف الإدخال هذا عندما تكون ملفات الإدخال الأخرى نشطة.

الآثار المترتبة على عمليات تنفيذ "مساعد Google"

متطلبات استخدام البيانات وإشعار المستخدم

بما أنّ استخدام الميكروفون بشكل متزامن يمكن أن يؤدي إلى تسرُّب بيانات المستخدم الخاصة في حال إساءة استخدامه، نحتاج إلى تطبيق الشروط والضمانات التالية على التطبيقات المُحمَّلة مسبقًا والممنوحة امتيازات والتي تطلب الحصول على دور "مساعد Google".

  • يجب ألا تغادر البيانات التي يتم جمعها من خلال الميكروفون الجهاز ما لم يكن المستخدم يتفاعل مع "مساعد Google". على سبيل المثال، بعد تنشيط الكلمة الرئيسية.
  • يجب أن تقدّم التطبيقات التي تستمع إلى الطلبات في الوقت نفسه إشارات مرئية للمستخدم بعد رصد الكلمة المفتاح. يساعد ذلك المستخدمين في فهم أنّه سيتم نقل المزيد من المحادثات إلى تطبيق مختلف، مثل "مساعد Google".
  • يجب أن يتمكّن المستخدمون من إيقاف الميكروفون أو عوامل تشغيل "مساعد Google".
  • عند تخزين التسجيلات الصوتية، يجب أن يتمكّن المستخدمون من الوصول إلى التسجيلات ومراجعتها و حذفها في أي وقت.

تحسينات على الوظائف في Android 10

عدم حظر المساعدين لبعضهم

في حال توفُّر خدمتَي "مساعد Google" في وضع "الاستماع الدائم" على جهاز يعمل بنظام التشغيل Android 9 أو إصدار أقدم، يمكن أن يستمع أحدهما فقط إلى عبارة التفعيل. لذلك، كان من الضروري التبديل بين "مساعد Google" و"مساعد Google للأعمال". في نظام التشغيل Android 10، يمكن أن يستمع "مساعد Google" التلقائي بشكل متزامن مع "مساعد Google" الآخر. ويؤدي ذلك إلى تقديم تجربة أكثر سلاسة للمستخدمين الذين يستخدمون كلا المساعدَين.

التطبيقات التي تبقي الميكروفون مفتوحًا

عندما تفتح تطبيقات مثل Shazam أو Waze الميكروفون، سيظلّ بإمكان "مساعد Google" التلقائي الاستماع للكلمة الرئيسية.

بالنسبة إلى تطبيقات "مساعد Google" غير التلقائية، لن يطرأ أي تغيير على السلوك في Android 10.

مثال على تنفيذ HAL للصوت

يمكن العثور على مثال لتنفيذ HAL للصوت متوافق مع الإرشادات الواردة في هذا المستند في AOSP.