AVSpeechSynthesizer でテキスト読み上げ
AVFoundation の AVSpeechSynthesizer クラスを使うと、テキスト(文字列)を音声で読み上げることができるのでメモ。
サンプル
最低限以下で読み上げができる。
import AVFoundation // シンセサイザーを準備する let synthesizer = AVSpeechSynthesizer() // 発音を準備する let utterance = AVSpeechUtterance.init(string: "サンプルテキスト") let voice = AVSpeechSynthesisVoice.init(language: "ja-JP") utterance.voice = voice // 再生する synthesizer.speak(utterance) // 停止する synthesizer.stopSpeaking(at: .immediate) // 即時停止 // もし、ワード(単語)単位で停止させたい場合は以下 // synthesizer.stopSpeaking(at: .word) // 単語単位で停止
日本語以外、例えば英語を読み上げしたい場合は以下の様にする。
let utterance = AVSpeechUtterance.init(string: "Sample Text.") let voice = AVSpeechSynthesisVoice.init(language: "ja-JP") utterance.voice = voice
リポジトリ
テストしたコードは GitHub にある↓ github.com
おわり