PocketSphinx for Android を使おうとする前は、Google の音声認識 API を使用していました。検索名や辞書ファイルを設定する必要はありませんでした。言われたすべての単語を認識しました。
Google API は、大規模ではあるものの、限られた単語セットも認識します。長い間、「Spotify」を認識できませんでした。Google オフライン音声認識エンジンは、出版物で説明されているように、約 50,000 語を使用します。
質問したいのですが、いくつかの検索名を設定するにはどうすればよいですか? または、利用可能なすべての単語 (または大量の単語) を認識するように設定するにはどうすればよいですか? 誰かが大量の単語を含む辞書ファイルを持っているのではないでしょうか?
デモには、言語モデル (予測部分) を使用した大語彙音声認識が含まれています。En-US generic language modelなど、ダウンロード可能な英語用のより大きな言語モデルがあります。
認識を実行する簡単なコードは次のとおりです。
recognizer = defaultSetup()
.setAcousticModel(new File(assetsDir, "en-us-ptm"))
.setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
.getRecognizer();
recognizer.addListener(this);
// Create keyword-activation search.
recognizer.addNgramSearch(NGRAM_SEARCH, new File(assetsDir, "en-us.lm.bin"););
// Start the search
recognizer.startListening(NGRAM_SEARCH);
ただし、デバイスに合わせてリアルタイムでデコードするのは簡単ではありません。語彙の多い音声をリアルタイムでデコードしたい場合は、オーディオをサーバーにストリーミングする必要があります。または、語彙と言語を一般的な英語の小さなサブセットに制限する必要があります。CMUSphinx での音声認識の詳細については、チュートリアルを参照してください。