النماذج العصبية للصوت
طوال المسار كان "النموذج" يدوياً (تنبّؤ خطّي، نماذج نفسية). ماذا لو تعلّمت آلةٌ نموذج الصوت من ملايين الأمثلة؟ هنا يعود انقسام نموذج/مرمّز بقوّة: الشبكة العصبية = نموذجٌ احتماليّ مُتعلَّم، أدقّ من أي يدويّ.
تذكّر من نظرية المعلومات (مسار الصور، العقدة ٠١): الضغط = نموذج يتنبّأ + مرمّز يحصد المفاجأة. والتنبّؤ الأفضل = إنتروبي أقلّ. حتى الآن نماذجنا بسيطة (تركيبة خطّية من عيّنات قليلة سابقة).
لكن الكلام البشري فيه بنية هائلة (حروف، كلمات، نبرة) لا يلتقطها تنبّؤ خطّي. كيف تبني نموذجاً يتنبّأ بالعيّنة التالية من آلاف العيّنات السابقة، ويتعلّم بنية اللغة نفسها؟ وإن نجح في التنبّؤ بدقّة — فما الذي يمكّنه فعله غير الضغط؟ (تلميح: نموذجٌ يتنبّأ بالتالي يستطيع أيضاً أن يُولّد.)
التوليد الانحداري الذاتي (Autoregressive) — WaveNet
الفكرة: درّب شبكة تتنبّأ بتوزيع العيّنة التالية p(x[n] | x[n-1], x[n-2],
...) من كل ما سبق. WaveNet (2016) استعمل التفافات سببية
متمدّدة (dilated causal convolutions): تكديس طبقات التفاف بفجوات متزايدة
(1,2,4,8,...) ليرى آلاف العيّنات السابقة بكلفة لوغاريتمية.
p(x[n] | الماضي) غنيّ يلتقط بنية الكلام.نموذجٌ جيّد لـp(x[n]|الماضي) يخدم ثلاثاً: (١) التوليد:
اعتِم من التوزيع عيّنةً عيّنة فتنشئ كلاماً. (٢) الضغط: سلّم
التنبّؤ لمرمّز حسابي (مسار الصور، العقدة ٠٢) — تنبّؤ أدقّ = إنتروبي أقلّ = ضغط
أعلى. (٣) التمييز: الميزات المتعلَّمة تصنّف. جواب اللغز: النموذج
الذي يتنبّأ يولّد ويضغط ويفهم — كلّها من احتمالٍ مُتعلَّم.
عائلات النماذج
| العائلة | الفكرة | الاستعمال |
|---|---|---|
| انحداري ذاتي (WaveNet) | تنبّأ بالعيّنة/الإطار التالي | توليد كلام (TTS)، ضغط |
| على الـspectrogram (CNN/Transformer) | الصوت كصورة (العقدة ٠٨) | تصنيف، تعرّف كلام (ASR) |
| Encoder-Decoder / Transformer | تسلسل→تسلسل بالانتباه | Whisper (ASR)، الترجمة الصوتية |
| Diffusion / Flow | إزالة ضوضاء تدريجية | توليد موسيقى/كلام عالي الجودة |
التوليد عيّنةً عيّنة (16000/ثانية) بطيء جداً. لهذا تعمل أغلب النماذج على mel-spectrogram (العقدة ٠٨) ثم "vocoder" عصبيّ يحوّله لموجة، أو على رموز مضغوطة من ترميز عصبيّ (العقدة التالية). تمثيلٌ أصغر = تدريب وتوليد أسرع. اختيار التمثيل قرارٌ معماريّ بحجم اختيار الشبكة.
- درّب نموذجاً صغيراً (حتى انحدار خطّي/MLP صغير بإطار PyTorch) يتنبّأ بالعيّنة التالية من آخر
kعيّنات على ملف صوت قصير. قِس خطأ التنبّؤ. - اربطه بالضغط: احسب إنتروبي الـresidual من نموذجك العصبي مقابل التنبّؤ الخطّي (العقدة ٠٧). هل النموذج المتعلَّم خفض الإنتروبي أكثر؟ هذا هو "لماذا" الضغط العصبي.
- اربطه بالتوليد: ابدأ ببذرة وولّد عيّنات متتالية بإطعام تنبّؤ النموذج كدخلٍ تالٍ. اسمع الناتج (سيكون بدائياً — هذا متوقّع، الفكرة أن تفهم الحلقة).
- على spectrogram: درّب CNN صغيراً يصنّف نوعين من الأصوات من mel-spectrograms (العقدة ٠٨). أنت الآن تستعمل رؤية الحاسوب على الصوت.
الشبكة العصبية = نموذجٌ احتماليّ مُتعلَّم، يخدم التوليد والضغط والتمييز معاً
لأنها كلّها وجوهٌ لـp(صوت). تعمل على الموجة (WaveNet) أو الطيف (CNN/
Transformer). بقيت القطعة الأخيرة: إذا كان النموذج العصبي يتنبّأ أفضل من كل
نماذجنا اليدوية، فهل يضغط أفضل من MP3 و FLAC معاً؟ نعم — عبر الترميز العصبي.