問題タブ [system.speech.recognition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 精度を犠牲にしてもC#System.Speech.Recognitionの認識速度を向上させる方法は? ライブ音素認識エンジンの作成
ユーザーがマイクに向かって話すと、音素のライブ フィードを出力する必要がある小さなアプリケーションを作成しています。私の場合、精度よりも認識出力の速度が最優先事項です。C# の使用が優先されますが、別の言語やライブラリ (CMUSphinx など) を使用してより高速に処理できる場合は、切り替えます。
System.Speech.Recognition
とを併用DictationGrammar("grammar:dictation#pronunciation")
することで、マイクに向かって話すと音素を出力するシンプルで効果的な音素認識エンジンを作成できました。これは一般的に非常に正確です (SpeechRecognitionEngine.SpeechHypothesized
イベントにサブスクライブすると、ライブ出力を見ることができます)。問題は、ユーザーの発声と出力の間に最小で約 0.5 秒の遅延があり、プロジェクトでうまく機能しないことです。特に精度が高いことを考えると、一般的にこれはかなり高速であることはわかっていますが、精度が大幅に低下したとしても、もっと速いものが本当に必要です. SpeechRecognitionEngine
仮説をより速く吐き出すために、ウィンドウから精度を捨てるように構成する方法はありますか? を使用して公開された設定をいくつか見つけましSpeechRecognitionEngine.UpdateRecognizerSetting
たが、音素認識の出力にはほとんど影響がないようです。
私はまた、CMUSphinx という有望な音声認識プロジェクトも調査しました。Sphinx4 は Java のテストをコンパイルしてセットアップするのは簡単でしたが、音素をライブで出力するように構成する方法がわかりませんでした。単語認識は比較的遅かったです。ここでは、彼らの別のプロジェクトである pocketphinx を使用した音素認識に関するいくつかのメモを見つけました。ダウンロードしてコンパイルすることもできましたが、テストを正常に実行できませんでした。CMUSphinx や Pocketsphinx を音素で使っている人はいますか? 高速のライブ出力が可能ですか? それとも、さらに多くの代替手段がありますか?私は本当に非常に基本的なものを探していますが、高速です。
編集:音素を認識するポケットスフィンクスを取得できましたが、プロジェクトで使用するには遅すぎました
c# - .NET の System.Speech SpeechRecognitionEngine クラスでの MemoryStream の使用
.NET の System.Speech SpeechRecognitionEngine オブジェクトを使用して、不和ユーザーが音声チャネルで話した言葉を認識しようとしています。ボットが受信した生の pcm オーディオは MemoryStream に書き込まれ、SpeechRecognitionEngine がこのストリームを認識に使用できるようにしようとしています。このデータの取得と書き込みは正常に機能しますが、SpeechRecognitionEngine での使用は複数の理由で機能しないようです。1 つは、ストリームが無限ではなく、認識エンジンがストリームの最後に到達し、単語が発話される前に停止することです。データが常にストリームに追加されている (つまり、ユーザーが話し続けている) 場合でも、レコグナイザーはストリームの最後に到達し、続行を拒否します。もう 1 つの問題は、認識を実行するメソッドが複数回実行できないように見えることです。私' ストリームをチャンクで認識エンジンに供給しようとしましたが、うまくいかなかったようです。入力をデフォルトのオーディオデバイスに設定するオプションがあり、それは私が望むとおりに機能し、ユーザーが入力を提供しなくても常に実行され、停止しません。何か助けはありますか?
別のプログラムでは、pcm データを「ストリーム」に書き込みます。構文エラーがある場合は、コードを単純化するためにコピーして貼り付けるのではなく、コードを手動でコピーしたことが原因です。ありがとうございました!
c# - ホストされた Web サイトでの .Net Core を使用した System.Speech
を使用する .Net Core 3.1 で Web API を作成しましたSystem.Speech
- これは .Net Core Nuget Package hereで実行されますが、API がライブラリを使用しているときに 500 エラーが発生します。
エラーの内容は次のようになります。
これはSystem.Speechへの参照とは何の関係もないと思いますが、私のホスティング プロバイダーは次のように述べています。
System.Speech を .net Web アプリケーションで使用する場合、アプリケーション プール ID の LocalSystem が必要です。より良い解決策はありません。おそらく、プロジェクトで個別に機能する別の音声ライブラリを試すことができます。
これは論理的ですか、それとも.Net Coreパッケージであるため、完全に自己完結型であり、それを必要としませんか?
さらに重要なことに、このライブラリを使い続けることができるように修正する方法はありますか?
背景の詳細については、ここに投稿された他の質問も参照してください。