2013-02-14 3 views
1

Android에서 Google TTS를 사용하여 오프라인 음성 인식이 가능하고 그 작업을 시도했지만 성공하지 못했는지 확인하고 싶습니다. 나는 사용자가 전화에 '마법의 말'을 말하도록 요구하는 Android 앱을 개발 중입니다. 전화가 올바른 단어를들을 때 응답합니다. 음성 인식은 네트워크에 연결되어 있으면 완벽하게 작동하지만 오프라인으로 작동시켜야합니다.embeddedTTS를 사용하여 Android에서 오프라인 음성 인식

안드로이드 설명서를보고 나서이 문제가 발생했습니다 : [KEY_FEATURE_EMBEDDED_SYNTHESIS] [1] getFeatures (Locale)를 사용하여 기능을 검색하여 엔진이 지원하는 기능을 확인했습니다. Google Text-to-speech 엔진 용 embeddedTts 및 networkTts라는 두 가지 기능이 반환되었으므로 embeddedTts 기능을 사용할 수 있습니다. 아래 코드 3 행에서 Android 설명서에 따라이 기능을 사용할 수 있지만 아무 효과가없는 것 같습니다. 또한 networkTts 기능을 false로 설정하려고 시도했지만 동작을 변경하지 않았습니다. 데이터 네트워크에 연결되어 있지 않을 때마다 "현재 Google에 연결할 수 없습니다"라는 오류 메시지가 나타납니다.

여기 누군가가 embeddedTts 사용 방법을 이해하는 데 도움이되기를 바랍니다.

나는 안드로이드 4.1.1

감사합니다 실행하는 삼성 갤럭시 S3에 내 응용 프로그램을 테스트하고 있습니다. 또한 "TTS"로 알려진 음성 합성 (로 (또한 "음성 인식"과 "음성 - 텍스트"로 알려진) 음성 인식을 혼합하는

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     HashMap<String, String> localSpeech = new HashMap<String, String>(); 
     localSpeech.put(TextToSpeech.Engine.KEY_FEATURE_EMBEDDED_SYNTHESIS, "true"); 
      if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
     // Fill the list view with the strings the recognizer thought it could have heard 
     ArrayList<String> matches = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 
     if (matches.size() == 0) 
     { 
      tts.speak("Heard nothing", TextToSpeech.QUEUE_FLUSH, null); 

     } else { 
      String mostLikelyThingHeard = matches.get(0); 
      String magicWord = "Magic"; 
      if (mostLikelyThingHeard.equals(magicWord)) { 
       //tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, null); 
       tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, localSpeech); 
      } else { 
       tts.speak("The magic word is not " + mostLikelyThingHeard + " try again", TextToSpeech.QUEUE_FLUSH, localSpeech); 
      } 
     } 

    } 
    else { 
     Log.d("APP", "result NOT ok"); 
    } 

    super.onActivityResult(requestCode, resultCode, data); 
} 

답변

1

: 여기

는 관련 코드 및 "텍스트 음성 변환"). 질문에 대답하기 위해 음성 합성 API를 사용하여 음성 인식을 구현할 수 없습니다.

+0

음 ... "음성 인식"을 오프라인으로 사용하는 방법이 있습니까? – Alek

+0

@Alek이 질문은 여러 번 묻습니다 "안드로이드 오프라인 음성 인식" – Kaarel

+0

검색하고 모든 대답은 CMUSphinx 또는 PocketSphinx 같은 타사 도구를 사용하는 것이 좋습니다. 외부 도구를 사용하지 않고 네이티브 방식으로 수행 할 방법이 없습니까? – Alek