iOS Swift - 文本到语音使应用程序崩溃

Posted

技术标签:

【中文标题】iOS Swift - 文本到语音使应用程序崩溃【英文标题】:iOS Swift - Text to Speech make the app crash 【发布时间】: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,并且最近没有对我的语音代码进行任何更改。 【参考方案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)

【讨论】:

以上是关于iOS Swift - 文本到语音使应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如何从语音中保存文本文件

如何使标签文本中的链接可用于语音(可访问性)? (iOS,Xamarin)

如何将元数据谷歌语音传递给文本 api - swift ios

无法从 UITextField 获取文本 - Swift - iOS

在 iPad mini 中使用语音听写时 100% iPhone 应用程序崩溃

如何通过 Objective-C 中的 Speech 框架实现语音到文本?