Pythonで音声ファイルを分割する
Pythonでは、pydubとpydub.silenceを使用して音声ファイルを無音位置で分割できます。
インストール
pydubをインストールします。
また、実行にはffmpegが必要です。インストールしていない場合はインストールしてください。
使用方法
silence_thresh
は無音とみなす閾値です。上記では、-40dB(デシベル)以下の音を無音とみなしています。デフォルトは-16dBです。
出力フォーマット
他にも指定可能のようですが、私の環境では、以下の指定が可能でした。
- wav
- mp3
- ogg
ビットレート指定
export()
メソッドのパラメータにビットレートを指定できます。
最低無音時間の設定
split_on_silence()
のパラメータに無音時間の閾値(無音とみなす最小の無音時間)をmin_silence_len
で設定できます。この時間より短い無音は無視されます。単位はミリ秒です。デフォルトは1秒です。
次の例では、2秒間無音と判定された場合のみ分割します。
探索精度
split_on_silence()
のパラメータseek_step
で無音時間を探索する際の探索精度を設定できます。単位はミリ秒でデフォルトは1ミリ秒です。この値が細かいと処理に時間がかかります。