【问题标题】:iOS Swift - Text to Speech make the app crashiOS Swift - 文本到语音使应用程序崩溃
【发布时间】:2016-12-14 11:09:54
【问题描述】:

单击按钮时,我有一个具有文本到语音功能的应用程序。我的代码运行良好,直到它使应用程序崩溃。我认为这个错误一定与 iOS 9.3.3 的新版本有关,但我在网上找不到任何东西,这就是我在这里发帖的原因。

这里是一个按钮触发的功能:

func textToSpeech(){

  let textSynthesizer = AVSpeechSynthesizer()

  let utterance = AVSpeechUtterance(string: self.targetLanguage)

  utterance.voice = AVSpeechSynthesisVoice(language: self.languageFlag)

  textSynthesizer.speakUtterance(utterance)

}

当我单击按钮时,我在 AVSpeechSynthesizer 初始化时收到此错误:

在控制台中: (lldb)

有人知道如何解决这个问题吗? 谢谢, 亚历克斯

【问题讨论】:

  • 如果您为self.targetLanguageself.languageFlag 添加了prints,他们会怎么说...?
  • 是的,我已经检查过了,我得到了每个不为空的字符串的值(几个月前我写的代码工作正常)。 self.targetLanguage 是翻译成目标语言的单词,self.languageFlag 是语言的区域设置(由 TTS 支持)。
  • 你有没有想过解决这个问题?我在 iOS 10 上看到了同样的情况。它不会每次都发生,但它经常发生。自 iOS 7 以来,我一直在大量使用 AVSpeechSynthesizer,并且最近没有对我的语音代码进行任何更改。

标签: ios swift crash text-to-speech avspeechsynthesizer


【解决方案1】:

试试这个 -:

    func text2Speech(text: String,languageCode: String) {
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback,mode: .default)
        
    } catch let error {
        print("\(error.localizedDescription)")
    }
    let speechUtterance: AVSpeechUtterance = AVSpeechUtterance(string: text)
    speechUtterance.rate = AVSpeechUtteranceMaximumSpeechRate / 2.0
    speechUtterance.voice = AVSpeechSynthesisVoice(language: languageCode)
    
    speechSynthesizer.speak(speechUtterance)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多