1

私の名前はmasoudです。今、私が言いたいのはmasoud、私のアプリがコンソールログを出力することです。

これを行うために、mdic.txtファイルを作成し、その中に自分の名前を入れました:

マスード MA SOD

に変更mdic.txtmdic.dictて、assets/syncdirecotry に置きました。

ファイルを作成し、cm.txtその中に文字列を入れました:

#JSGF V1.0;
/**
 * JSGF Grammar for Hello World example
 */
grammar masoud;
public <greet> = (good morning | masoud) ( bhiksha | evandro | paul | philip | rita | will );

に変更cm.txtしましたcm.gram

私のMainActivityで

private void setupRecognizer(File assetsDir) throws IOException {
    // The recognizer can be configured to perform multiple searches
    // of different kind and switch between them

    recognizer = SpeechRecognizerSetup.defaultSetup()
            .setAcousticModel(new File(assetsDir, "en-us-ptm"))
            //.setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
            .setDictionary(new File(assetsDir, "mdic.dict"))
            //.setRawLogDir(assetsDir) // To disable logging of raw audio comment out this call (takes a lot of space on the device)
            .setKeywordThreshold(1e-45f) // Threshold to tune for keyphrase to balance between false alarms and misses
            .setBoolean("-allphone_ci", true)  // Use context-independent phonetic search, context-dependent is too slow for mobile


            .getRecognizer();
    recognizer.addListener(this);

    /** In your application you might not need to add all those searches.
     * They are added here for demonstration. You can leave just one.
     */

    // Create keyword-activation search.
    //recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE);

    recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "mdic.dict"));

今、私はこのメッセージを受け取りました:

"dict.c"、195 行目: 1 行目: 音響モデルに音名 'MA' がありません。単語 'masoud' は無視されました "kws_search.c"、171 行目: 単語 'masoud' が辞書にありません

行でこのエラーが発生しましrecognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "mdic.dict"));た。

4

1 に答える 1

1

masoud の正しい表記は「M AH S UW D」です。

アコースティックモデルにはフォーンMAはありません。エラーはそれについて述べています。

于 2016-09-16T06:42:21.783 に答える