
「音声の再生スピードを調整したい」「倍速でリスニングしたい」「遅くして聞き取りやすくしたい」
そんなときに活躍するのが AVAudioPlayerの enableRate プロパティ です。
enableRateを使うことで、再生速度(rate)を自由に変えることができ、語学学習アプリや音声プレイヤーの「1.5倍速再生」や「ゆっくり再生」など、ユーザー体験をより柔軟に向上できます。
enableRateとは?
enableRate は、AVAudioPlayerで音声の再生速度を調整したいときに使うプロパティです。
デフォルトでは false
になっており、このままでは再生速度(rate)は常に1.0(標準)でしか再生できません。
このプロパティを true
にセットすると、rate
プロパティで好きな再生スピードに調整できるようになります。
主な特徴
- 1.0より大きい値で速く、1.0より小さい値で遅く再生できる
- 通常のBGMや効果音だけでなく、教材・音声読み上げ・ポッドキャスト再生アプリにも応用可能
- 設定しない場合(enableRate = false)は rate を変えても再生速度は変わらない
どういう時に使うのが便利?
- 語学学習アプリで「1.5倍速」「0.8倍速」などスピードを切り替えて発音練習やリスニング練習をしたい場合
- 音声ガイド・ナレーションをゆっくり聞きたいユーザーに配慮したい場合
- 音楽プレイヤーやポッドキャストアプリで倍速/スロー再生機能を付けたい場合
- 録音された音声を解析や検証のためにテンポを変えて再生したい場合
AVAudioPlayerはローカルファイル再生用ですが、enableRateを使えば「単なる音再生」から「より学習・実用的な用途」まで幅広く活用できます。
基本的な使い方
1. enableRateを有効にして再生速度を変更
まず、AVAudioPlayerを生成した後、enableRate = true
をセットします。
そのあとで rate
プロパティに再生したい速度を設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import AVFoundation class SpeedSoundManager { var audioPlayer: AVAudioPlayer? func playSoundWithSpeed(rate: Float) { if let url = Bundle.main.url(forResource: "sample", withExtension: "mp3") { do { audioPlayer = try AVAudioPlayer(contentsOf: url) audioPlayer?.enableRate = true // ★再生速度変更を有効化 audioPlayer?.rate = rate // ★再生速度を指定(例: 1.5なら1.5倍速) audioPlayer?.play() } catch { print("音声の再生に失敗しました: \(error)") } } } } |
このように enableRate = true
を必ずセットしてから rate
を指定しないと、再生速度は変わりません。
rate
の値は 0.5
(半分の速さ)〜2.0
(2倍速)程度が一般的です。
2. 再生中に速度を変えることも可能
再生を始めたあとに audioPlayer?.rate
を変更すれば、途中からでも速度を変えられます。
語学アプリで「途中で遅くして聞き直す」といった機能も実現できます。
1 2 |
audioPlayer?.rate = 0.8 // 再生中に0.8倍速に変更 |
注意点
使いこなす上でいくつか注意すべきポイントもあります。
前述しましたが、enableRateをtrueに設定しないとrateを変えても速度は変わりません。
この設定を忘れてしまうと、どれだけrateの値を調整しても常に標準速度のままになってしまうので注意が必要です。
また、再生する音声ファイルや端末の仕様によっては、極端な速度変化(たとえば0.1倍速や4.0倍速など)には対応していない場合があります。
一般的には0.5倍〜2.0倍速程度の範囲で使うのが現実的です。
そしてAVAudioPlayerはローカルの音声ファイル再生に特化したクラスなので、インターネット経由のストリーミング音声や大規模なネットワーク再生には向いていません。
こうした場合はAVPlayerなど、別のクラスを検討しましょう。
まとめ
AVAudioPlayerのenableRateを使えば、音声の再生速度を柔軟にコントロールできます。
語学学習や音声教材、倍速・スロー再生機能が求められるアプリには欠かせない仕組みです。
必ず enableRate = true
の設定を忘れずに、ユーザーの使いやすさや学びやすさを高める工夫に活用してみてください。