das ging ja super schnell!
allerdings soll nicht csv geladen / abgespielt / gespeichert werden, sondern *.wav Dateien (ggf. ~auswahl wie im Filebrowser).
Gespeichert werden sollen nur echte .wav Formate, keine reinen Arrays.
das Konzept ist:
im RAM befindet sich immer ein Array mit den reinen sound data,
auf der SD befinden sich viele (!) .wav Dateien: die bilden den Wortschatz bekannter (zu erkennender) Wortbefehle.
Sie müssen während der Testphase und auch später im Automatik-Betrieb nacheinander geöffnet, gespielt, bearbeitet und verglichen werden können.
Zum Bearbeiten werden .wav Files geöffnet und die reinen sound data in einen array ins RAM kopiert,
Per Micro wird auch nur ein Array im RAM belegt,
bei Speichern wird aber wieder der komplette wav-Header davor geschrieben.
dazu dienen unsere Werkzeuge, und die sind:
a) record_wave(int32_t * array, int32_t length);
b) save_wave2file(int32_t * array, char * filename);
c) wavefile2Array(int32_t * array, char * filename);
d) play_waveArray(int32_t * array, int32_t length);
e) play_waveFile(char * filename);
sowie
f) plotArray(int32_t * array, int32_t length, int y0);
g) analyseArray(int32_t * array, int32_t length);
h) array2FFT(int32_t * array, int32_t length, double * fx, double * fy, int32_t FFT_length);
i) cross_corr(int32_t * array, int32_t * pattern, int32_t length);
...usw...
Lesezeichen