-8

音声認識を使用して、ユーザーが文字を言うスペリング ゲームを作成したいと考えています。たとえば、ユーザーは「S」「T」「A」「C」「K」と発声します。

これを実現するために PocketSphinx を使用しています。これが私のコードです:

File modelsDir = new File(assetsDir, "models");
        recognizer = defaultSetup()
                .setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
                .setDictionary(new File(modelsDir, "dict/cmu07a.dic"))
                .setRawLogDir(assetsDir).setKeywordThreshold(1e-20f)
                .getRecognizer();
        recognizer.addListener(this);

        // Create keyword-activation search.
        recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE);
        // Create grammar-based searches.
        File menuGrammar = new File(modelsDir, "grammar/menu.gram");
        recognizer.addGrammarSearch(MENU_SEARCH, menuGrammar);
        File digitsGrammar = new File(modelsDir, "grammar/digits.gram");
        recognizer.addGrammarSearch(DIGITS_SEARCH, digitsGrammar);
        // Create language model search.
        File languageModel = new File(modelsDir, "lm/weather.dmp");
        recognizer.addNgramSearch(FORECAST_SEARCH, languageModel);

ユーザーが発した文字をどのように認識するのですか?

または、これを達成するために使用できるライブラリはありますか?

4

2 に答える 2

2

現在、認識エンジンに 2 つのグラマーをロードしています。digits.gram には数字が含まれていると思います。

File menuGrammar = new File(modelsDir, "grammar/menu.gram");
recognizer.addGrammarSearch(MENU_SEARCH, menuGrammar);
File digitsGrammar = new File(modelsDir, "grammar/digits.gram");

それで、あなたができることは、ファイルletter.gramを作り、それをあなたのプログラムにロードすることだと思います

#JSGF V1.0;
grammar speech;
public <speech> = A |
                  B | 
                  C; 

コード:

File letterGrammar = new File(PUT CORRECT PATH WITH FILE NAME);
recognizer.addGrammarSearch("speech", letterGrammar);
于 2014-11-07T21:13:03.993 に答える
2

JAVA を使用しているため、プロジェクトにインポートする必要がある SCANNER というライブラリがあります。

import java.util.Scanner;


public static void main(String[]arguments){

char x, y, z;

 Scanner input = new Scanner (System.in);

 System.out.print("Enter a letter");
 x = input.nextChar();
 y = input.nextChar();
 z = input.nextChar();

}

また、ユーザーが何文字書く必要があるかに応じて、ループを使用する必要があります。

于 2014-11-07T13:30:01.923 に答える