无法让文字转语音起作用

时间:2014-07-28 17:47:31

标签: swift

我在尝试以下代码时收到以下消息:

2014-07-28 13:19:14.251 MySingleView [3750:461865]语音初始化错误:2147483665

我做错了什么,或者这是一个错误?

我在使用Xcode6-Beta 4运行Mavericks的Mac上运行iPad 2模拟器。

import UIKit
import AVFoundation

class ViewController: UIViewController {
    var voice = AVSpeechSynthesizer()

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func buttonPushed(sender: UIButton) {
        var utterance = AVSpeechUtterance(string:"This is a test")
        voice.speakUtterance(utterance)
    }
}

4 个答案:

答案 0 :(得分:17)

iOS 8模拟器不支持文本到语音转换。但是,iOS 7模拟器仍然支持文本到语音转换(至少从Xcode 6.1开始),所以如果您的应用程序在iOS 7下运行,您可以在桌面上进行测试。

答案 1 :(得分:1)

从XCode 6.0.1开始,模拟器似乎根本无法与AVSpeechSynthesizer一起使用。如果您收到错误消息,则表示模拟器问题,而不是程序问题。它应该适用于任何兼容的iOS设备。 请参阅此链接 - https://github.com/brettdidonato/TextToSpeech/blob/master/README.md。 我在iOS 8.0模拟器中遇到了同样的问题。但在iOS设备上工作正常。

答案 2 :(得分:1)

Text-to-speech is working with iOS8.4 simulator not the other 8.X simulators.

答案 3 :(得分:0)

试试这个 的 Swift3

        import UIKit
        import AVFoundation

        class ViewController: UIViewController, AVSpeechSynthesizerDelegate {

            override func viewDidLoad() {
                super.viewDidLoad()
            }

            override func didReceiveMemoryWarning() {
                super.didReceiveMemoryWarning()
            }

            @IBAction func buttonPushed(sender: UIButton) {
                var utterance = AVSpeechUtterance(string:"This is a test")
                utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
                var voice = AVSpeechSynthesizer()                
                voice.delegate = self 
                voice.speak(utterance)
            }
        }