Speech2015متوسط15 دقيقة قراءة
Deep Speech 2: التعرّف الشامل على الكلام في الإنجليزية والصينية
Deep Speech 2: End-to-End Speech Recognition in English and Mandarin
Amodei, D. · Anubhai, R. · Battenberg, E. · Case, C. · Casper, J. · Catanzaro, B. · Chen, J. · Coates, A. · Diamos, G. · Hannun, A. · Ng, A. — ICML
المشكلة
قبل هذا العمل، كان بناء نظام أشبه بتجميع آلة من عشرات القطع المنفصلة: صوتي، وقاموس نطق، ونموذج لغوي، ووحدة تكيّف مع المتحدث، وغيرها الكثير. كل قطعة تحتاج فريق خبراء مستقلاً لتصميمها. وإذا أردت نقل النظام إلى لغة جديدة أو بيئة مليئة بالضوضاء، فعليك إعادة بناء أغلب هذه المكونات من الصفر. بطيء، والنظام ككل هشّ وصعب الصيانة.
الإسهام
يستبدل Deep Speech 2 سلسلة المعالجة التقليدية بالكامل بشبكة عصبية عميقة واحدة تُدرَّب . تجمع هذه الشبكة بين طبقات التفافية لاستخلاص سمات ثابتة عبر الترددات، وحتى 7 طبقات تكرارية ثنائية الاتجاه للنمذجة الزمنية، ودالة خسارة CTC لمحاذاة الصوت مع النص تلقائياً دون محاذاة يدوية. ثلاث تقنيات مكّنت تدريب هذه البنية العميقة: تسوية الدُّفعات للشبكات التكرارية، ومنهج تدريبي تصاعدي اسمه SortaGrad، وتدريب مُسرَّع على عدة معالجات رسومية حقّق تسريعاً بمقدار 7 أضعاف. هذا أتاح تجارب بحجم غير مسبوق — 11,940 ساعة إنجليزية و9,400 ساعة صينية — وحقّق النظام دقة تُضاهي أو تتفوق على النسخ البشري في عدة اختبارات.
الأثر
أثبت Deep Speech 2 أن بنية واحدة شاملة تستطيع التعامل مع لغات مختلفة جذرياً دون هندسة خاصة بكل لغة. كما أرسى مبدأ التوسّع: بيانات أكثر، ونماذج أكبر، وعتاد أسرع — وهو المبدأ نفسه الذي قاد لاحقاً تطوير wav2vec 2.0 وWhisper. أصبحت منظومة CTC وتقنيات التدريب عالي الأداء التي قدّمها هذا العمل الأساس الذي بُنيت عليه أنظمة الكلام الإنتاجية الحديثة.
التعرّف التقليدي على الكلام يشبه خط تجميع في مصنع: محطة تحوّل الموجات الصوتية إلى وحدات صوتية، ومحطة ثانية تطابق هذه الوحدات بكلمات، وثالثة تطبّق قواعد اللغة، ورابعة تتكيّف مع لهجة المتحدث. إذا أخطأت أي محطة، ينتقل الخطأ إلى كل ما بعدها ويفسد المنتج النهائي.
Deep Speech 2 يستبدل خط التجميع بالكامل بـ واحدة تعمل كـحِرفيّ ماهر وحده: تستقبل الصوت الخام من جهة وتُخرج النص النهائي من الجهة الأخرى — لا محطات وسيطة ولا أخطاء تتراكم. والأكثر إثارة أن الحرفيّ نفسه ينتقل بين الإنجليزية والصينية بتعديلات طفيفة فقط.
المشكلة: أنابيب الكلام آلات هشّة ومعقّدة
قبل Deep Speech 2، كان بناء نظام للتعرّف على الكلام يشبه تجميع آلة معقدة من وحدات متخصصة، كل واحدة تحتاج فريقاً من الخبراء لتصميمها:
- نموذج صوتي يحوّل إطارات الصوت إلى وحدات صوتية (عادةً مزيج من نماذج غاوسية و المخفية)
- قاموس نُطق يربط الوحدات الصوتية بالكلمات (يُصنَع يدوياً لكل لغة على حدة)
- يختار تسلسل الكلمات الأكثر احتمالاً
- وحدات تكيّف مع المتحدث للتعامل مع اختلافات اللهجة والصوت
- تقنيات مقاومة الضوضاء تُضبَط يدوياً لكل بيئة
المشكلة الجوهرية أن كل مكوّن يُصمَّم باستقلال، والأخطاء تتسلسل: خطأ في كشف الوحدة الصوتية يُفسد كل ما بعده. والأسوأ أن نقل النظام إلى لغة جديدة — كالانتقال من الإنجليزية إلى الصينية — يعني إعادة بناء أغلب المكونات من الصفر، لأن مجموعات الأصوات ونماذج النغمات وقواعد النطق تختلف اختلافاً جذرياً. وفوق ذلك، كان تدريب النظام الكامل يستغرق أسابيع على عتاد باهظ.
الفكرة: شبكة واحدة، صوت يدخل ونصّ يخرج
الفكرة الأساسية في Deep Speech 2 بسيطة بشكل جذري: خذ الطيف الترددي للصوت الخام، أدخله في شبكة عصبية عميقة واحدة، ودرّبها على إخراج الحروف مباشرةً. لا وحدات صوتية، ولا قاموس نطق، ولا نموذج لغوي منفصل أثناء التدريب. الشبكة تتعلّم كل ما تحتاجه من البيانات وحدها — الصوتيات، وأنماط النطق، بل وحتى القواعد اللغوية الضمنية.
البنية تتكوّن من ثلاثة أنواع من مرصوصة فوق بعضها كقوالب بناء:
- في الأسفل تمسح الطيف الترددي بحثاً عن أنماط محلية — ثابتة عبر الترددات كالصيغ الصوتية وانفجارات الحروف الساكنة. تخيّلها كآذان تتعرّف على الصوت نفسه مهما اختلفت طبقة صوت المتحدث.
- (ثنائية الاتجاه، سواء شبكات بسيطة أو ) في الوسط تلتقط السياق الزمني — أي كيف تتدفق الأصوات وتندمج مع بعضها عبر الزمن. هذه هي ذاكرة الشبكة قصيرة المدى: تربط ما سمعته قبل لحظة بما تسمعه الآن.
- في الأعلى تجمع كل المعلومات وتحوّلها إلى احتمال لكل حرف عند كل خطوة زمنية.
CTC: محاذاة الصوت مع النص دون معرفة المحاذاة مسبقاً
هنا يظهر التحدي الجوهري في التعرّف الشامل على الكلام: الصوت يحتوي مئات الإطارات الزمنية، لكن النص المقابل يحتوي حروفاً أقل بكثير، ولا أحد يخبر الشبكة أي إطار يقابل أي حرف. خذ مثالاً: مقطع صوتي مدته 3 ثوانٍ فيه 150 إطاراً، وكلمة «قط» فيها حرفان فقط — فكيف تعرف الشبكة أين يبدأ كل حرف وأين ينتهي؟
التصنيف الزمني الترابطي (CTC) يحلّ هذه المعضلة بطريقة ذكية. الفكرة أنه يضيف رمزاً خاصاً اسمه الفراغ (blank) إلى الأبجدية. في كل إطار زمني، تُخرج الشبكة لكل حرف بالإضافة إلى هذا الفراغ. ثم ينظر CTC في جميع المحاذاة الممكنة — أي كل طريقة يمكن أن تتوزع بها الحروف عبر الإطارات مع فراغات بينها — ويجمع احتمالاتها معاً. تسأل ببساطة: من بين كل الطرق الصحيحة لترتيب هذه الحروف مع الفراغات، كم احتمالاً إجمالياً منحته الشبكة؟
بعبارة أبسط: الشبكة لا تحتاج أن تقرر متى تُصدر كل حرف، بل يكفي أن تعرف ما الحروف التي تظهر وبأي ترتيب. رمز الفراغ يعمل كإشارة «لست جاهزاً بعد» — الشبكة تنتظر حتى تكون واثقة ثم تُصدر الحرف.
تسوية الدُّفعات للشبكات التكرارية العميقة
كلما أضفت طبقات تكرارية أكثر زادت قدرة الشبكة على تعلّم أنماط معقدة، لكن الشبكات التكرارية العميقة صعبة التدريب بطبيعتها: إما تنفجر أو تتلاشى، وتوزيع مدخلات كل طبقة يتغيّر باستمرار كلما تحدّثت الطبقات التي تحتها. تعالج هذه المشكلة بتسوية كل طبقة.
لكن السؤال الحاسم هو: أين بالضبط نطبّق التسوية؟ جرّب الباحثون تسوية كل شيء قبل كل دالة لاخطية في الخطوة التكرارية، لكن ذلك لم ينجح لأن الاعتمادات الزمنية بين الخطوات تتعطّل. الحل الذي نجح هو التسوية على مستوى التسلسل: تُطبَّق تسوية الدُّفعات فقط على التحويل من المدخلات إلى (أي الجزء الذي يعالج المدخل الحالي)، وتُترَك الحالة التكرارية كما هي دون تسوية (أي الجزء الذي ينقل المعلومات من الخطوة السابقة). المتوسط و يُحسبان عبر التسلسل كاملاً وعبر الدُّفعة.
هذا الفارق يبدو بسيطاً لكن أثره كان كبيراً: في شبكة من 9 طبقات منها 7 تكرارية، حسّنت التسوية على مستوى التسلسل بنسبة 12% وسرّعت بشكل ملحوظ.
SortaGrad: منهج تدريبي للتدريب المستقر
العبارات الطويلة تُنتج خسارة CTC كبيرة جداً، لأن حاصل الضرب عبر عدد كبير من الخطوات الزمنية ينكمش بسرعة. هذا يولّد تدرّجات ضخمة وغير مستقرة في بداية التدريب. لحل هذه المشكلة يقدّم Deep Speech 2 تقنية اسمها SortaGrad: في الأولى فقط، تُرتَّب أمثلة التدريب حسب طول العبارة من الأقصر إلى الأطول. هذا يمنح الشبكة إحماءً تدريجياً قبل أن تواجه الأمثلة الأصعب والأطول. بعد الحقبة الأولى يعود الترتيب عشوائياً كالمعتاد.
الأمر أشبه بتعليم طالب: تبدأ معه بالجمل القصيرة البسيطة قبل أن تنتقل إلى الفقرات المعقدة. هذا المنهج التصاعدي حيوي بشكل خاص للشبكات العميقة التي لم تتشكّل فيها مستقرة بعد — بدونه يمكن لعبارة طويلة واحدة في بداية التدريب أن تتسبب في انهيار عددي يُفسد جلسة التدريب بالكامل.
SortaGrad وتسوية الدُّفعات يعملان معاً كفريق واحد: تسوية الدُّفعات تُثبّت التنشيطات داخل الشبكة، بينما SortaGrad يُثبّت سطح الخسارة من الخارج. الاثنان معاً يجعلان تدريب الشبكات العميقة عملية موثوقة.
تفاصيل البنية: الالتفاف والتكرار والعمق
استكشف الباحثون مساحة واسعة من الخيارات المعمارية، وخرجوا بنتائج عملية مهمة:
العمق مهم. الانتقال من طبقة تكرارية واحدة إلى 7 طبقات يُحسّن معدل خطأ الكلمات تحسيناً كبيراً. لكن هذا العمق لا يكون ممكناً عملياً إلا مع تسوية الدُّفعات — بدونها تفشل الشبكات الأعمق في التدريب أصلاً.
وحدة البوابة التكرارية مقابل الشبكة التكرارية البسيطة. عندما يكون النموذج صغيراً، تتفوق وحدات البوابة لأن آليات البوابة تلتقط بشكل أفضل. لكن المفاجأة أنه عند 100 مليون ، تؤدي الشبكات التكرارية البسيطة أداءً أفضل قليلاً وتكون أسرع في التدريب. السبب أن عبء البوابة يقلّ أهمية حين تكون الشبكة واسعة بما يكفي لتعلّم تمثيلات جيدة بوحدات أبسط.
ثنائي البُعد يسحق الضوضاء. الانتقال من التفاف أحادي البُعد (على الزمن فقط) إلى ثنائي البُعد (على الزمن والتردد معاً) حسّن معدل خطأ الكلمات في الكلام الصاخب بنسبة 24%. الالتفاف على محور التردد يجعل الشبكة أقل حساسية لاختلافات طبقة الصوت بين المتحدثين — كأنها تسوية مدمجة للمتحدث.
مع ثنائيات الحروف. لتقليل الحوسبة تقفز الشبكة عدة خطوات زمنية دفعة واحدة. لكن المشكلة في الإنجليزية أن القفز الكبير يُنقص مواضع الإخراج عن عدد الحروف المطلوبة. الحل: إخراج أزواج حروف (مثل "th" و"ca") بدلاً من حروف مفردة. هذا يُنصّف طول الإخراج المطلوب ويسمح بخطوة مقدارها 3 دون فقد في الدقة.
البيانات على نطاق واسع: 11,940 ساعة وما زالت تزداد
التعلّم الشامل جائع للبيانات بطبعه. جمع Deep Speech 2 واحدة من أكبر مجموعات بيانات الكلام في ذلك الوقت:
- الإنجليزية: 11,940 ساعة من 6 مصادر — وول ستريت جورنال (80 ساعة)، وSwitchboard (300 ساعة)، وFisher (2,000 ساعة)، وLibriSpeech (960 ساعة)، ومجموعات Baidu الداخلية (8,600 ساعة)
- الصينية: 9,400 ساعة تشمل كلاماً مقروءاً وعفوياً، بما في ذلك صينية بلهجات متنوعة
كثير من هذه البيانات وصل كمقاطع طويلة بنسخ نصية مشوّشة. لمعالجة ذلك بنى الفريق سلسلة تنظيف تلقائية: أولاً محاذاة النص باستخدام نموذج مدرَّب بـ CTC (محاذاة فيتربي)، ثم تقطيع عند فترات الصمت لإنتاج مقاطع بطول 7 ثوانٍ تقريباً، وأخيراً تصفية المحاذاة السيئة بمصنِّف خطي يعتمد على سمات تكلفة CTC. هذه التصفية خفّضت معدل خطأ الكلمات من 17% إلى 5% مع الاحتفاظ بأكثر من نصف البيانات.
إلى جانب ذلك استخدم الفريق بإضافة ضوضاء إلى 40% من عبارات التدريب — آلاف الساعات من مقاطع صوتية خلفية مُدمجة بنسب إشارة إلى ضوضاء متفاوتة. والنتيجة اللافتة أن معدل خطأ الكلمات ينخفض وفق قانون أُسّي مع حجم البيانات: كل زيادة بمقدار 10 أضعاف في البيانات تخفّض الخطأ بنحو 40%.
تدريب بحوسبة عالية الأداء: 8 معالجات رسومية وانحدار تدريجي متزامن
تدريب نموذج بـ 100 مليون مُعامِل على 12,000 ساعة صوتية يستغرق أسابيع على واحد. لذلك حقّق Deep Speech 2 تسريعاً شبه خطي عبر 8–16 معالجاً رسومياً باستخدام متزامن مع تنفيذ مخصص لعملية الاختزال الجماعي (all-reduce). أبرز التحسينات الهندسية:
- حلقية مخصصة للاختزال الجماعي أسرع 20 ضعفاً من تنفيذ OpenMPI داخل العقدة الواحدة، وذلك بتجنّب النسخ غير الضروري بين المعالج المركزي والرسومي واستغلال GPUDirect.
- حساب خسارة CTC على المعالج الرسومي مباشرة مما وفّر 95 دقيقة في كل حقبة تدريبية على الإنجليزية، لأن التنشيطات تبقى على المعالج الرسومي بدلاً من نسخها ذهاباً وإياباً.
- مخصِّص ذاكرة مخصص يستخدم خوارزمية الرفيق (buddy algorithm) ويتجنّب عبء cudaMalloc للتخصيصات الكبيرة المتكررة اللازمة للعبارات متفاوتة الطول.
بهذه التحسينات يحقّق النظام تبلغ 50 تيرا عملية فاصلة عائمة في الثانية على 16 معالجاً رسومياً (نحو 50% من الأداء النظري الأقصى)، فينخفض وقت التدريب من أسابيع إلى 3–5 أيام فقط.
النشر: من المختبر إلى الإنتاج
النموذج ثنائي الاتجاه يحتاج إلى سماع العبارة كاملة قبل أن يبدأ نسخها — وهذا غير مقبول في التطبيقات الفورية. حلّ Deep Speech 2 هذه المشكلة بابتكارين:
الالتفاف الصفّي (Row Convolution) يستغني عن الطبقات ثنائية الاتجاه ويستبدلها بآلية استباق محدودة. بعد تكديس طبقات تكرارية أحادية الاتجاه، تُضاف في الأعلى طبقة التفاف صفّي تجمع نافذة صغيرة من السياق المستقبلي (حوالي 19 إطاراً). هذا يتيح للنموذج أن يرى ما يكفي من المستقبل لتقديم دقيقة مع بث الصوت إطاراً بإطار. النتيجة: معدل خطأ الحروف أعلى بنسبة 5% فقط مقارنة بالنموذج ثنائي الاتجاه — ثمن بسيط مقابل العمل في الزمن الحقيقي.
إرسال الدُّفعات (Batch Dispatch) يجمّع طلبات المستخدمين الواردة في دُفعات قبل تشغيل على المعالج الرسومي. حتى مع 10 تدفقات متزامنة فقط، يُجمَّع أكثر من نصف الطلبات في دُفعات، مما يرفع الإنتاجية بشكل كبير. النظام يحقق وسيط 44 مللي ثانية و70 مللي ثانية عند المئين الـ 98 — سرعة كافية تماماً للتطبيقات التفاعلية.
على صعيد الكفاءة، يستخدم النموذج المنشور حساباً بـ (نصف الدقة) دون فقد ملموس في الدقة، مما ينصّف متطلبات عرض نطاق الذاكرة. كما صُمّمت نوى ضرب مصفوفات مخصصة مُحسَّنة لأحجام الدُّفعات الصغيرة في الإنتاج (1–4 عينات) تحقق 90% من ذروة عرض نطاق الذاكرة.
دمج النموذج اللغوي
صحيح أن الشبكة التكرارية تتعلّم نموذجاً لغوياً ضمنياً من ملايين العبارات — بل تستطيع حتى التمييز بين الكلمات المتشابهة صوتياً — لكن بيانات التدريب المُعنوَنة تظل صغيرة مقارنةً بمتون النصوص الضخمة المتاحة. لذلك عند الاستدلال يدمج Deep Speech 2 مخرجات شبكة CTC مع نموذج لغوي خارجي قائم على باستخدام .
هناك ملاحظة لافتة: كلما ازداد عمق الشبكة قلّت حاجتها إلى النموذج اللغوي الخارجي. الشبكة ذات 5 طبقات تستفيد من النموذج اللغوي بتحسين 48% في معدل خطأ الكلمات، لكن الشبكة ذات 9 طبقات لا تستفيد إلا بـ 36%. السبب أن الشبكة الأعمق استوعبت مزيداً من المعرفة اللغوية ضمنياً خلال التدريب. في الصينية يظهر هذا الأثر بشكل أوضح، لأن كل حرف صيني يحمل معلومات أكثر بكثير من الحرف الإنجليزي — فالشبكة ترتكب أخطاء «إملائية» أقل من الأساس.
النتائج: اقتراب من الأداء البشري
قارن الباحثون أداء Deep Speech 2 بناسخين بشريين من Amazon Mechanical Turk عبر ظروف متنوعة. النتائج تكشف صورة متعددة الأبعاد:
الكلام المقروء (صوت نظيف ونطق واضح): DS2 يتفوق على البشر في 3 من أصل 4 مجموعات اختبار (WSJ وLibriSpeech-clean). الناسخون البشريون سجّلوا معدل خطأ 5.0% على WSJ، بينما DS2 حقّق 3.6%.
الكلام بلهجات: DS2 يُضيّق الفجوة بشكل كبير — من 45% إلى 22% في معدل خطأ الكلمات على الإنجليزية بلهجة هندية — وهو قريب جداً من الناسخين البشريين (22.2%).
الكلام في ضوضاء: البشر لا يزالون متقدّمين. في البيئات الصاخبة الحقيقية (CHiME) حقّق DS2 معدل خطأ 21.8% مقابل 11.8% للبشر. اللافت أن الفجوة أكبر مع الضوضاء الحقيقية مقارنة بالمحاكاة، مما يشير إلى أن متانة النموذج تجاه الضوضاء فيها جانب «سطحي».
الصينية: في الاستعلامات الصوتية القصيرة يتفوق DS2 على ناسخ بشري واحد (5.7% مقابل 9.7% معدل خطأ حروف) ويُضاهي لجنة من 5 ناسخين (3.7% مقابل 4.0%).
في المحصلة، خفّض النموذج ذو 100 مليون مُعامِل معدل خطأ الكلمات بنسبة 43% مقارنة بالإصدار الأول من Deep Speech على معيار داخلي صعب.
التكيّف مع الصينية: البنية نفسها وأبجدية مختلفة
من أبرز ما يميّز Deep Speech 2 هو مدى قلّة التغييرات المطلوبة عند الانتقال من الإنجليزية إلى الصينية — مع أن اللغتين مختلفتان جذرياً في نظام الكتابة والصوتيات والبنية النغمية.
التعديلات الوحيدة هي: (1) تُصدر نحو 6,000 حرف صيني بدلاً من 26 حرفاً إنجليزياً، (2) النموذج اللغوي يعمل على مستوى الحروف لأن النص الصيني لا يُقسَّم إلى كلمات، (3) حجم الشعاع في البحث الشعاعي ينخفض إلى 200 (من 500 في الإنجليزية) لأن مساحة البحث تتقارب أسرع مع وحدات إخراج أكبر.
والأهم من كل ذلك: لا يوجد نموذج نغمات صريح — الشبكة تتعلّم التمييز بين النغمات ضمنياً من الطيف الترددي. ولا يوجد قاموس نطق — الشبكة تتعلّم الربط بين الصوت والحروف من طرف إلى طرف. هذه هي القوة الحقيقية للتعلّم الشامل: الشبكة تكتشف من تلقاء نفسها أي بنية لغوية تحتاجها، دون أن يوجّهها أحد إلى ما يجب البحث عنه.
البنية في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def clipped_relu(x, cap=20):
"""ReLU مقطوعة عند 20 — تمنع انفجار التنشيطات."""
return np.clip(np.maximum(x, 0), 0, cap)
def batch_norm(x, gamma, beta, eps=1e-5):
"""تسوية التنشيطات إلى متوسط صفري وتباين واحد."""
mu = x.mean(axis=0, keepdims=True)
var = x.var(axis=0, keepdims=True)
return gamma * (x - mu) / np.sqrt(var + eps) + beta
def conv1d(x, W, stride=2):
"""التفاف أحادي البعد عبر الزمن مع خطوة."""
T, D = x.shape
out_t = T // stride
# مبسَّط: كل مخرج = W · نافذة السياق
return np.stack([clipped_relu(x[t*stride] @ W) for t in range(out_t)])
def rnn_layer_forward(x, W_ih, W_hh, gamma, beta):
"""اتجاه واحد من شبكة تكرارية بسيطة مع تسوية على مستوى التسلسل."""
T, D = x.shape
h = np.zeros(W_hh.shape[0])
outputs = []
for t in range(T):
# تسوية الدُّفعات على المدخلات فقط، وليس على الحالة التكرارية
inp = batch_norm(x[t:t+1] @ W_ih, gamma, beta)
h = clipped_relu(inp[0] + h @ W_hh)
outputs.append(h)
return np.stack(outputs)
def deep_speech_2(spectrogram, params):
"""التمرير الأمامي الكامل: التفاف → شبكة تكرارية عميقة → كاملة الاتصال → softmax."""
# 1. استخلاص السمات بالالتفاف (1-3 طبقات)
h = conv1d(spectrogram, params['conv_W'], stride=2)
# 2. شبكة تكرارية عميقة ثنائية الاتجاه (حتى 7 طبقات)
for layer in params['rnn_layers']:
fwd = rnn_layer_forward(h, layer['W_ih'], layer['W_hh'],
layer['gamma'], layer['beta'])
bwd = rnn_layer_forward(h[::-1], layer['W_ih'], layer['W_hh_bwd'],
layer['gamma'], layer['beta'])[::-1]
h = fwd + bwd # جمع الأمامي والخلفي
# 3. كاملة الاتصال + softmax → احتمالات الحروف
logits = h @ params['fc_W'] + params['fc_b']
probs = np.exp(logits) / np.exp(logits).sum(axis=-1, keepdims=True)
return probs # الشكل: (خطوات_زمنية، حجم_الأبجدية + 1_للفراغ)
# CTC يجمع عبر كل المحاذاة الصحيحة لحساب الخسارة.
# عند الاستدلال، البحث الشعاعي + النموذج اللغوي يجدان أفضل نص.لماذا غيَّر كل شيء
2006
التصنيف الزمني الترابطي (CTC)
قدّم Graves وزملاؤه تقنية CTC التي أتاحت تدريب النماذج على تسلسلات كاملة دون الحاجة لمحاذاة يدوية بين الصوت والنص. أصبحت هذه التقنية الركيزة الأساسية للتعرّف الشامل على الكلام.
2014
Deep Speech 1
أول نظام تعرّف شامل على الكلام من Baidu، ببنية من 5 طبقات ومدرَّب على 7,000 ساعة. أثبت جدوى الفكرة لكنه ترك مجالاً واسعاً للتحسين.
2015
Deep Speech 2
قفزة كبيرة إلى 11 طبقة و12,000 ساعة و100 مليون معامل. قدّم تسوية الدُّفعات للشبكات التكرارية، ومنهج SortaGrad، والالتفاف ثنائي البُعد، وتدريباً مُسرَّعاً بالحوسبة عالية الأداء. حقّق دقة تُضاهي الناسخين البشريين.
2020
wav2vec 2.0
تدريب مسبق ذاتي الإشراف على صوت غير معنون، ثم ضبط دقيق بـ CTC. حقّق نتائج قوية بـ 10 دقائق فقط من البيانات المعنونة — مما وسّع نموذج التعلّم الشامل إلى أفق جديد.
2022
Whisper
طبّقت OpenAI الوصفة نفسها على نطاق أوسع: 680,000 ساعة من البيانات ضعيفة الإشراف وبنية محوِّل بمرمِّز وفاكّ ترميز. النتيجة: نظام متعدد اللغات ومتين وقادر على العمل بدون أمثلة مسبقة.
Deep Speech 2 وضع الأساس. wav2vec 2.0 أضاف . Whisper أضاف إشرافاً ضعيفاً على نطاق هائل وبنية . كل خطوة في هذا المسار تتبع المبدأ نفسه الذي أرساه Deep Speech 2: استبدل الهندسة اليدوية بـ، ثم وسّع.
المرجعAmodei, Anubhai, Battenberg, Case, Casper, Catanzaro, Chen, Chrzanowski, Coates, Diamos, Elsen, Engel, Fan, Fougner, Han, Hannun, Jun, LeGresley, Lin, Narang, Ng, Ozair, Prenger, Raiman, Satheesh, Seetapun, Sengupta, Wang, Wang, Wang, Xiao, Yogatama, Zhan, Zhu. Deep Speech 2: End-to-End Speech Recognition in English and Mandarin. ICML, 2016.
مصطلحات هذه الورقة
- التعرّف على الكلامSpeech Recognition
- التعرّف الآلي على الكلامAutomatic Speech Recognition
- من طرف إلى طرفend-to-end
- تسوية الدفعات الحسابيةBatch Normalization
- معدل خطأ الكلماتWord Error Rate
- المخطط الطيفي ميلMel Spectrogram
- النموذج اللغويLanguage Model
- بحث الحزمةBeam Search
- تعزيز البياناتData Augmentation
- آلية البواباتGating Mechanism
- الوحدة العودية البوابيةGRU
- شبكة الذاكرة الطويلة قصيرة المدىLSTM
- توازي البياناتData Parallelism