قياس زمن انتقال الصوت

تصف هذه الصفحة الطرق الشائعة لقياس زمن انتقال الإدخال والإخراج.

قياس الكمون الناتج

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

اختبار LED وراسم الذبذبات

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

إذا لم تتمكن من تثبيت مؤشر LED على جهاز الإنتاج أو النموذج الأولي ، فجرّب الحلول البديلة التالية:

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

لإجراء هذا الاختبار:

  1. قم بتشغيل تطبيق ينبض بشكل دوري بمؤشر LED في نفس الوقت الذي يخرج فيه الصوت.

    ملاحظة: للحصول على نتائج مفيدة ، من الضروري استخدام واجهات برمجة التطبيقات الصحيحة في تطبيق الاختبار حتى تتمكن من ممارسة مسار إخراج الصوت السريع. راجع التصميم لتقليل زمن الانتقال للخلفية.

  2. ضع مستشعر الضوء بجانب LED.
  3. قم بتوصيل مجسات راسم الذبذبات ثنائي القناة بكل من مقبس سماعة الرأس السلكية (خرج الخط) ومستشعر الضوء.
  4. استخدم راسم الذبذبات لقياس فرق الوقت بين مراقبة إشارة خرج الخط مقابل إشارة مستشعر الضوء.

الفرق في الوقت هو زمن انتقال خرج الصوت التقريبي ، بافتراض أن زمن انتقال LED وزمن وصول مستشعر الضوء كلاهما صفر. عادةً ما يكون لكل من مستشعر LED والضوء زمن انتقال منخفض نسبيًا في حدود ميلي ثانية واحدة أو أقل ، وهو زمن منخفض بما يكفي للتجاهل.

قياس الكمون ذهابا وإيابا

الكمون ذهابًا وإيابًا هو مجموع زمن انتقال الإخراج وزمن انتقال الإدخال.

اختبار لارسن

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

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

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

لإجراء هذا الاختبار:

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

فيما يلي بعض الموارد للحصول على تطبيق لاختبار Larsen:

  • تطبيق Dr.Rick O'Rang loopback هو تطبيق Android لاختبار الملاحظات الصوتية. يمكنك تنزيل التطبيق من Google Play أو الحصول على الكود المصدري من GitHub .
  • نشرنا أيضًا مثالاً للتنفيذ في slesTestFeedback.cpp . هذا هو تطبيق سطر أوامر وقد تم إنشاؤه باستخدام بيئة بناء النظام الأساسي ؛ ومع ذلك ، يجب أن يكون من السهل اعتماد رمز للبيئات الأخرى. ستحتاج أيضًا إلى رمز FIFO غير audio_utils الموجود في مكتبة audio_utils .

دونجل استرجاع الصوت

يعد دونجل استرجاع الصوت من Dr.Rick O'Rang مفيدًا لقياس زمن الانتقال ذهابًا وإيابًا فوق موصل سماعة الرأس. توضح الصورة أدناه نتيجة حقن نبضة في الحلقة مرة واحدة ، ثم السماح لحلقة التغذية المرتدة بالتذبذب. فترة التذبذبات هي زمن انتقال ذهابًا وإيابًا. الجهاز المحدد وإصدار البرنامج وشروط الاختبار غير محددة هنا. النتائج المعروضة لا ينبغي استقراءها.

قياس الرحلة ذهابًا وإيابًا

الشكل 1. قياس رحلة الذهاب والإياب

قد تحتاج إلى إزالة كبل USB لتقليل الضوضاء ، وضبط مستوى الصوت للحصول على تذبذب ثابت.

قياس الكمون المدخلات

يعد قياس زمن انتقال الإدخال أكثر صعوبة من قياس زمن انتقال الإخراج. قد تساعد الاختبارات التالية.

تتمثل إحدى الطرق أولاً في تحديد زمن انتقال الإخراج باستخدام طريقة LED وراسم الذبذبات ثم استخدام اختبار التغذية الراجعة الصوتية (Larsen) لتحديد مجموع زمن انتقال الإخراج وزمن انتقال الإدخال. الفرق بين هذين القياسين هو زمن انتقال الإدخال.

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

تقليل الكمون

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

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

عند اختبار Underruns:

  • قم بتكوين أي DSP بعد معالج التطبيق بحيث يضيف أقل زمن انتقال.
  • قم بتشغيل الاختبارات في ظل ظروف مختلفة مثل تشغيل الشاشة أو إيقاف تشغيلها ، أو توصيل USB أو فصله ، أو تشغيل WiFi أو إيقاف تشغيله ، أو تشغيل Bluetooth أو إيقاف تشغيله ، أو تشغيل أجهزة الراديو الهاتفية والبيانات أو إيقاف تشغيلها.
  • اختر موسيقى هادئة نسبيًا مألوفة لديك ، ويسهل سماعها.
  • استخدم سماعات رأس سلكية لحساسية إضافية.
  • امنح نفسك فترات راحة حتى لا تعاني من "إجهاد الأذن".

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

أدوات

systrace هي أداة ممتازة للأغراض العامة لتشخيص مواطن الخلل في الأداء على مستوى النظام.

يحتوي إخراج dumpsys media.audio_flinger أيضًا على قسم مفيد يسمى "إحصائيات متحركة بسيطة". يحتوي هذا على ملخص لتغير الأوقات المنقضية لكل مزيج صوتي ودورة I / O. من الناحية المثالية ، يجب أن تكون جميع القياسات الزمنية مساوية لمتوسط ​​أو وقت الدورة الاسمي. إذا رأيت حدًا أدنى أو حدًا أقصى مرتفعًا جدًا ، فهذا مؤشر على وجود مشكلة ، من المحتمل أن يكون وقت استجابة جدولة مرتفعًا أو وقت تعطيل للمقاطعة. يعتبر الجزء الخلفي من الإخراج مفيدًا بشكل خاص ، حيث يسلط الضوء على التباين الذي يتجاوز +/- 3 انحرافات معيارية.