يحسّن Android 10 تجربة المستخدم التي تتطلّب أكثر من عنصر تسجيل صوت نشط في الوقت نفسه، على سبيل المثال، إذا أراد المستخدم التحكم في مكالمة VoIP أو مسجّل فيديو باستخدام الطلبات الصوتية التي توفّرها خدمة تسهيل الاستخدام
ينفِّذ إطار عمل الصوت السياسة، ما يسمح لتطبيقات معيّنة بأذونات مميّزة بالتزامن مع التطبيقات العادية.
يتم تنفيذ سياسة التزامن من خلال كتم صوت المقطع الصوتي الذي تم تسجيله بدلاً من منع تطبيق ما من بدء الالتقاط. يتيح ذلك للإطار التعامل بشكل ديناميكي مع التغييرات في عدد حالات استخدام ميزة "التسجيل النشط" وأنواعها، بدون منع أي تطبيق من بدء التسجيل في حال تمكّنه من استعادة إذن الوصول الكامل إلى الميكروفون بعد أن انتهى تطبيق آخر من التسجيل.
يترتب على استخدام بروتوكول HAL للصوت والنظام الفرعي للصوت توافقهما مع العديد من مدخلات الصوت النشطة. عمليات البث في الوقت نفسه، حتى ولو في بعض الحالات، يوفر بث واحد فقط صوتًا غير صامت وعميل نشط.
متطلبات CDD
راجِع CDD للاطّلاع على متطلبات دعم التسجيل المتزامن.
تسجيل المواقف من HAL الصوتي
يمكن أن يؤدي سيناريو الالتقاط المتزامن إلى مواقف مختلفة من حيث عدد الفيديوهات النشطة مصادر إدخال البيانات أو اختيار جهاز الإدخال أو إعدادات المعالجة المسبقة.
يمكن أن يحدث التزامن بين ما يلي:
- عدة مصادر إدخال من معالج التطبيقات (AP)
- مصادر الإدخال والمكالمات الصوتية
- عمليات بث للإدخال ومصدر بيانات صوتي (DSP) ينفِّذ ميزة رصد الكلمة المفتاح بقوة منخفضة
النشاط المتزامن لمصادر بيانات إدخال AP
يستخدم إطار عمل audio_policy_configuration.xml
ملف إعدادات سياسة الصوت لتحديد عدد مصادر الإدخال التي يمكن فتحها وتفعيلها في الوقت نفسه.
يجب أن يدعم HAL الصوت على الأقل مثيلاً واحدًا على الأقل من كل إدخال:
الملف الشخصي (mixPort
من الدور sink
) مُدرج في ملف المفتوح
وملف الإعداد النشط.
اختيار الجهاز
عند ربط عدة عملاء نشطين بتدفق إدخال HAL نفسه، لا تختار الجهاز المناسب لمصدر الإدخال هذا بناءً على أولوية حالة الاستخدام.
عندما تكون عدة مصادر إدخال نشطة، يمكن أن يكون لكل مصدر إدخال خيار مختلف لتحديد الجهاز.
إذا كانت التكنولوجيا متوافقة، يُنصح بأن يسمح واجهة HAL لمعالجة الصوت والنظام الفرعي بتسجيل مصادر مختلفة من أجهزة مختلفة، مثل سماعة رأس بلوتوث وميكروفون مدمج.
في حال حدوث تعارض (على سبيل المثال، يتشارك جهازان واجهة الصوت الرقمية أو الخلفية نفسها)، يجب أن يختار HAL للصوت البث الذي يتحكّم في اختيار الجهاز.
في هذه الحالة:
- يجب أن تكون الحالة الناتجة متسقة وأن تقدّم خيار الجهاز نفسه عند تكرار السيناريو نفسه.
- عند انتهاء حالة التزامن، يجب توجيه البث النشط المتبقي إلى البث الجهاز المطلوب في هذا البث.
إذا تم تحديد ترتيب الأولوية من خلال طبقة تجريد الأجهزة (HAL) الصوتية بين حالات الاستخدام النشطة، اتبع الترتيب نفسه كما
تم العثور على في source_priority()
في
frameworks/av/services/audiopolicy/common/include/policy.h
اختيار المعالجة المسبقة
يمكن أن يطلب إطار العمل الصوتي إجراء معالجة مسبقة لبثّ إدخال، وذلك باستخدام
لـ addEffect()
أو removeEffect()
طريقة HAL.
لإجراء المعالجة المُسبَقة على بثّ إدخال معيّن، لا يُفعِّل إطار العمل الصوتي سوى الإعدادات المقابلة لحالة الاستخدام النشطة ذات الأولوية الأعلى في بثّ الإدخال. ومع ذلك، قد يحدث بعض التداخل أثناء تفعيل حالة الاستخدام وإيقافها، يتسبب في تشغيل عمليتين نشطتين متزامنتين (على سبيل المثال، حالتان من إلغاء صدى الصوت) على نفس مصدر الإدخال في هذه الحالة، يختار تنفيذ HAL الطلب مقبولة؛ فهو يتتبع الطلبات النشطة ويعيد الحالة الصحيحة عندما تعطيل العملية.
عندما تكون عدّة مصادر تسجيل نشطة في الوقت نفسه، قد يتم تنفيذ طلبات معالجة مسبقة مختلفة على مصادر مختلفة.
يجب أن تسمح عمليات تنفيذ HAL والنظام الفرعي للصوت بتطبيق معالجة مسبقة مختلفة على مصادر بيانات مختلفة، حتى إذا كانت تشترك في جهاز الإدخال نفسه. وهذا يعني أنّه يجب تطبيق المعالجة المُسبَقة بعد إزالة ترميز أحداث البث من مصدر الالتقاط الأساسي.
إذا تعذّر ذلك لأسباب فنية في نظام فرعي معيّن للصوت، يجب تطبيق HAL للصوت. قواعد الأولوية المشابهة لتلك المدرجة في اختيار الأجهزة:
إجراء مكالمة صوتية وتسجيل فيديو في الوقت نفسه من نقطة الوصول
يمكن إجراء عملية الالتقاط من نقطة الوصول أثناء إجراء مكالمة صوتية. إنّ هذا الموقف ليس جديدًا في Android 10 وليس مرتبطًا مباشرةً بميزة التسجيل المتزامن، ولكن من المفيد الإشارة إلى إرشادات هذا السيناريو.
هناك نوعان مختلفان من الالتقاط من نقطة الوصول أثناء المكالمة.
تسجيل المكالمة RX وTX
يتم تسجيل الإرسال والاستقبال في المكالمة باستخدام مصدر الصوت
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
)، من المفترض أن يكون من الممكن
فتح مصادر الإدخال وتفعيلها من نقطة الوصول كما هو موضّح في القسم
النشاط المتزامن لمصادر إدخال نقطة الوصول.
ومع ذلك، يجب دائمًا أن تكون أولوية اختيار الأجهزة والمعالجة المسبقة لها تعتمد على الصوت في حال حدوث تعارض مع الطلبات من مصادر بيانات إدخال الوصول.
التقاط متزامن من DSP وAP
عندما يحتوي النظام الفرعي للصوت على وسيط وسيط عرض الطلب (DSP) يتيح رصد سياق صوتي منخفض الطاقة أو رصد الكلمة المفتاح.
يجب أن يتيح التنفيذ الالتقاط المتزامن من AP وDSP للصوت.
ويشمل ذلك كلّ من الالتقاط بواسطة وحدة معالجة الإشارات الرقمية (DSP) أثناء مرحلة الكشف الأولي والالتقاط بواسطة نقطة الوصول
مع AudioSource.HOTWORD
بعد بدء الكشف بواسطة وحدة معالجة الإشارات الرقمية (DSP).
من المفترض أن يظهر ذلك من خلال علامة الالتقاط المتزامن التي يُبلغ عنها HAL الخاص بعامل تشغيل الصوت من خلال
وصف التنفيذ: ISoundTriggerHw.Properties.concurrentCapture = true
.
يجب أن يعرض HAL للصوت أيضًا ملفًا شخصيًا خاصًا بتسجيل الكلمات الرئيسية التي يتم تحديدها باستخدام
العلامة AudioInputFlag.HW_HOTWORD
. يجب أن يتيح التنفيذ فتح و activation عدد من مصادر الصوت في هذا الملف الشخصي يساوي على الأقل عدد نماذج الصوت التي يمكن تحميلها بشكل متزامن من خلال HAL الخاص بتشغيل الصوت.
من المفترض أن يكون من الممكن الالتقاط من ملف الإدخال هذا عندما تكون ملفات الإدخال الأخرى نشطة.
الآثار المترتبة على عمليات تنفيذ "مساعد Google"
متطلبات استخدام البيانات وإشعار المستخدمين
بما أنّ الاستخدام المتزامن للميكروفون، في حال إساءة استخدامه، قد يؤدي إلى تسريب بيانات المستخدم الخاصة، نحتاج إلى ما يلي: الشروط والضمانات التي سيتم تطبيقها على التطبيقات المتميزة التي تم تحميلها مسبقًا والتي تطلب تجميد البيانات دور المساعد.
- يجب ألا تغادر البيانات التي يتم جمعها من خلال الميكروفون الجهاز ما لم يكن المستخدم يتفاعل مع "مساعد Google". على سبيل المثال، بعد تشغيل الكلمة المفتاح.
- يجب أن توفر التطبيقات التي تستمع بالتزامن إشارات مرئية للمستخدم بعد الكلمة المفتاح . يساعد ذلك المستخدمين في فهم أنّه سيتم نقل المزيد من المحادثات إلى تطبيق مختلف، مثل "مساعد Google".
- يجب أن يتمكّن المستخدمون من إيقاف الميكروفون أو عوامل تشغيل "مساعد Google".
- عند تخزين التسجيلات الصوتية، يجب أن يتمكّن المستخدمون من الوصول إلى التسجيلات ومراجعتها و حذفها في أي وقت.
التحسينات الوظيفية على نظام Android 10
عدم حظر المساعدين لبعضهم
في الإصدار 9 من نظام التشغيل Android أو الإصدارات الأقدم، عندما يكون هناك مساعدان يعملان دائمًا على الجهاز، يمكن أن يستمع أحدهما فقط إلى عبارة التفعيل. وبالتالي، كانت هناك حاجة للتبديل بين لكل من المساعدين. في نظام التشغيل Android 10، يمكن أن يستمع "مساعد Google" التلقائي بشكل متزامن مع "مساعد Google" الآخر. ويؤدي ذلك إلى توفير تجربة أكثر سلاسة للمستخدمين باستخدام خدمتَي "مساعد Google".
التطبيقات التي تبقي الميكروفون مفتوحًا
عندما يكون الميكروفون مفتوحًا، مثل Shazam أو Waze، سيظل "مساعد Google" التلقائي يستمع إليها. عن الكلمة المفتاح.
بالنسبة إلى التطبيقات غير التلقائية في "مساعد Google"، لن يحدث أي تغيير في السلوك على نظام التشغيل Android 10.
تنفيذ نموذج HAL صوتي
يمكن العثور على مثال لتنفيذ HAL للصوت متوافق مع الإرشادات الواردة في هذا المستند في AOSP.