Mycroft-core: Penggantian STT Lokal?

Dibuat pada 21 Jan 2017  ·  9Komentar  ·  Sumber: MycroftAI/mycroft-core

Saya tidak tahu berapa banyak usaha yang diperlukan, atau seberapa besar minat yang mungkin ada dalam hal ini.

Meskipun saya mengerti bahwa sistem STT lokal (offline) yang khas tidak sebaik sistem yang saat ini digunakan, saya masih menyukai opsi untuk menggunakannya serta opsi untuk mundur jika layanan online terlalu lama untuk merespons . (Juga jika layanan turun karena alasan apa pun)

Latar belakang pribadi:

Internet rumah jelek, terkadang permintaan dasar sangat lambat, terkadang koneksi padam (sementara hampir semua yang saya gunakan berbasis online, kemungkinan hanya akan ada fungsi offline seperti otomatisasi rumah).

Saran:

  • Tambahkan dukungan untuk satu atau beberapa alat pengenalan lokal.
  • Tambahkan opsi "fallback" di pengaturan STT untuk menggunakan pengenalan lokal jika layanan jarak jauh tidak responsif (tidak ada koneksi, atau membutuhkan waktu lebih lama dari X detik untuk memberikan hasil)

Masalah Diselesaikan dengan ini:

  • Privasi (pengguna yang bersedia mengorbankan kualitas untuk privasi dapat melakukannya, berpotensi dengan Mycroft yang sepenuhnya offline)
  • Terus beroperasi dalam konektivitas yang buruk (opsi untuk memilih "respons buruk" daripada "tidak ada respons")
Enhancement - proposed help wanted

Semua 9 komentar

Setuju sepenuhnya! Bahkan, jika saya membaca salah satu posting blog / buletin dengan benar, saya akan mengatakan ini harus benar-benar dalam cakupan.

Hai,

Lihat permintaan tarik #656 dan masalah terkait #655. Ini mengimplementasikan perubahan yang diperlukan dalam klien/ucapan untuk menggunakan pocketsphinx lokal sebagai perangkat STT.

Ini telah dikembangkan dan diuji pemikirannya dalam internalisasi Spanyol, tetapi harus valid untuk bahasa lain yang didukung oleh PocketSphinx.

Lihat halaman wiki di sini untuk lebih jelasnya. Secara khusus, bab berjudul "Memilih dan mengonfigurasi STT dengan dukungan bahasa Spanyol".

Ada juga pull request #438 jika ingin menggunakan kaldi.
Saya tidak yakin ini akan berfungsi pada raspberry pi, tetapi berfungsi dengan baik di desktop saya.

Beberapa tahun kemudian, tetapi berbagi cara yang tidak dioptimalkan untuk menggunakan STT online dan offline tergantung pada konektivitas internet. Jika itu dapat membantu seseorang. Secara pribadi menggunakan PocketSphinx sebagai STT offline

Di mycroft.stt.__init__.py tambahkan _from mycroft.util import connected_
kemudian pada metode create() , tambahkan:

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

Kemudian pada mainskill.__init__.py Anda, seseorang dapat menambahkan ke metode handle_boot_finished panggilan ini:
self.schedule_repeating_event(self.check_connection_switchSTT, None, 30)
Ini akan memanggil check_connection_switchSTT yang memeriksa konektivitas internet, dan memulai ulang layanan audio jika berubah, setiap 30 detik.
Fungsi saya secara pribadi terlihat seperti ini:

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'])

`
memiliki self.prevstate yang ditentukan sebelumnya tergantung pada koneksi selama inisialisasi skill skill

Bukan cara yang sangat baik untuk memecahkan masalah tetapi tidak dapat menemukan hal lain tentang masalah ini, dan sangat membutuhkan untuk mundur ketika internet saya mati. Jika ada yang tahu tentang masalah ini selama tiga tahun terakhir, silakan berbagi.

pocketsphinx adalah jalan buntu, menyebalkan sampai tidak dapat digunakan bahkan sebagai fallback

saya membuat https://github.com/MycroftAI/mycroft-core/pull/1184 untuk menambahkan STT pocketsphinx offline, tetapi pengujian langsung berakhir 99,9% kali dengan saya menyerah dan hanya menggunakan cli

kaldi live streaming adalah pilihan, bekerja sedikit lebih baik, saya hanya menyerah 75% kali!

pilihan terbaik Anda adalah menghosting sendiri deepspeech/kaldi , tetapi bahkan itu belum siap untuk prime time

Anda mungkin tertarik dengan pendengar lokal pocketsphinx saya (vocab terbatas berfungsi dengan baik) dan kaldi spotter

itu adalah bukti konsep tetapi proyek tidak benar-benar dipertahankan, Permintaan Tarik dipersilakan untuk tetap memperbaruinya

saya pikir STT mundur sangat masuk akal, tetapi hanya sekali kami memiliki sesuatu yang dapat digunakan, saat ini membuang-buang sumber daya

Saya kedua mengalami masalah dengan pocketsphinx, sebagian besar karena akurasi yang rendah, secara pribadi saya lebih beruntung menggunakan kaldi dengan https://github.com/jcsilva/docker-kaldi-gstreamer-server

Terakhir kali saya mencobanya pada tahun 2017 jadi ymmv, semoga saya punya waktu untuk melihatnya lagi, saya merindukan mycroft saya :)

Terima kasih, pendengar lokal memang sangat menarik, saya akan PR dengan pembaruan.

Vosk dapat berjalan di RPI dan memiliki model STT kecil (50MB) untuk 16 bahasa saat ini. Saya akan mencobanya sekarang ...

@domcross lihat vosk di sini https://github.com/HelloChatterbox/speech2text/blob/dev/speech2text/engines/kaldi.py

tinggal nunggu #2594 digabung biar bisa nambah :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat