أخذ عيّنة من المحتوى الصوتي

بدءًا من نظام التشغيل Android 5.0 (Lollipop)، أصبحت أدوات إعادة تشكيل الصوت الآن قائمة على عوامل تصفية FIR المستمدة من دالة Kaiser ذات نافذة سينك. فيلم The Kaiser بنافذة في النافذة الميزات التالية:

  • من السهل حساب معاملات التصميم الخاصة بها (نطاق الإيقاف) تمويج، معدل نقل بيانات الانتقال، تردد الانقطاع وطول الفلتر).
  • وهو مثالي تقريبًا لخفض طاقة نطاق الإيقاف مقارنةً بالإجمالي الطاقة.

الاطّلاع على P.P. فايدياناثان، الأنظمة المتعددة والمصارف المفلترة، p. 50 لمناقشة نافذة قيصر ومثاليتها وعلاقتها بالبروليت الأسطواني نظام التشغيل Windows:

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

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

أفضل الممارسات لأخذ العينات وإعادة العينات

يصف هذا القسم بعض أفضل الممارسات لمساعدتك في تجنب المشكلات المتعلقة بمعدلات العينات.

اختيار معدل أخذ العينات المناسب للجهاز

بوجه عام، من الأفضل اختيار معدل أخذ العينات المناسب للجهاز، عادةً ما يكون 44.1 كيلو هرتز أو 48 كيلو هرتز. استخدام معدل عينة أكبر من عادةً ما يؤدي التردد 48 كيلوهرتز إلى انخفاض الجودة لأن جهاز إعادة التشكيل المستخدم لتشغيل الملف.

استخدام إعادة التشكيل البسيطة النِسب (الثابتة مقابل الأطوار المتعدّدة)

تعمل أداة إعادة التشكيل في أحد الأوضاع التالية:

  • تم إصلاح وضع متعدد الأطوار. يتم حساب معاملات الفلتر لكل متعدد الأطوار مسبقًا.
  • وضع متعدد الأطوار مدمج. يجب أن تكون معاملات الفلتر لكل متعدد الأطوار من أقرب صفيفتين عديدتين محسوبتين مسبقًا.

تكون أداة إعادة التشكيل هي الأسرع في الوضع متعدد المراحل الثابت، عندما تكون نسبة الإدخال معدل الناتج عن L/M (إخراج أكبر قاسم مشترك) تحتوي على M أقل من 256. على سبيل المثال، بالنسبة إلى 44,100 إلى 48,000 إحالة ناجحة، L = 147، م = 160.

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

يمكنك اختيار معدلات أخذ العينات ذات النسبة البسيطة مثل 24 كيلوهرتز (1:2) و32 كيلوهرتز (2:3) عند التشغيل مرة أخرى. على جهاز بتردد 48 كيلوهرتز، على الرغم من عيّنات بيانات أخرى قد يُسمح باستخدام المعدّلات والنسب من خلال المقطع الصوتي.

استخدام عيّنات النتائج بدلاً من ذلك من تقليل العينات لتغيير معدلات العينة

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

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

الحدّ من تقليل العيّنات إلى 6:1 كحد أقصى

يحدث تقليل حجم العيّنات عادةً وفقًا لمتطلبات الأجهزة. عندما يُستخدم محول معدل العينة في تضييق نطاق العيّنات، حاول الحد من نسبة اختزال العينة إلى أكثر من 6:1 للحصول على اسم مستعار جيد الإيقاف (على سبيل المثال، يجب ألا تزيد العينة عن 48000 إلى 8000). الفلتر ضبط طول الأطوال لتلائم نسبة تناقص العيّنات، ولكنّك تضيمن بنسبة أكبر نقل البيانات بنسب اختزال أعلى، وذلك لتجنب الإفراط في نقل البيانات زيادة طول عامل التصفية. لا توجد مخاوف مشابهة في التسمية المستعارة توسيع نطاق العينات. وتجدر الإشارة إلى أنّ بعض أجزاء مسار الصوت قد تمنع تقليل نسبة العيّنات أكبر من 2:1.

إذا كنت تشعر بالقلق بشأن وقت الاستجابة، فلا تستخدم

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

استخدام صوت النقطة العائمة

يمكن تحسين الصوت بشكل كبير عند استخدام أرقام النقاط العائمة لتمثيل البيانات الصوتية. الجودة في تطبيقات الصوت عالية الأداء. تقدّم النقطة العائمة ما يلي الإيجابيات:

  • نطاق ديناميكي أوسع:
  • دقة متسقة عبر النطاق الديناميكي.
  • هامش أكبر لتجنُّب اقتصاص مقاطع الفيديو أثناء العمليات الحسابية المتوسطة والعابرة.

بإمكان النقطة العائمة تحسين جودة الصوت، ولكنها لها بعض العيوب:

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

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

أفضل الممارسات المتعلّقة بالصوت العائم

تساعدك أفضل الممارسات التالية على تجنُّب المشاكل المتعلّقة بعمليات حساب النقاط العائمة:

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

بالنسبة إلى صوت النقطة العائمة، فإن ترميز تنسيق الصوت يتم استخدام AudioFormat.ENCODING_PCM_FLOAT بشكل مشابه ENCODING_PCM_16_BIT أو ENCODING_PCM_8_BIT لتحديد بيانات المقطع الصوتي والتنسيقات. الطريقة المقابلة عند التحميل الزائد AudioTrack.write() في صفيف عائم لتسليم البيانات.

Kotlin

fun write(
        audioData: FloatArray,
        offsetInFloats: Int,
        sizeInFloats: Int,
        writeMode: Int
): Int

Java

public int write(float[] audioData,
        int offsetInFloats,
        int sizeInFloats,
        int writeMode)

للحصول على معلومات إضافية

يسرد هذا القسم بعض الموارد الإضافية حول أخذ العينات والنقطة العائمة.

توزيع عينات من الشيكولاتة

معدّلات العيّنة

إعادة التشكيل

المحتوى الذي يثير الجدل بعمق البت والكيلوهرتز العالي

عائمة

صفحات ويكيبيديا التالية مفيدة في فهم الأصوات العائمة:

تقدم المقالة التالية معلومات عن تلك الجوانب للنقطة العائمة التي تحتوي على أثر مباشر على مصممي أنظمة الكمبيوتر: