Как использовать карманный сфинкс для прослушивания слов в словаре? - PullRequest
0 голосов
/ 23 октября 2019

это мой код

    @Throws(IOException::class)
private fun setupRecognizer(assetsDir: File) {
    // The recognizer can be configured to perform multiple searches
    // of different kind and switch between them
    val listener = object: RecognitionListener {
        override fun onResult(hypothesis: Hypothesis?) {
            if (hypothesis != null) {
                val text = hypothesis.getHypstr()
                Log.i("speech result", text)
            }
        }

        override fun onPartialResult(p0: Hypothesis?) {
            val message = "" + p0?.hypstr
            Log.i("speech p result", message)
        }

        override fun onTimeout() {

        }

        override fun onBeginningOfSpeech() {
            Log.i("speech", "began")
        }

        override fun onEndOfSpeech() {
            //if (recognizer.searchName != KWS_SEARCH)
               // switchSearch(KWS_SEARCH)
        }

        override fun onError(p0: Exception?) {

        }
    }
    recognizer = SpeechRecognizerSetup.defaultSetup()
        .setAcousticModel(File(assetsDir, "en-us-ptm"))
        .setDictionary(File(assetsDir, "cmudict-en-us.dict"))
        .recognizer

    recognizer.addListener(listener)

}

Я добавил слушателя в распознаватель, теперь я хочу начать слушать речь и преобразовывать ее в текст, я не хочу выполнять поиск по ключевой фразекак recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE) это, вместо этого я хочу, чтобы сфинкс прослушивал слова и сопоставлял их со словами, присутствующими в cmudict-en-us.dict в этом файле словаря, как я могу это сделать? Я просто хочу, чтобы сфинкс сопоставил фонетику со словами, присутствующими в файле .dict, возможно ли этого добиться?

...