私はPython音声認識を1か月の大半で使用して、JARVISのようなアシスタントを作成しています。Googleの音声認識モジュールとPocketsphinxの両方で音声認識モジュールを使用しましたが、そして、Pocketsphinxを別のモジュールなしで直接使用しました。認識は正確ですが、これらのパッケージが音声を処理するのにかかる長い時間を処理するのに苦労しました。録音が処理されている間、認識のために他の音声を録音することはできません。これは、複数の複雑なコマンドを連続して発行しようとすると問題になる場合があります。
Googleアシスタントの音声認識、Alexaの音声認識、またはMac OS High Sierraのオフライン認識を見ると、録音を一時停止せずに、発声した単語が認識されているのがわかります。これは、リアルタイム認識、ストリーミング認識、単語単位の認識と呼ばれています。これをPythonで、できればクライアントを使用せずにオフラインで行う方法はありますか?
SpeechRecognitionレコグナイザの一時停止しきい値、発話しきい値、非発話しきい値を変更することでこれを達成しようとしましたが(失敗しました)、オーディオが奇妙にセグメント化され、各認識の後にもう一度録音する前に1秒必要でした。
Pocketsphinxはストリームを処理できます。ここを参照してください
Kaldiはストリームも処理できます(pocketsphinxよりも正確です)
https://github.com/alphacep/kaldi-websocket-python/blob/master/test_local.py
GoogleスピーチAPIはストリームを処理することもできます。ここを参照してください: