Mycroft-core: المكافأة: تنفيذ إلغاء الضوضاء على الأجهزة القائمة على RPi-3 (Mark 1 و Picroft)

تم إنشاؤها على ١٤ مارس ٢٠١٨  ·  20تعليقات  ·  مصدر: MycroftAI/mycroft-core

_ملاحظة: حل هذا الإصدار محل المشكلة رقم 57_

عرض المشكلة

لا يلغي ناقل الصوت الحالي الموجود في صور Mark 1 و Picroft صوت مكبر الصوت من الميكروفون. يؤدي هذا إلى سلوك غير مرغوب فيه للجهاز ، وبشكل ملحوظ أكثر عند تشغيل دفق صوتي وعدم قدرة المستخدم على "المداخلة" بسهولة باستخدام Hey Mycroft .

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

معايير القبول

  • يجب أن يعمل الحل على جهاز مرجعي Mark 1. Picroft لا بأس به للاختبار أو إثبات المفهوم ، ولكن الحل يجب أن يعمل في البيئة الصوتية العلوية Mark 1
  • يجب أن يعمل الحل مع دفق صوت يتم تشغيله بمستوى صوت 3/4 ، مثل Pandora أو Spotify أو Mopidy أو صوت دفق آخر
  • يجب أن يعمل الحل مع برنامج الكشف الافتراضي Precise Wake Word.
  • يجب أن يكون المستخدم قادرًا على مقاطعة دفق إدخال / إخراج الصوت من خلال نطق Wake Word - أي "Hey Mycroft" بمستوى صوت عادي (أي عدم الصراخ).
  • يجب أن يعمل الحل ضمن قيود وحدة المعالجة المركزية لأجهزة RPi 3 (الأجهزة المستخدمة لكل من Mark 1 و Picroft). وهي عدم تجاوز متوسط ​​التحميل 3.0 عند تشغيل الأمر العلوي.

معلومات مفيدة

جهة الاتصال الفنية الرئيسية - Steve Penrod (penrods) (@ steve-mycroft على https://chat.mycroft.ai)

باونتي

تبلغ قيمة Bounty لطلب الميزة هذا 1000 دولار أمريكي ، بالإضافة إلى عملة مجانية من Mark 1 و Gold Mycroft Challenge Coin.

medium Enhancement - proposed help wanted

التعليق الأكثر فائدة

لقد عملت في مشاريع باستخدام شرائح Broadcom لا تختلف عن تلك الخاصة بشريحة BCM2837 (المستخدمة في RPi3) ورأينا نجاحًا جيدًا باستخدام Opus echo إلغاء. يستغرق الأمر وحدة المعالجة المركزية (CPU) ، لكنها لم تكن سيئة بشكل خاص. لسوء الحظ ، ليس لدي وقت الفراغ الضروري للمساهمة في البحث عن المكافآت ، لكنني اعتقدت أن اقتراح هذا قد يساعد شخصًا آخر.

ال 20 كومينتر

سأقوم بإلقاء نظرة على هذا قريبًا

مزيد من المعلومات المفيدة:
يدعم PulseAudio إلغاء صدى الوحدة النمطية .
مزيد من المعلومات هنا ... https://arunraghavan.net/2016/05/improvements-to-pulseaudios-echo-cancellation/

بعض الروابط المفيدة المأمولة حول وحدة النبض:
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index45h3
https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Enable_Echo.2FNoise -Cancelation
يمكن لوحدة إلغاء الصدى أيضًا إجراء تشكيل الحزم ...

تضمين التغريدة
هل اكتشف أي شخص هذا الخيار (إلغاء صدى الصوت النبضي) مسبقًا؟ أنا على استعداد لتجربته على الرغم من أنني لا أملك سوى picroft للعمل معه.

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

جربها ، وانظر ما هي النتيجة!

لقد عملت في مشاريع باستخدام شرائح Broadcom لا تختلف عن تلك الخاصة بشريحة BCM2837 (المستخدمة في RPi3) ورأينا نجاحًا جيدًا باستخدام Opus echo إلغاء. يستغرق الأمر وحدة المعالجة المركزية (CPU) ، لكنها لم تكن سيئة بشكل خاص. لسوء الحظ ، ليس لدي وقت الفراغ الضروري للمساهمة في البحث عن المكافآت ، لكنني اعتقدت أن اقتراح هذا قد يساعد شخصًا آخر.

شكرًا على ملاحظاتك ، roadriverrail - اقتراح رائع!

يحتمل أن تكون مثيرة للاهتمام:
https://github.com/xiph/rnnoise
وبناءً على ذلك:
https://github.com/werman/noise-suppression-for-voice
(ما سبق أبطأ بكثير مما هو قابل للتطبيق ، للأسف: زيادة المعالجة بنسبة 8: 1)

forslund ، عند العمل على محطة عمل مع مصدر mycroft ، هل يتم تحميل إلغاء صدى النبض تلقائيًا أم يتعين علينا القيام بذلك بأنفسنا؟

هل أجهزة مكبر الصوت USB مثل Jabra 410 (المشهورة في المنتديات) تقوم بإلغاء الصدى؟ أنا أستخدم واحدة مع RPi 3B + ويبدو أن "Hey Mycroft، stop" تعمل. على الرغم من أنني لست متأكدًا مما إذا كان يعمل "جيدًا" عند "الحجم العادي".

حاليًا ، لا توجد توزيعات تحمل إلغاء صدى النبض (الذي أعرفه).
لكل https://www.jabra.com/business/speakerphones/jabra-speak-series/jabra-speak-410 "تقنية معالجة الإشارات الرقمية (DSP)
صوت فائق الوضوح بدون أصداء أو أصوات مشوشة حتى عند مستوى الصوت الأقصى "والذي يبدو كثيرًا وكأنه يحتوي على نوع من إلغاء الصدى.

tlc as @ el-tocino ينص على أن إلغاء الصدى لا يتم تحميله افتراضيًا. يؤدي تحميله إلى إنشاء ميكروفون افتراضي تحتاج إلى تعيينه كافتراضي لاستخدامه مع mycroft. (تحديده بشكل أساسي في التحكم في مستوى صوت النبض)

كيف نذهب جميعًا مع هذا - أي أسئلة؟ أي معلومات يمكن أن نقدمها للمساعدة؟

ليس عملي ، بل صادفته للتو ؛

https://github.com/voice-engine/ec

تبدو مثيرة للاهتمام وتحديد المربعات.

لقد جربتُ محرك الصوت / ec (وهو في الأساس غلاف لـ speex) ووحدة إلغاء الصدى في PulseAudio (عليك تثبيت PA 7.1 من Debian-Jessie-Backports لذلك) باستخدام خوارزميات "webrtc" و "speex" (لا يمكن استخدام أدريان على الإطلاق) ولكن لم يحالفه الحظ حتى الآن. أرى سببين رئيسيين:
1) عندما يتم تشغيل الموسيقى على مكبر الصوت Mark-I ، فإن ميكروفون Mark-I لا يلتقط الموسيقى إلا تقريبًا (هذا بسبب البناء المادي) ، بالإضافة إلى الميكروفون / preamp يلتقط الكثير من ضوضاء الراديو / الكهرباء . هذا يجعل الأمر صعبًا حقًا لأي خوارزمية إلغاء الضوضاء / الصدى.
2) توقيت RPI3 للساعة الداخلية ليس مستقرًا بدرجة كافية لهذا النوع من المعالجة في الوقت الفعلي - كما أن الانحراف الزمني الدائم يخلط بين خوارزميات إلغاء الصدى أيضًا.
سأقوم بتجربة "rnnoise" قريبًا (لقد تم تجميعها بالفعل لـ RPI ولكن بعض المشكلات في تكوينها لـ PA) ولكن لا يتعين عليك التوقُّف الشديد للأسباب المذكورة أعلاه

