問題タブ [sphinx4]
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.
eclipse - 音声による運動制御
私の目的は、ユーザーからの音声入力を使用してモーターを制御することです。したがって、音声認識部分については、Eclipse Java IDE (標準バージョン) で Sphinx 4 ライブラリを使用しています。私のオペレーティングシステムはWindows 7です。私の認識部分は終わったので、sphinx 4プログラムはユーザーが話す文字列を出力します。次の部分は、制御プラットフォーム (マイクロ コントローラー) との通信を実現することです。このために、Arduino Duemilanove または Arduino UNO を使用する予定です。しかし、Arduinoボードと通信する方法や、認識された文字列をArduinoボードに送信する方法さえわかりません。この問題を克服するために誰かが私を助けてくれれば幸いです。
java - Java Sphinx「答えそのもの」
Java 用の Sphinx 音声認識ライブラリに問題があります。入力を取得して処理するために使用しています。初めて入力を取得すると、機能します。2 回目は、私が話す機会を得る前に、すぐに応答します。その後、それはただ自分自身に答え続けます。すべての入力の前に割り当てを試み、すべての入力の後に割り当てを解除しようとしましたが、うまくいかないようです。私に何ができる?
コード:
これは、入力の取得を処理するメソッドです。
知っておくべきこと:
- これは a から a
MouseListener
に対して呼び出されていTrayIcon
ます。 speak(String)
から実行say <text>
されますRuntime
。matchInput(String)
配列内のすべての登録済みリスナーを反復処理し、一致するかどうかをテストします。
更新 2 :
Nikolay Shmyrev の回答に従って、コンストラクターでマイクを割り当て、適切なタイミングでマイクを開始してから停止しようとしましたgetInput()
。
SphinxBridge クラスは次のとおりです。
ただし、これはまだ機能しません。まず、正常に動作します。ただし、その後のすべての時間についてはSpeak now
、Try again
同時に言う。
解決:
上記のコードから、単純に追加しました
録音を開始するラインの上。
speech-recognition - Sphinx-4 を使用したディクテーションによる文法
私は Sphinx-4 を使用して音声をテキストに変換していますが、アプリケーションが文法を認識してから、口述された一連の単語を認識する必要があります。
たとえば、次の文法があります。
「こんにちは」と言ってから Joan (または他の名前) を言うと、「Hello Joan」というテキストが返されます。
Sphinx4 を使用した Dictation Applicationのトピックを見ましたが、設定を変更すると常に が返され<unk>
ます。これは正しいステップですか?はいの場合、何が間違っていますか?
java - Java Sphinx による動的な文法規則の設定
私は Sphinx ライブラリを使用するプロジェクトに取り組んでおり、文法規則を動的に変更したいと考えていました。たとえば、ルールを追加したいopen (Safari|Firefox)
が、何かが起こった後にのみ追加したいとします。JSGFGrammer
ソースファイルで次のコメントに出くわすまで、これが可能だとは思いませんでした。
JSAPI レコグナイザーとは異なり、JSGF Grammar は 1 つの Rule Grammar のみを維持します。この制限は将来的に緩和される可能性があります。認識の進行中は、文法を変更しないでください。JSGFGrammar.loadJSGF を呼び出すと、完全に新しい文法が読み込まれ、古い文法や変更が破棄されます。commitChanges への呼び出しは必要ありません (ただし、このような呼び出しはこの状況では無害です)。RuleGrammars は、RuleGrammar.setEnabled および RuleGrammar.setRule への呼び出しによって変更できます)。これらの変更を行うには、すべての文法変更が行われた後に JSFGGrammar.commitChanges を呼び出す必要があります。
これを Sphinx 関連のオブジェクトの構築に追加しようとしました。
単語をルールとして追加したいtest
ので、それを認識します。ただし、開始すると、に関連するルックアップ行につながる NullPointerException が発生しjsgfGrammar
ます。これを正しく行うにはどうすればよいですか?
更新 1 :
微調整を行った後、次の行に NPE が表示されるようになりました。
いくつかのテストを行ったところ、getRuleGrammar()
null が返されていることがわかりました。私は何をしますか?
更新 2 :
文法を割り当てることで NPE を取り除くことができることを発見しました。ただし、次の例外が発生します。
これは新しいコードです:
sphinx4 - result.getTimedBestResult() から wordToken タイムスタンプを取得する
一般的なビデオ用の字幕ジェネレーターを作成中です。主なブロッカーの 1 つは、各単語のタイムスタンプをビデオに合わせて取得することです。結果クラスには、単語 (タイムスタンプ) の形式で何かを返すことになっている getTimedBestResult() 関数があります (例: the(0:20-0:22))。私がそれを呼び出す瞬間に、「WordToken one null」のような出力が得られます.1は認識されている単語で、nullはタイムスタンプであるはずです。私はドキュメントを読みましたが、今のところ解決策にたどり着くことができませんでした。
私は、hub4 モデルと CMUdict0.6 を使用します。それが重要であれば、wordPruningBreadthFirstSearchManager (lexTree リンギスト) と共に使用します。config.xmlで何か間違ったことをしているかどうかはわかりませんが、
返信ありがとうございます
speech-recognition - ディクテーションに使用する言語モデル
sphinx4 をディクテーション モードで使用する予定ですが、言語モデルについて質問があります。私のアプリケーションには非常に多くの語彙があります。つまり、すべての英単語を使用できますが、どのフレーズが発せられるかわかりません。では、どのモデル言語を使用すればよいでしょうか? Sphinx4 には、これらのケース用の特定の言語モデルがありますか?