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

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

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

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

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

متطلبات العناية الواجبة بالعملاء

يُرجى الاطّلاع على مستند تعريف الجهاز المتزامن (CDD) لمعرفة متطلبات إتاحة ميزة الالتقاط المتزامن.

التقاط المواقف من طبقة تجريد الأجهزة الصوتية

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

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

  • عدة مصادر لبيانات الإدخال من معالج التطبيقات (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، ولا ترتبط مباشرةً بميزة التسجيل المتزامن، ولكن من المفيد ذكر الإرشادات الخاصة بهذا السيناريو.

يجب إجراء نوعَين مختلفَين من عمليات الالتقاط من نقطة الوصول أثناء المكالمة.

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

يتم تسجيل بيانات الاستقبال والإرسال للمكالمات عند استخدام مصدر الصوت 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)، يجب أن يكون من الممكن فتح وتفعيل مصادر إدخال البيانات من نقطة الوصول كما هو محدّد في القسم النشاط المتزامن لمصادر إدخال البيانات في نقطة الوصول.

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

التقاط البيانات بشكل متزامن من "منصّة عرض الطلب" و"شريك الإعلان"

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

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

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

يجب أن يكون من الممكن التسجيل من ملف الإدخال هذا أثناء تفعيل ملفات إدخال أخرى.

تأثير ذلك في عمليات تنفيذ "مساعد Google"

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

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

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

تحسينات وظيفية لنظام التشغيل Android 10

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

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

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

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

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

مثال على تنفيذ طبقة تجريد الأجهزة (HAL) الخاصة بالصوت

يمكن العثور على مثال على تنفيذ طبقة تجريد الأجهزة الصوتية (HAL) المتوافقة مع الإرشادات الواردة في هذا المستند في نظام التشغيل Android.