Sto provando a dividere un file wav a livello di codice in Python. Sulla base di suggerimenti da StackOverflow, nonché la documentazione dal modulo onda Python che sto facendo le seguentisplitting file wav in python
import wave
origAudio = wave.open('inputFile.wav','r')
frameRate = origAudio.getframerate()
nChannels = origAudio.getnchannels()
sampWidth = origAudio.getsampwidth()
start = float(someStartVal)
end = float(someEndVal)
origAudio.setpos(start*frameRate)
chunkData = origAudio.readframes(int((end-start)*frameRate))
chunkAudio = wave.open('outputFile.wav','w')
chunkAudio.setnchannels(nChannels)
chunkAudio.setsampwidth(sampWidth)
chunkAudio.setframerate(frameRate)
chunkAudio.writeframes(chunkData)
chunkAudio.close()
ho scorrere un certo numero di diversi valori di inizio e fine, ed estratto di pezzi di audio dal file originale in in questo modo La cosa strana è che la tecnica funziona perfettamente bene per alcuni blocchi, e produce rumore bianco spazzatura per gli altri. Inoltre non esiste un modello ovvio di quali posizioni iniziali e finali producano rumore bianco, solo che ciò avviene in modo coerente per un file di input.
Qualcuno ha già provato questo tipo di comportamento? O sai cosa sto sbagliando? Sono graditi suggerimenti su modi migliori per suddividere un file audio a livello di programmazione.
Grazie in anticipo.
Questo potrebbe avere a che fare con 'start * frameRate' come float quando si chiama' setpos'. Forse dopo 'readframes' dovresti usare' tell' per trovare la posizione corrente del puntatore del file invece ... – unutbu
arrgh! stupido da parte mia ... grazie che lo ha risolto :) – user13321
quando uso tell al posto di setpos, posso ottenere l'errore: tell() accetta 1 argomento posizionale ma 2 sono stati dati –