【Python/pydub】mp3、wavファイルの分割(無音部分で区切る)

Pythonモジュール「pydub」でmp3とwavファイルを無音部分で区切る方法についてソースコード付きでまとめました。

mp3、wavファイルの分割(無音部分で区切る)

Pythonモジュール「pydub」では、split_on_silenceメソッドで無音部分で音声データを分割できます。

書式

split_on_silence(sound, min_silence_len=2000, silence_thresh=-40, keep_silence=600)
パラメータ 説明
sound 入力音声データ
min_silence_len=2000 2000ms以上無音なら分割
silence_thresh=-40 -40dBFS以下で無音と判定
keep_silence=600 分割後500msは無音を残す

サンプルコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
from pydub import AudioSegment
from pydub.silence import split_on_silence

# wavファイルのデータ取得
sound = AudioSegment.from_file("input.wav", format="wav")

# wavデータの分割(無音部分で区切る)
chunks = split_on_silence(sound, min_silence_len=2000, silence_thresh=-40, keep_silence=600)

# 分割したデータ毎にファイルに出力
for i, chunk in enumerate(chunks):
    chunk.export("output" + str(i) +".wav", format="wav")
関連記事
1 【Python/pydub】音声ファイル処理Python入門 基本文法

コメント