Подтвердить что ты не робот

Не удается заставить текст в речь работать

Я получаю следующее сообщение, когда я пытаюсь выполнить код ниже:

2014-07-28 13: 19: 14.251 MySingleView [3750: 461865] Ошибка инициализации речи: 2147483665

Я делаю что-то неправильно или это ошибка?

Я запускаю это в симуляторе iPad 2 на моем Mac, на котором работает Mavericks, используя Xcode6 - Beta 4.

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)
    }
}
4b9b3361

Ответ 1

Симуляторы iOS 8 не поддерживают перевод текста в речь. Тем не менее, симуляторы iOS 7 по-прежнему поддерживают преобразование текста в речь (по крайней мере, с Xcode 6.1), поэтому, если ваше приложение работает под iOS 7, вы можете протестировать его на своем рабочем столе.

Ответ 2

Как и в XCode 6.0.1, симулятор, похоже, вообще не работает с AVSpeechSynthesizer. Если вы получите сообщение об ошибке вроде этого, это проблема симулятора, а не проблема с программой. Он должен хорошо работать на любом совместимом устройстве iOS. Перейдите по этой ссылке - https://github.com/brettdidonato/TextToSpeech/blob/master/README.md. У меня такая же проблема в симуляторе iOS 8.0. Но отлично работает на устройстве iOS.

Ответ 3

Text-to-speech работает с симулятором iOS8.4, а не другими симуляторами 8.X.

Ответ 4

попробуйте это 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)
            }
        }