2016-06-03 16 views
1

Ich verwende Pyaudio zum Aufnehmen und Extrahieren von Daten aus einem aufgenommenen Sound. Gerade jetzt nehme ich einen Ton auf und zeige ihn mit matplotlib.Pyaudio - Algorithmus zum Umwandeln von Audiodaten in eine Zeichenfolge

import pyaudio,numpy 
import matplotlib.pyplot as plt 

FORMAT = pyaudio.paFloat32 
SAMPLEFREQ = 44100 
FRAMESIZE = 1024 
NOFFRAMES = 220 
p = pyaudio.PyAudio() 
print('running') 

stream = p.open(format=FORMAT,channels=1,rate=SAMPLEFREQ,input=True,frames_per_buffer=FRAMESIZE) 
data = stream.read(NOFFRAMES*FRAMESIZE) 
decoded = numpy.fromstring(data, 'Float32') 
for x in decoded: 
    if x != 0.0: # 
     print (x) #--- decoded is very huge, I just print the first float number 
     break  # 


stream.stop_stream() 
stream.close() 
p.terminate() 
print('done') 
plt.plot(decoded) 
plt.show() 

Eine Beispielausgabe dieses Codes ist;

enter image description here

Mein Hauptziel ist es, dass die Float-Zahlen in decoded, um herauszufinden, und schalten Sie sie in einen String. Zum Beispiel möchte ich feststellen, ob ich aufzeichnen möchte, möchte ich die Daten dieser aufgezeichneten Daten verarbeiten und am Ende in konvertieren. decoded ist eine riesige Liste von Float-Nummern, also konnte ich keinen Weg finden, daran zu arbeiten. Ich bin offen für Vorschläge über Bibliotheken und was ist der richtige Algorithmus für dieses Ziel.

Meiner Meinung nach verwende ich falsche Bibliothek, konnte aber nicht die richtige Bibliothek/Weg für mein Ziel finden.

Antwort