3

4.3 이전의 모든 Android 버전에서 android.tts.TtsService 패키지에 속한 Google의 TTS (텍스트 음성 변환) 서비스 이름은 GoogleTTSService입니다.JellyBean 4.3의 GoogleTTSService 이름은 무엇입니까?

따라서 Android 4.2 이하를 실행하는 기기에서 실행중인 서비스 목록을 검사하면 그 중 com.google.android.tts.GoogleTTSService이 표시됩니다.

하지만 안드로이드 4.3에서 변경된 것 같아요, 내 장치에 나열된 많은 서비스 중에서 더 이상 해당 서비스 이름을 찾을 수 없습니다.

새 이름이 무엇입니까? 다른 서비스의 일부입니까?

업데이트 : 그것은 서비스의 패키지 이름이 4.3 android.speech.tts.TextToSpeech에 2.X에서 android.tts.TtsService에서 이름이 변경되었습니다 것으로 보인다. 이는 올바른 방향으로 나아가는 단계이지만 Google 엔진의 실제 이름은 아직 없습니다.

아이디어가 있으십니까?

당신은 다음과 같은 방법으로 어떤 TTS 엔진의 패키지를 발견 할 수
+0

가능한 중복 [어떻게 안드로이드 4.3에서 TTS 서비스의 패키지 이름을 찾으려면?] (http://stackoverflow.com/questions/19192252/how-to-find-the-package-name-of-the-tts-service-in-android -4-3) – CommonsWare

답변

1

:

TextToSpeech tts = new TextToSpeech(context, onInitListener); 

을 그 다음의 onInit 리스너에 : 내 경험에서

 @Override 
     public void onInit(final int status) { 

      switch (status) { 

      case TextToSpeech.SUCCESS: 

       try { 

        final String initEngine = tts.getDefaultEngine(); 

    // Output the engine to the log if it's != null 

       } catch (final Exception e) { 

       } 

     break; 
    } 
} 

를, 엔진이 때때로 반환 할 수 있습니다 null 또는 충돌 onInit 후에 너무 빨리 호출되면 try/catch 블록으로 둘러 쌀 것을 권장합니다. 이것은 일부 IVONA 및 SVOX TTS 엔진에서만 발생하지만 물론 사용자가 기본값으로 사용할 수 있습니다.

1

this에 따르면 Android 4.2에서는 올바르게 처리되지 않는 ACTION_CHECK_TTS_DATA 인 텐트를 사용 중일 수 있습니다.

ACTION_CHECK_TTS_DATA 의도를 제거하고 대신 음성 데이터의 설치 여부를 나타내는 TextToSpeech.isLanguageAvailable() 메서드를 사용합니다. 문제에 관련이있을 수 있습니다

추가 유용한 정보 :

  • 에 액세스 Google Now voice 안드로이드 TTS API를 사용하여
  • 안드로이드에서 Offline 음성 인식 (젤리 빈)