Vorrei usare pyDub per prendere un file WAV lungo di singole parole (e silenzio in mezzo) come input, quindi rimuovere tutto il silenzio e emettere i restanti blocchi. singoli file WAV. I nomi di file possono essere solo numeri sequenziali, come 001.wav, 002.wav, 003.wav, ecc.Uso di pyDub per tagliare un file audio lungo
L'esempio "Yet another Example?" nella pagina Github fa qualcosa di molto simile, ma piuttosto che emettere file separati, combina i segmenti di silenzio-spogliato di nuovo insieme in un unico file:
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")
è possibile uscita quei frammenti podcast_parts come file WAV individuali? Se é cosi, come?
Grazie!
Grazie per la risposta, ma sono un po 'un principiante, e ancora non capisco come gestire il passaggio i frammenti audio al metodo di esportazione. – user3643227