Mycroft-core: احتياطي STT المحلي؟

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

لا أعرف مقدار الجهد الذي سيستغرقه هذا ، أو مقدار الاهتمام الذي قد يكون هناك.

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

خلفية شخصية:

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

اقتراح:

  • أضف دعمًا لواحد أو أكثر من أدوات التعرف المحلية.
  • أضف خيار "احتياطي" في إعدادات STT لاستخدام التعرف المحلي إذا كانت الخدمة عن بُعد غير مستجيبة (لا يوجد اتصال ، أو تستغرق أكثر من X ثانية لإعطاء نتيجة)

المشكلات التي تم حلها من خلال هذا:

  • الخصوصية (يمكن للمستخدمين الراغبين في التضحية بالجودة من أجل الخصوصية القيام بذلك ، ربما باستخدام Mycroft غير متصل بالكامل)
  • مواصلة العمل في ظل اتصال ضعيف (خيار لتفضيل "استجابة ضعيفة" على "لا توجد استجابة")
Enhancement - proposed help wanted

ال 9 كومينتر

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

أهلا،

انظر طلب السحب رقم 656 والمشكلة ذات الصلة # 655. يقوم بتنفيذ التغييرات اللازمة في العميل / الكلام لاستخدام pocketsphinx المحلي كجهاز STT.

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

انظر صفحة ويكي هنا لمزيد من التفاصيل. على وجه الخصوص ، الفصل بعنوان "حدد وتكوين STT بدعم إسباني".

يوجد أيضًا طلب سحب رقم 438 إذا كنت تريد استخدام kaldi.
لست متأكدًا من أنه سيعمل على raspberry pi ، ولكنه يعمل بشكل جيد على سطح المكتب.

بعد بضع سنوات ، ولكن مشاركة طريقة غير محسّنة لاستخدام كل من STT عبر الإنترنت وغير متصل اعتمادًا على اتصال الإنترنت. إذا كان يمكن أن يساعد شخص ما. شخصيا باستخدام PocketSphinx باعتباره STT غير متصل

في mycroft.stt.__init__.py أضف _من mycroft.util تم توصيل الاستيراد
ثم في طريقة الإنشاء () ، أضف:

if connected() is True: return PocketSphinxSTT() else: try : ...

ثم في مهاراتك الرئيسية__init__.py ، يمكن للمرء أن يضيف إلى طريقة handle_boot_finished هذه المكالمة:
self.schedule_repeating_event(self.check_connection_switchSTT, None, 30)
سيؤدي هذا إلى استدعاء check_connection_switchSTT الذي يتحقق من اتصال الإنترنت ، ويعيد تشغيل خدمات الصوت إذا تغيرت ، كل 30 ثانية.
تبدو وظيفتي الشخصية كما يلي:

def check_connection_switchSTT(self):

    if connected() is True:

        self.newstate = "yes"

    else:

        self.newstate = 'no'

    if self.prevstate != self.newstate:

        self.prevstate = self.newstate

        LOG.info("Internet connectivity changed")

        subprocess.call(['/path/to/stop-mycroft.sh', 'voice'])

        subprocess.call(['/path/to/start-mycroft.sh', 'voice'])

"
تحديد self.prevstate مسبقًا اعتمادًا على الاتصال أثناء تهيئة المهارة

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

pocketsphinx هو طريق مسدود ، فهو يمتص لدرجة أنه لا يمكن استخدامه حتى كإجراء احتياطي

لقد صنعت https://github.com/MycroftAI/mycroft-core/pull/1184 لإضافة جيوب في وضع عدم الاتصال بالإنترنت STT ، ولكن انتهى الاختبار المباشر معي بنسبة 99.9٪ من المرات التي استسلمت فيها واستخدمت فقط cli

البث المباشر لـ kaldi هو خيار ، يعمل بشكل أفضل قليلاً ، أنا فقط أتخلى عن 75٪ من المرات!

أفضل خيار لك هو استضافة deepspeech / kaldi لنفسك ، ولكن حتى هذا ليس جاهزًا لوقت الذروة

قد تكون مهتمًا بالمستمع المحلي الخاص بي في المفردات المحدودة بشكل جيد) و

هذه هي دليل على المفاهيم ولكنها لم تتم صيانتها بالفعل ، نرحب بطلبات السحب لإبقائها محدثة

أعتقد أن STT الاحتياطية منطقية جدًا ، ولكن بمجرد أن يكون لدينا شيء قابل للاستخدام ، فهذا يعد مضيعة للموارد حاليًا

أنا أواجه مشكلة مع pocketsphinx ، ويرجع ذلك غالبًا إلى الدقة المنخفضة ، شخصيًا كان لي حظ أفضل في استخدام kaldi مع https://github.com/jcsilva/docker-kaldi-gstreamer-server

آخر مرة جربتها كانت في عام 2017 ، لذا آمل أن أحصل على بعض الوقت للنظر فيه مرة أخرى ، أفتقد mycroft :)

شكرًا ، المستمع المحلي مثير جدًا للاهتمام حقًا ، سأقوم بالعلاقات العامة مع تحديث.

يمكن تشغيل Vosk على RPI ولديها نماذج STT صغيرة (50 ميجابايت) لـ 16 لغة حاليًا. سأجرب هذا الآن ...

domcross انظر vosk هنا https://github.com/HelloChatterbox/speech2text/blob/dev/speech2text/engines/kaldi.py

فقط في انتظار دمج # 2594 حتى أتمكن من إضافته :)

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

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

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

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

krisgesling picture krisgesling  ·  3تعليقات

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

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