2017-04-24 6 views
1

TextToSpeech 클래스를 사용하는 앱을 만들고 있습니다. 초기화에 문제가 있습니다 (내 기기는 Android Nougat Nexus 5X 임). 나는 TextToSpeech.OnInitListener 인터페이스 TextToSpeech 초기화 수신기가 작동하지만 TTS 엔진이 초기화되지 않았습니다.

  • 을 구현 내 활동에 tts = new TextToSpeech(this, this);
  • :

    • 내 활동이
    • onCreate 방법은 그래서 같은 TTS를 초기화 private TextToSpeech tts; 필드가 포함

      내 코드는 매우 간단하다 onInit 메서드는 상태가 성공하면 검사를 포함하고 디버그 토스트를 표시하고 말하려고 시도합니다

    일단 TTS 엔진이 초기화되면 디버그 토스트가 표시되고 나중에 말합니다.

    나는 무엇이 다른가 : onInit 메서드는 거의 즉시 호출됩니다, 내 토스트가 표시됩니다 ... 아무것도. 10-15 초 정도 지연되면 내 사랑스런 전화 소리를들을 수 있습니다.

    TTS 엔진을 사용할 준비가되었을 때 onInit 이벤트가 시작되지 않습니까? TTS 엔진이 준비되기를 기다리지 않고 즉시 메서드를 호출하는 이유는 무엇입니까?

    도움 주셔서 감사합니다.

  • 답변

    1

    문제는 Google의 TTS 엔진에 있습니다. 나는 PicoTTS를 사용해 보았는데 잘 작동했다.

    +0

    맞습니다. 피코 TTS는 Google만큼 좋지 않습니다. 삼성의 작품 역시 매력적이다. – natinusala

    +0

    @natinusala 그리고 확실하지 않습니다. 코드로 해결할 수 있습니까? Google은 엔진에서이를 수정해야합니다. – Feelfree

    +0

    나는 그들이해야 할 것 같아.하지만 내 애플 리케이션을위한 좋은 TTS 엔진이 필요할 것이고 나는 구글이 스스로이 이슈를 알아 차리고 고칠 때까지 기다리지 않을 것이다. 나는 다른 무료 엔진을 찾아야 해. – natinusala