昔MacでTextToSpeechってあったよねー。
懐かしい。
それはさておき、iPhoneでテキストを読ませたいと思います。
参考サイト
AVSpeechSynthesizer – AVFoundation | Apple Developer Documentation
[Swift] iOS でテキストの読み上げをする – Qiita
みんな大好き`AVSpeechSynthsizer`について – Qiita
AVSpeechSynthesizer による音声読み上げ
[Swift] AVSpeechSynthesizerで読み上げ機能を使ってみる | Developers.IO
AVFoundationを使うのでインポート。
デリゲートを使うならAVSpeechSynthesizerDelegate。
import UIKit import AVFoundation class ViewController: UIViewController,AVSpeechSynthesizerDelegate { (中略) func utter(str:String) { let speech = AVSpeechSynthesizer() let utterance = AVSpeechUtterance(string: str)//読み上げる文字 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")//読み上げの言語 utterance.rate = 0.4 //読み上げの速度 utterance.pitchMultiplier = 1.2 //声の高さ utterance.preUtteranceDelay = 0 //読み上げまでの待機時間 utterance.postUtteranceDelay = 0 //読んだあとの待機時間 speech.delegate = self speech.speak(utterance) //発話 } // デリゲート // 読み上げ開始したときに呼ばれる internal func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didStart utterance: AVSpeechUtterance) { print("読み上げ開始") } // 読み上げ終了したときに呼ばれる internal func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) { print("読み上げ終了") } }
読み上げ実行中かどうか
speech.isSpeaking
途中で止める場合
speech.stopSpeaking(at: AVSpeechBoundary.immediate)