gpt4 book ai didi

python - 如何将一个 .wav 文件分割成多个 .wav 文件?

转载 作者:太空狗 更新时间:2023-10-29 18:03:42 24 4
gpt4 key购买 nike

我有一个几分钟长的 .wav 文件,我想将其分成不同的 10 秒 .wav 文件。

到目前为止,这是我的 python 代码:

import wave
import math

def main(filename, time):
read = wave.open(filename, 'r')

#get sample rate
frameRate = read.getframerate()

#get number of frames
numFrames = read.getnframes()

#get duration
duration = numFrames/frameRate

#get all frames as a string of bytes
frames = read.readframes(numFrames)

#get 1 frame as a string of bytes
oneFrame = read.readframes(1)

#framerate*time == numframesneeded
numFramesNeeded=frameRate*time

#numFramesNeeded*oneFrame=numBytes
numBytes = numFramesNeeded*oneFrame

#splice frames to get a list strings each representing a 'time' length
#wav file
x=0
wavList=[]
while x+time<=duration:
curFrame= frames[x:x+time]
x=x+time
wavList.append(curFrame)

打印 wavList 产生:

['\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00']

我知道这是一个帧列表。如何为列表中的每个元素创建一个 wav 文件(第一个 .wav 文件是 '\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00' ? Python 的 wave 模块对于使用帧创建 .wav 文件不清楚。

编辑:这是 How to splice an audio file (wav format) into 1 sec splices in python? 的重复问题但是,如果有人有不需要 pydub 的答案,我非常希望看到它。

最佳答案

这是一个 python 代码片段,我根据需要使用它来拆分文件。
我使用来自 https://github.com/jiaaro/pydub 的 pydub 库.您可以修改代码段以满足您的要求。

from pydub import AudioSegment
t1 = t1 * 1000 #Works in milliseconds
t2 = t2 * 1000
newAudio = AudioSegment.from_wav("oldSong.wav")
newAudio = newAudio[t1:t2]
newAudio.export('newSong.wav', format="wav") #Exports to a wav file in the current path.

关于python - 如何将一个 .wav 文件分割成多个 .wav 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com