Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

AVSpeechSynthesizerの読み上げ速度は、iOSのバージョンによって異なる

More than 3 years have passed since last update.

普通、同じでしょうと思うかもしれませんが、違ったので備忘録的な感じで書いておきます。

- (void)speechTest {
    //初期化
    AVSpeechSynthesizer* speechSynthesizer = [[AVSpeechSynthesizer alloc] init];  

    AVSpeechUtterance *utterance = [AVSpeechUtterance   speechUtteranceWithString:@"ほげほげ"];

    //言語指定
    AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ja-JP"];

    //iOS8の読み上げ速度のみ極端に速いので分岐処理
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_8_3) { 
        //iOS9
        speech.rate = 0.5f; //Max 1.0 - Min 0.1
    } else if(floor(NSFoundationVersionNumber) >    NSFoundationVersionNumber_iOS_7_1) { 
        //iOS8
        speech.rate = 0.05f; //Max 0.1 - Min 0.01?
    } else { 
        //iOS7
        speech.rate = 0.5f; //Max 1.0 - Min 0.1
    }

    [speechSynthesizer speakUtterance:utterance];  

}

最初、Max1.0からMin0.1が設定範囲だと思い、標準の0.5で読み上げ速度を設定していました。
ですが、iOS8の端末のみ極端に読み上げ速度が速くなってしまったので軽く調べてみるとiOSのバージョンによって読み上げ速度が違っていたようです。
iOS9、iOS7のレートは同じにしていますが、厳密には少し速度が違うみたいなので微調整は必須でしょう。

とにかくiOS8を含んでかつ、AVSpeechSynthesizerを使うときは注意です。

参考元
http://tokentoken.com/blog/2015/09/avspeechsynthesizer/

MYamate_jp
Beer geek engineer!!!!!
lifull
日本最大級の不動産・住宅情報サイト「LIFULL HOME'S」を始め、人々の生活に寄り添う様々な情報サービス事業を展開しています。
https://lifull.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away