これにどれだけの労力がかかるのか、これにどれだけの関心があるのかわかりません。
一般的なローカル(オフライン)STTシステムは、現在使用されているシステムほど認識が良くないことは理解していますが、それでも、それらを使用するオプションと、オンラインサービスの応答に時間がかかりすぎる場合にフォールバックするオプションの両方が必要です。 。 (また、何らかの理由でサービスがダウンした場合)
個人的な背景:
ホームインターネットはひどいもので、基本的なリクエストが大幅に遅れたり、接続が切れたりすることがあります(私が使用するほとんどすべてがオンラインベースですが、最終的にはホームオートメーションのようなオフラインのみの機能があります)。
提案:
これによって解決される問題:
完全に同意しました! 実際、私がブログの投稿/ニュースレターの1つを正しく読んだ場合、これはしっかりと範囲内にあるはずだと思います。
こんにちは、
プルリクエスト#656および関連する問題#655を参照してください。 ローカルpocketsphinxをSTTデバイスとして使用するために、クライアント/音声に必要な変更を実装します。
これはスペイン語の内部化で開発およびテストされた考え方ですが、PocketSphinxでサポートされている他の言語に対して有効である必要があります。
詳細については、こちらのwikiページを参照してください。 特に、「スペイン語をサポートするSTTを選択して構成する」というタイトルの章。
kaldiを使用したい場合は、プルリクエスト#438もあります。
ラズベリーパイで動作するかどうかはわかりませんが、デスクトップでは正常に動作します。
数年後、インターネット接続に応じて、オンラインとオフラインの両方のSTTを使用する最適化されていない方法を共有します。 それが誰かを助けることができるなら。 PocketSphinxをオフラインSTTとして個人的に使用する
mycroft.stt .__init__。pyに_frommycroft.util importconnected_を追加します
次に、create()メソッドに:を追加します。
if connected() is True:
return PocketSphinxSTT()
else:
try :
...
次に、mainskill .__ 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を定義している
問題を解決するためのあまり良い方法ではありませんが、このテーマについて他に何も見つけることができず、インターネットがダウンしたときにフォールバックする必要がありました。 過去3年間にこの問題について誰かが知っていたら、共有してください。
Pocketsphinxは行き止まりであり、フォールバックとしても使用できないほどに吸い込まれます
https://github.com/MycroftAI/mycroft-core/pull/1184を作成してオフラインpocketsphinxSTTを追加しましたが、ライブテストは99,9%の確率で終了し、あきらめてCLIを使用しました。
kaldiライブストリーミングはオプションで、少しうまく機能します。75%の時間しか諦めません!
あなたの最善の選択肢は、deepspeech / kaldiをセルフホストすることですが、それでもプライムタイムの準備ができていません
あなたは私のpocketsphinxローカルリスナー(限られた語彙は大丈夫です)と
これらは概念実証ですが、実際には維持されていないプロジェクトです。プルリクエストはそれらを最新の状態に保つことを歓迎します
フォールバックSTTは非常に理にかなっていると思いますが、使用できるものができて初めて、現在はリソースの浪費になっています。
私は2番目にpocketsphinxで問題を抱えていますが、これは主に精度が低いためです。個人的には、 https: //github.com/jcsilva/docker-kaldi-gstreamer-serverでkaldiを使用する方がはるかに幸運でした
前回試したのは2017年だったので、ymmv、もう一度見てみる時間があればいいのですが、mycroftが恋しいです:)
おかげで、地元のリスナーは確かに非常に興味深いです、私はアップデートでPRします。
VoskはRPIで実行でき、現在16言語用の小さな(50MB)STTモデルがあります。 今からやってみます...
@domcrossここでくださいhttps://github.com/HelloChatterbox/speech2text/blob/dev/speech2text/engines/kaldi.py
#2594がマージされるのを待っているので、追加できます:)