Python, Aufteilen einer WAV-Datei in mehrere WAV-Dateien

Ich habe eine WAV-Datei mit einer Länge von mehreren Minuten, die ich in verschiedene WAV-Dateien mit einer Länge von 10 Sekunden aufteilen möchte.

Dies ist mein Python-Code:

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)

Drucken von "wavList" ergibt:

['\ 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 ']

Ich weiß, dass dies eine Liste von Frames ist. Wie erstelle ich eine WAV-Datei für jedes Element in dieser Liste (die erste WAV-Datei wäre "\ x00 \ x00 \ x00 \ x00 \ xff \ xff \ x00 \ x00 \ x00 \ x00")? Pythonswave -Modul ist unklar über die Verwendung von Frames zum Erstellen von .wav-Dateien.

EDIT: Dies ist eine doppelte Frage vonWie spleißt man eine Audiodatei (WAV-Format) in 1-Sekunden-Spleiße in Python? Allerdings, wenn jemand eine Antwort hat, die nicht benötigtpydub Ich würde es sehr gerne sehen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage