【问题标题】:TextToSpeech initialization listener fires but the TTS engine is not initializedTextToSpeech 初始化侦听器触发但 TTS 引擎未初始化
【发布时间】:2017-05-13 03:45:12
【问题描述】:

我正在创建一个使用 TextToSpeech 类的应用程序。我在初始化时遇到问题(我的设备是 Android Nougat Nexus 5X)。

我的代码很简单:

  • 我的活动包含一个private TextToSpeech tts; 字段
  • onCreate 方法像这样初始化 TTS:tts = new TextToSpeech(this, this);
  • 在我的活动中,我实现了TextToSpeech.OnInitListener 接口
  • onInit 方法包含检查状态是否成功,如果成功则显示调试 Toast 并尝试说话

预期的结果是,一旦TTS引擎初始化,就会显示我调试的Toast,然后说话。

我得到的是不同的:onInit 方法几乎立即被调用,我的 Toast 被显示并且......什么都没有。经过 10-15 秒的稳定延迟后,我可以听到我可爱的手机说话了。

当 TTS 引擎准备好说话时,不应该触发 onInit 事件吗?为什么不等待 TTS 引擎准备好就立即调用该方法?

感谢您的帮助!

【问题讨论】:

    标签: android text-to-speech google-text-to-speech


    【解决方案1】:

    问题出在 Google 的 TTS 引擎上。我尝试使用 PicoTTS,效果很好。

    【讨论】:

    • 你说得对,但 Pico TTS 不如 Google。三星的作品也很有魅力。
    • @natinusala 我不确定,是否可以用代码修复它。 Google 应该在他们的引擎中解决这个问题。
    • 我想他们应该这样做,但我的应用需要一个好的 TTS 引擎,而且我不会等待 Google 自己发现并解决这个问题。我需要找到另一个免费引擎
    • @natinusala 你让这个工作了吗?我在初始化 TTS 引擎时遇到问题。我不断收到 TextToSpeech.ERROR = -1 并且 onInit 状态始终为 -1。
    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 2013-05-20
    • 2021-11-11
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多