- AVSpeechSynthesizerを使用した基本的なテキスト読み上げ: AVSpeechSynthesizerクラスは、テキストを音声に変換して読み上げるための主要なクラスです。以下のコード例では、シンプルなテキスト読み上げを行う方法を示しています。
import AVFoundation
func speakText(text: String) {
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US") // 読み上げる言語を指定
synthesizer.speak(utterance)
}
// 使用例
speakText(text: "Hello, World!")
- AVSpeechSynthesizerDelegateを使用した進捗情報の取得: AVSpeechSynthesizerDelegateプロトコルを実装することで、テキスト読み上げの進捗情報を取得できます。以下のコード例では、読み上げの開始と完了時にメソッドが呼ばれるように設定しています。
import AVFoundation
class SpeechDelegate: NSObject, AVSpeechSynthesizerDelegate {
func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didStart utterance: AVSpeechUtterance) {
print("読み上げ開始")
}
func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) {
print("読み上げ完了")
}
}
func speakTextWithProgress(text: String) {
let synthesizer = AVSpeechSynthesizer()
synthesizer.delegate = SpeechDelegate()
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
synthesizer.speak(utterance)
}
// 使用例
speakTextWithProgress(text: "Hello, World!")
- AVSpeechUtteranceの設定オプション: AVSpeechUtteranceクラスを使用すると、テキスト読み上げのさまざまな設定オプションを指定できます。以下のコード例では、読み上げの速度や音量をカスタマイズしています。
import AVFoundation
func speakTextWithSettings(text: String) {
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
utterance.rate = 0.5 // 読み上げ速度を設定
utterance.volume = 0.8 // 音量を設定
synthesizer.speak(utterance)
}
// 使用例
speakTextWithSettings(text: "Hello, World!")
これらは、AVKitを使用したテキスト読み上げの基本的な方法とコード例です。必要に応じて、さらに高度な機能や設定を追加することもできます。