سأكون على استعداد للنظر في حل يتطلب إضافة أو تعديل ثانوي ورخيص إلى Mark 1 ، على سبيل المثال رغوة صوتية تفصل الميكروفون ومكبر الصوت أو إعادة توجيه الأسلاك. ولكن لا يتغير مستوى اللوحة.

قد يكون تكوين الشعاع بناءً على موضع الميكروفون بالإضافة إلى ميكروفون USB رخيصًا خيارًا. واحد أو اثنين من هذه الميكروفونات المصغرة (ابحث عن "overfly portable usb 2.0 mic") الموجودة في المنافذ المدمجة مع الصوت من الميكروفون الحالي الذي يتم تشغيله من خلال أداة تكوين الشعاع يجب أن يكون قادرًا على عمل aec وتحسين الاستماع. لم أجربها بنفسي بعد ، للأسف.

بعد المزيد من التجارب ، لدي تكوين مع وحدة إلغاء صدى PulseAudio التي تعمل بشكل معقول * بمستويات صوت تصل إلى 5 (الحد الأقصى لمارك 1 هو 11) ضمن مسافة تقريبًا. 4 أقدام. هناك مساحة أكبر لتعديل المعلمات التي قد تزيد من الموثوقية.
لم أحاول تعديل الأجهزة (الرغوة الصوتية) حتى الآن. بالإضافة إلى ذلك ، أنا أفكر في إجراء تغييرات في Mycroft Audioservices ، على سبيل المثال موسيقى البطة / كتم الصوت بمجرد اكتشاف كلمة الاستيقاظ من أجل الحصول على كلام واضح ...

* اعتمادًا على المادة الموسيقية ، فكلما كان الضغط أكثر (انظر " حرب الصخب ") أقل موثوقية.

أعتقد أن forslund قد قام بالفعل ببعض الأعمال المتعلقة بجزء

معك يجب أن يتم دمج خاصية إلغاء الصدى الصوتي (AEC) مع خفض الصوت.

لقد استخدمت بعض رغوة عازلة للأبواب / النوافذ (مماثلة: https://www.homedepot.com/p/Frost-King-3-4-in-x-5-16-in-x-10-ft-Black-Rubber -Foam-Weatherseal-Tape-R534H / 202262324) لعمل حاجز حول مقدمة الميكروفون بين لوحة دوائر الوجه ولوحة الواجهة. ثانويًا لذلك ، غطيت الجزء الخلفي من السماعة بالرغوة أيضًا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

tmajibon picture tmajibon  ·  9تعليقات

Zacki84 picture Zacki84  ·  10تعليقات

mghoffmann picture mghoffmann  ·  6تعليقات

el-tocino picture el-tocino  ·  4تعليقات

AMDphreak picture AMDphreak  ·  10تعليقات