iPhoneアプリの作り方、視覚障害者(全盲)にもできる方法勉強中、iPhoneのVoiceOverで「こんにちは」としゃべらせるAVSynthesizer

視覚障害者(全盲)でも、Mac OSのアクセシビリティ機能の一つ「VoiceOver」を使って、iPhoneのアプリを作ることができるかいろいろ調べて試しているところです。

ボタンを3つ作って、タップするとそれぞれ「おはよう」、「こんにちわ」、「こんばんわ」としゃべるアプリを作ってみます。

  1. 前の記事のように操作して、stack viewを張り付けておき、そこに3つボタンを張り付けます。
  2. ボタンの名前をそれぞれ「ohayoButton」、「konnichiwaButton」、「konbanwaButton」にします。
  3. アシスタントエディタを開いて、「ohayoButton」、「konnichiwaButton」、「konbanwaButton」を書きます。
  4. ボタンをタップしたときの関数「sayOhayo」、「sayKonnichiwa」、「sayKonbanwa」を書きます。
  5. アシスタントエディタのそばに出ている「not connected」という警告をCaps + Shift + Cmd + スペースでドラッグ&ドロップしてドキュメントアウトラインのボタンと接続します。
  6. 音声で読み上げさせるためのコードを下記のように書きます。

import UIKit
import AVFoundation // 読み上げに必要

class ViewController: UIViewController {

    @IBOutlet weak var ohayoButton:UIButton!
    @IBOutlet weak var konnichiwaButton:UIButton!
    @IBOutlet weak var konbanwaButton:UIButton!

    let ohayo = AVSpeechUtterance(string: "おはよう")
    let konnichiwa = AVSpeechUtterance(string: "こんにちわ")
    let konbanwa = AVSpeechUtterance(string: "こんばんわ")

    let synthesizer = AVSpeechSynthesizer()

    @IBAction func sayOhayo() {
        synthesizer.speak(ohayo)}

    @IBAction func sayKonnichiwa() {
        synthesizer.speak(konnichiwa)}

    @IBAction func sayKonbanwa() {
    synthesizer.speak(konbanwa)}

    override func viewDidLoad() {
[省略]

参考にしたサイトの例では「synthesizer.speakUtterance」となっていましたが、これではエラーになり、「Utterance」を削除して「synthesizer.speak」にすると実行できました。

この投稿を書いている2016年12月の最新のXcode、iOSで試したものです。



参考



関連投稿