Forum >> Programmazione Python >> Files e Directory >> Stream audio salva valori su file

Pagina: 1

Ciao Ragazzi,
essendo il mio primo messaggio. Sono Alessandro. Dedico il mio tempo libero al mondo dell'informatica.




Non mi viene facile programmare in Python e lo sto studiando, ho trovato una guida per acquisire l'audio da microfono e salvarlo su file
.wav
Adesso vorrei salvare il risultato del mio stream su file in modo da confrontare suoni che presentano lo stesso stream.





Il codice attuale è:




# Registrazione audio mediante microfono usb con salvataggio su file ".wav"

# Importazione librerie
import pyaudio
import wave
import string


# Definizione del segnale sonoro
form_1 = pyaudio.paInt16 # risoluzione segnale sonoro in bit (16 bit)
chans = 1 # 1 canale
samp_rate = 44100 # 44.1kHz frequenza di campionamento
chunk = 4096 # 2^12 campioni analisi
record_secs = 1 # durata registrazione in secondi
dev_index = 2 # indice del dispositivo
wav_output_filename = 'test.wav' # nome del file con estensione “.wav”

# Creazione istanza pyaudio
audio = pyaudio.PyAudio() 

# Creazione stream pyaudio
stream = audio.open(format = form_1, rate = samp_rate, channels = chans, \
			     input_device_index = dev_index, input = True, \
			     frames_per_buffer=chunk)

# rate=frequenza campionamento
# channels=numero di canali
# input_device_index=indice del dispositivo di input da utilizzare
# input=specifica se si tratta di un flusso di input
# frames_per_buffer=specifica il numero di fotogrammi


# Se siamo arrivati qui vuol dire che è iniziata la registrazione
print("recording")

frames = []


# ciclo sul flusso e aggiunti i blocchi audio all’array
# range() genera una lista di numeri, che viene generalmente utilizzata per iterae con cicli for.
for ii in range(0,int((samp_rate/chunk)*record_secs)):
        # se record_secs=10 - (44100/4096)*10=107,66
	data = stream.read(chunk)
	frames.append(data)
        

print("finished recording")


# blocco flusso di acquisizione, chiusura e completamento istanza PyAudio
stream.stop_stream() 
stream.close()
audio.terminate() 

# salvataggio del frame audio con estensione .wav
wavefile = wave.open(wav_output_filename,'wb') # salvataggio su file in modalità sovrascrittura/creazione se non esiste
wavefile.setnchannels(chans)
wavefile.setsampwidth(audio.get_sample_size(form_1))
wavefile.setframerate(samp_rate)
wavefile.writeframes(b''.join(frames))
wavefile.close()








Come fare a immettere i valori in un file?





Pagina: 1



Esegui il login per scrivere una risposta.