web-dev-qa-db-fra.com

Swift text to speech

J'ai un bloc de code qui ne fonctionne pas, mais qui ne me donne pas non plus d'erreur d'exécution. Il n'y a tout simplement pas de discours sortant de l'orateur.

let synth = AVSpeechSynthesizer()
var myUtterance = AVSpeechUtterance(string: audioTextField.text)
myUtterance.rate = 0.3
synth.speak(myUtterance)

Y a-t-il un code que je manque ou est-ce autre chose? Une aide serait très appréciée.

Edit: Il ne fonctionne dans aucune @IBActions, mais fonctionne bien dans la fonction de chargement de la vue ....

override func viewDidLoad() {
    super.viewDidLoad()
    speechRecognizer?.delegate = self
    timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(tick), userInfo: nil, repeats: true)
    tick()
    requestSpeechAuth()
//WORKS HERE
}

@IBAction func audioButtonPressed(_ sender: Any) {
//DOESN"T WORK HERE    
    if isRecording {
        stopRecording()
    } else {
        startRecording()
    }
}
13
Saransh Malik

Ce code fonctionne (à partir de Apple docs)

let string = "Hello, World!"
let utterance = AVSpeechUtterance(string: string)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")

let synth = AVSpeechSynthesizer()
synth.speak(utterance)

N'oubliez pas d'importer AVFoundation

import AVFoundation
31
Alex Tarragó