如何在python中将音频文件(wav格式)拼接成1秒接头?

Alw*_*ner 6 python audio

我正在寻找一个python函数将一个音频文件(wav格式)拼接成1秒的持续时间拼接,并将每个新拼接(持续时间为1秒)存储到一个新的.wav文件中.

Ani*_*l_M 14

它真正简单易用的pydub模块,其中的细节在这里这里

pydub有一个make_chunks你可以指定chunk length的方法milliseconds.

make_chunks(your_audio_file_object, chunk_length_ms)

这是一个工作代码,用于在一秒内分割wav文件.我有一个8.5秒的文件,所以程序创建了9个一秒钟的块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")
Run Code Online (Sandbox Code Playgroud)

产量

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
>>> 
Run Code Online (Sandbox Code Playgroud)