Forum
>>
Programmazione Python
>>
Files e Directory
>>
Stream audio salva valori su file
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
|
Scritto da alessandro87gatto |
2019-03-12 12:49:46 - Stream audio salva valori su file
|
|
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 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.
