如何将音频文件(wav格式)拼接成python中的1秒拼接?
问题描述:
我正在寻找一个python函数将一个音频文件(wav格式)拼接成1秒的时间段,并将每个新拼接(持续时间为1秒)拼接到一个新的.wav文件中。其中如何将音频文件(wav格式)拼接成python中的1秒拼接?
答
其真正的简单和容易使用pydub
模块,细节上here和here
pydub
有一个名为make_chunks
来,你可以在milliseconds
指定chunk length
方法。
make_chunks(your_audio_file_object, chunk_length_ms)
这里是分割wav文件在1秒块一个工作码。我有一个8.5秒的文件,所以程序创建了9个1秒的块,它们是playable
。取决于音频持续时间,最后一个块将会变小。
from pydub import AudioSegment
from pydub.utils import make_chunks
myaudio = AudioSegment.from_file("myAudio.wav" , "wav")
chunk_length_ms = 1000 # pydub calculates in millisec
chunks = make_chunks(myaudio, chunk_length_ms) #Make chunks of one sec
#Export all of the individual chunks as wav files
for i, chunk in enumerate(chunks):
chunk_name = "chunk{0}.wav".format(i)
print "exporting", chunk_name
chunk.export(chunk_name, format="wav")
输出
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
exporting chunk0.wav
exporting chunk1.wav
exporting chunk2.wav
exporting chunk3.wav
exporting chunk4.wav
exporting chunk5.wav
exporting chunk6.wav
exporting chunk7.wav
exporting chunk8.wav
>>>
+0
取而代之的是使用python,sox是播放音频文件的好工具:http://*.com/questions/16125614/trying-to-split-wav-file-into-two-pieces-with-sox –
我将开始与'numpy.io.wavfile' –
它不存在numpy的,你可能指的是['scipy.io.wavfile'] (http://docs.scipy.org/doc/scipy/reference/io.html)。 –
如果你愿意使用外部库,请看下面的答案,干净而简单。 –