pyDub を使用して、個々の単語 (およびその間の無音) の長い WAV ファイルを入力として取り、すべての無音を取り除き、残りのチャンクを個々の WAV ファイルとして出力したいと思います。ファイル名は、001.wav、002.wav、003.wav などのように連番にすることができます。
Github ページの「Yet another Example?」の例では、非常によく似た処理を行っていますが、個別のファイルを出力するのではなく、無音部分を取り除いたセグメントを 1 つのファイルにまとめています。
from pydub import AudioSegment
from pydub.utils import db_to_float
# Let's load up the audio we need...
podcast = AudioSegment.from_mp3("podcast.mp3")
intro = AudioSegment.from_wav("intro.wav")
outro = AudioSegment.from_wav("outro.wav")
# Let's consider anything that is 30 decibels quieter than
# the average volume of the podcast to be silence
average_loudness = podcast.rms
silence_threshold = average_loudness * db_to_float(-30)
# filter out the silence
podcast_parts = (ms for ms in podcast if ms.rms > silence_threshold)
# combine all the chunks back together
podcast = reduce(lambda a, b: a + b, podcast_parts)
# add on the bumpers
podcast = intro + podcast + outro
# save the result
podcast.export("podcast_processed.mp3", format="mp3")
それらの podcast_parts フラグメントを個別の WAV ファイルとして出力することはできますか? もしそうなら、どのように?
ありがとう!