تحسين جودة صوت Google Duo باستخدام WaveNetEQ

أصبحت مكالمات الإنترنت جزءًا لا يتجزأ من حياة الملايين من الناس - وبهذه الطريقة يبسطون سير عملهم ويتواصلون مع أحبائهم. لتحويل مكالمة عبر الإنترنت ، يتم تقسيم بيانات المكالمة إلى قطع صغيرة تسمى "الحزم". تنتقل الحزم عبر الشبكة من المرسل إلى المستلم ، حيث يتم جمعها مرة أخرى لتلقي تدفق مستمر للفيديو والصوت. ومع ذلك ، غالبًا ما تصل الحزم إلى المستلم بترتيب خاطئ وفي الوقت غير المناسب - وهذا ما يسمى عادةً الارتعاش.(يرتجف) - أو ضاع تمامًا. تقلل هذه المشاكل من جودة المكالمات ، حيث يتعين على المستلم محاولة سد الثغرات ، وهذا يؤثر بشكل خطير على كل من الصوت والفيديو. على سبيل المثال ، يعاني 99٪ من المكالمات من خلال Google Duo من فقدان الحزمة أو التشويش المفرط أو وقت استجابة الشبكة. ومن بين هذه المكالمات ، تفقد 20٪ من المكالمات أكثر من 3٪ من البيانات الصوتية بسبب مشكلات في الشبكة ، و 10٪ من المكالمات تفقد أكثر من 8٪ من البيانات.


مخطط مبسط لمشكلة الشبكة

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

للتعامل مع هذه المشاكل الصوتية ، قدمنا ​​نظام PLC جديد يسمى WaveNetEQ في Duo. هذا نموذج توليدي يعتمد على تقنية WaveRNN من DeepMind ، تم تدريبه على مجموعة كبيرة من بيانات الكلام لإكمال مقاطع الكلام بشكل واقعي. وهي قادرة على توليف الإشارة الصوتية لأجزاء الكلام المفقودة بشكل كامل. نظرًا لأن المكالمات إلى Duo تخضع للتشفير الشامل ، يجب إجراء جميع المعالجة على الجهاز نفسه. يعد نموذج WaveNetEQ سريعًا بما يكفي للهاتف ، مع الاستمرار في توفير جودة صوت ممتازة و PLC يبدو أكثر طبيعية مقارنة بالنظم الأخرى الموجودة.

نظام PLC جديد لـ Duo


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

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

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

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

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


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

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


محاكاة أحداث PLC في دفق صوتي على نافذة منزلقة 60 مللي ثانية. الخط الأزرق صوت حقيقي ، بما في ذلك الأجزاء السابقة والمستقبلية من PLC. في كل مقياس ، يمثل الخط البرتقالي الصوت الاصطناعي الذي يتوقعه نظام WaveNetEQ إذا تم قطع الصوت على طول الخط الرمادي العمودي.

فقدان الحزم 60 مللي ثانية

[ ملحوظة perev.: أمثلة الصوت خرقاء للغاية في المظهر ، لأن محرر Habr لا يوفر القدرة على تضمين الملفات الصوتية. هكذا تبدو mp4 بصوت واحد بدون صورة. ]

NetEQ


WaveNetEQ


NetEQ


WaveNetEQ




فقدان حزمة NetEQ 120 مللي ثانية


WaveNetEQ


NetEQ


WaveNetEQ


نحن نضمن الموثوقية


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

وعلى الرغم من أن نموذجنا قادر على معرفة كيفية متابعة خطابك بشكل معقول ، إلا أنه يعمل لفترات زمنية قصيرة فقط - يمكنه إنهاء المقاطع ، ولكن لا يمكنه التنبؤ بالكلمات. في حالة فقدان الحزمة على مدى فترات طويلة من الزمن ، نقوم بتقليل الحجم تدريجيًا ، وبعد 120 مللي ثانية ينتج النموذج الصمت فقط. أيضًا ، للتأكد من أن النموذج لا ينتج مقاطع زائفة ، قمنا بفحص عينات الصوت من WaveNetEQ و NetEQ باستخدام Google Cloud Speech-to-Text APIووجدت أن النموذج لا يغير عمليا النسبة المئوية للأخطاء في النص الناتج ، أي عدد الأخطاء التي تحدث أثناء التعرف على الكلام. لقد جربنا WaveNetEQ في Duo ، وأثر استخدامه بشكل إيجابي على جودة المكالمات وتجربة المستخدم. تعمل WaveNetEQ بالفعل على جميع مكالمات Duo على هواتف Pixel 4 ، والآن نقوم بنشرها على الهواتف الأخرى.

All Articles