Swiftで遊ぼう! - 859 - AVSpeechSynthesizer
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- 初心者はここから!-> 50オヤジでもできるiOS開発
- 私の本業、オフィシャルなブログ-> Life-LOG
- Swift 3 対応
オリジナルアプリ... どうしようか考えています。
色々アイディアはあるけど、複雑なアプリばかり考えてしまって形にできません。
そこでとてもシンプルなアプリを作ることにしました。
そのために資料集めをします。今日はAVSpeechSynthesizerです。本当に簡単に喋らせることができました。こういうテストコードも簡単に理解できるようになった自分に驚きです。
Viewに設置するオブジェクトは「UITextView」と「UIButton」です。そしてUIViewControllerに次のコードを書くんです。
import UIKit import AVFoundation class ViewController: UIViewController, UITextFieldDelegate, AVSpeechSynthesizerDelegate { @IBOutlet weak var speechText: UITextField! var talker = AVSpeechSynthesizer() override func viewDidLoad() { super.viewDidLoad() self.speechText.delegate = self self.talker.delegate = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func textFieldShouldReturn(_ textField: UITextField) -> Bool { speechText.resignFirstResponder() return true } @IBAction func speech(_ sender: UIButton) { // 話す内容をセット let utterance = AVSpeechUtterance(string: self.speechText.text!) // 言語を日本に設定 utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") // 話す速度(0.0 - 1.0) utterance.rate = AVSpeechUtteranceMinimumSpeechRate // 声の高さ(0.5 - 2.0) utterance.pitchMultiplier = 1.0 // 実行 self.talker.speak(utterance) } // 以下のメソッドがデリゲートメソッドです。 func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didStart utterance: AVSpeechUtterance) { print("開始") } func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) { print("終了") } }