3D Printed Record (4 / 8 steg)
Steg 4: Extrahera ljud Data med Python
#Wav till Txt
#by Amanda Ghassaei
#
## * Programmet är fri programvara; Du kan vidaredistribuera det och/eller ändra
## * det enligt villkoren i GNU General Public License som offentliggjorts av
## * Free Software Foundation; antingen version 3 av licensen, eller
## * (på ditt alternativ) någon senare version.
#this kod packar och repacks data från:
#16 bitars stereo wav-fil på 44100hz samplingsfrekvens
#and sparas som en txt-fil
importera våg
importera matematik
importera struct
bitDepth = 8 #target bitdjupet
Frate = 44100 #target bildhastighet
Filnamn = "audio.wav"#file som ska importeras (ändra detta)
#read fil och få data
w = wave.open (filnamn, "r")
numFrames = w.getnframes()
ram = w.readframes(numframes)#w.getnframes()
frameInt = karta (ord, list(frame)) #turn till array
#separate vänster och höger kanal och sammanfoga byte
frameOneChannel = [0] * numframes #initialize lista över en kanal av wave
för i i range(numframes):
frameOneChannel [i] = frameInt [4 * i + 1] * 2 ** 8 + frameInt [4 * jag] #separate kanaler och store ett channel i nya listan
om frameOneChannel [i] > 2 ** 15:
frameOneChannel [i] = (frameOneChannel[i]-2**16)
Elif frameOneChannel [i] == 2 ** 15:
frameOneChannel [i] = 0
annat:
frameOneChannel [i] = frameOneChannel [i]
#convert till sträng
audioStr = ''
för i i range(numframes):
audioStr += str(frameOneChannel[i])
audioStr += "," #separate element med kommatecken
Filnamn = filnamn [: -3] #remove .wav förlängning
text_file = öppna (filnamn + "txt", "w")
text_file.write("%s"%audioStr)
text_file.Close()
När jag skapar en textfil, kan jag importera data till bearbetning och omvandla den till en STL. Jag vill effektivisera min kod så att ljudfiler (wav/mp3) kan laddas direkt i bearbetning, men jag har inte hittat en lösning ännu, några förslag skulle uppskattas!