如何将WAV文件填充到特定长度?

时间:2018-10-16 17:53:31

标签: python python-3.x wav

我正在使用wave文件制作深度学习模型 它们的长度不同,所以我想把它们都垫好 python达到16秒的长度

2 个答案:

答案 0 :(得分:2)

如果我理解正确,那么这个问题想将所有长度固定为给定长度。因此,解决方案将略有不同:

from pydub import AudioSegment

pad_ms = 1000  # Add here the fix length you want (in milliseconds)
audio = AudioSegment.from_wav('you-wav-file.wav')
assert pad_ms > len(audio), "Audio was longer that 1 second. Path: " + str(full_path)
silence = AudioSegment.silent(duration=pad_ms-len(audio)+1)


padded = audio + silence  # Adding silence after the audio
padded.export('padded-file.wav', format='wav')

此答案与this one的不同之处在于,该答案会创建具有相同长度的所有音频,而另一个则会在末尾添加相同大小的静音。

答案 1 :(得分:0)

使用pydub

var events = table.getData();

from pydub import AudioSegment pad_ms = 1000 # milliseconds of silence needed silence = AudioSegment.silent(duration=pad_ms) audio = AudioSegment.from_wav('you-wav-file.wav') padded = audio + silence # Adding silence after the audio padded.export('padded-file.wav', format='wav') 对象是不可变的