Python Anfänger auf der Suche nach etwas Hilfe.Wie teile ich eine Audiodatei am Ende einer Stille, ohne Stille zu löschen, mit pydub?
Ich benutze Pydub silence Modul zu teilen und exportieren Stücke einer Audiodatei. Ich bin mit dem Verfahren in der oberen Antwort auf diese Frage gefunden:
chunks = split_on_silence(sound,
# length of silence in ms
min_silence_len=325,
# consider it silent if quieter than -60 dBFS
silence_thresh=-60
)
for i, chunk in enumerate(chunks):
chunk.export(os.path.join(full_path, transcript_filename + "{0}.wav".format("%02d" % i)), format="wav")
obwohl Gerade jetzt sind die Pausen nicht in den Chunks enthalten. Ich möchte, dass sie am Ende bleiben. Ich nehme an, dass die Änderung, die ich vornehmen muss, zu den pydub.silence-Funktionen ist, aber ich weiß nicht, welche Änderung vorgenommen werden muss. Hier ist split_on_silence jetzt:
def split_on_silence(audio_segment, min_silence_len=1000, silence_thresh=-16, keep_silence=100):
"""
audio_segment - original pydub.AudioSegment() object
min_silence_len - (in ms) minimum length of a silence to be used for a split. default: 1000ms
silence_thresh - (in dBFS) anything quieter than this will be considered silence. default: -16dBFS
keep_silence - (in ms) amount of silence to leave at the beginning and end of the chunks. Keeps the sound from sounding like it is abruptly cut off. (default: 100ms)
"""
not_silence_ranges = detect_nonsilent(audio_segment, min_silence_len, silence_thresh)
chunks = []
for start_i, end_i in not_silence_ranges:
start_i = max(0, start_i - keep_silence)
end_i += keep_silence
chunks.append(audio_segment[start_i:end_i])
Danke für jede Hilfe.
~ Eric.
Dank so viel! –