Definieren Sie ein neues Schlüsselwort in Pocket Sphinx

Ich bin sehr neu in diesem.
Was ich machen möchte ist:

In der Speech To Text-Engine ein benutzerdefiniertes KEYWORD abrufenals es erkannt wurde, macht meine App etwas

Ich lese PocketSphinix und kann meins nicht finden. Ich finde es auch schwierig. Deshalb ziehe ich es vor, es zu ändern und das Standard-zu verwenden.

Jetzt ist mein Problem: Wie kann ich ein neues Schlüsselwort "Mein Telefon" in der * .gram-Datei definieren?

Dies ist mein Code - ich habe ihn genommenHie:

import android.app.Activity;
import android.os.Bundle;
import android.speech.RecognitionListener;
import android.speech.SpeechRecognizer;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.IOException;

import edu.cmu.pocketsphinx.Assets;
import edu.cmu.pocketsphinx.Hypothesis;
import edu.cmu.pocketsphinx.SpeechRecognizerSetup;

/**
 * Created by Mina Joon jooni on 6/4/2016.
 */
public class PracticeActivity  extends Activity implements RecognitionListener, edu.cmu.pocketsphinx.RecognitionListener {

private static final String DIGITS_SEARCH = "digits";
    private edu.cmu.pocketsphinx.SpeechRecognizer recognizer;

    @Override
public void onCreate(Bundle state)
{
    super.onCreate(state);

    setContentView(R.layout.practice);

    ((TextView) findViewById(R.id.caption_text)).setText("Preparing the recognizer");

    try
    {
        Assets assets = new Assets(PracticeActivity.this);
        File assetDir = assets.syncAssets();
        setupRecognizer(assetDir);
    }
    catch (IOException e)
    {
        // oops
    }

    ((TextView) findViewById(R.id.caption_text)).setText("Say up, down, left, right, forwards, backwards");

    reset();
}

@Override
public void onPartialResult(Hypothesis hypothesis)
{//DO STH
}

@Override
public void onResult(Hypothesis hypothesis)
{
    ((TextView) findViewById(R.id.result_text)).setText("");

    if (hypothesis != null)
    {
        String text = hypothesis.getHypstr();
        Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onError(Exception e) {

}

@Override
public void onTimeout() {

}

@Override
public void onReadyForSpeech(Bundle params) {

}

@Override
public void onBeginningOfSpeech()
{
}

@Override
public void onRmsChanged(float rmsdB) {

}

@Override
public void onBufferReceived(byte[] buffer) {

}

@Override
public void onEndOfSpeech()
{
    reset();
}

@Override
public void onError(int error) {

}

@Override
public void onResults(Bundle results) {

}

@Override
public void onPartialResults(Bundle partialResults) {

}

@Override
public void onEvent(int eventType, Bundle params) {

}

private void setupRecognizer(File assetsDir) throws IOException {
    File modelsDir = new File(assetsDir, "models");

    recognizer = SpeechRecognizerSetup.defaultSetup()
            .setAcousticModel(new File(modelsDir, "en-us-ptm"))
            .setDictionary(new File(modelsDir, "cmudict-en-us.dict"))
            .setRawLogDir(assetsDir).setKeywordThreshold(1e-20f)
            .getRecognizer();

    recognizer.addListener(this);

    File digitsGrammar = new File(modelsDir, "grammar/digits.gram");
    recognizer.addKeywordSearch(DIGITS_SEARCH, digitsGrammar);
}

private void reset()
{
    recognizer.stop();
    recognizer.startListening(DIGITS_SEARCH);
}
}

Wie kann ich den ersten machen?
Bitte hilf mir

Antworten auf die Frage(2)

Ihre Antwort auf die Frage