テキストだけ差し替える方法があるかもしれないけど、読み上げテキストで初期化する方法でも大丈夫。 
import UIKit
import AVFoundation
class ViewController: UIViewController {
    var talker = AVSpeechSynthesizer()
    let talkTxt = "こんにちわ、今日はいい天気ですね"
    let talkText2 = "テキスト2"
    let talkTextEng = "hello"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        // 読み上げ内容を初期化
        var utterance = AVSpeechUtterance(string: talkTxt)
        // 日本語
        utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
        // 読み上げ
        self.talker.speakUtterance(utterance)
        // 2回目
        utterance = AVSpeechUtterance(string: talkText2)
        utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") // defaultは英語なので毎回指定
        self.talker.speakUtterance(utterance)
        // 英語文を日本語で(読める)
        utterance = AVSpeechUtterance(string: talkTextEng)
        utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
        self.talker.speakUtterance(utterance)
        // utterance.speechString = "こんにちわ"  // get onlyなのでテキストのみ差し替えはできない?
        // self.talker.speakUtterance(utterance)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
 
0 件のコメント:
コメントを投稿