2017年4月20日木曜日

AVSpeechSynthesizerでテキスト読み上げ

 テキストだけ差し替える方法があるかもしれないけど、読み上げテキストで初期化する方法でも大丈夫。

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 件のコメント:

コメントを投稿