audio computeFeatures

Massenverarbeitung von Maschinengeräuschen für die vorausschauende Wartung

Scénario de test & Cas d'usage

Geschäftskontext

In einer 'Smart Factory' senden Tausende von Sensoren kontinuierlich kurze Audioclips von Maschinenmotoren. Ziel ist es, Anomalien (Verschleiß) zu erkennen. Aufgrund des hohen Datenvolumens muss die Feature-Extraktion (Filterbank-Energien) effizient sein und die Daten müssen für das nachfolgende Clustering standardisiert werden.
Datenaufbereitung

Generierung einer großen Menge (1000 Zeilen) simulierter Maschinendaten, um Last zu erzeugen.

Kopiert!
1 
2DATA casuser.machine_noise;
3LENGTH machine_id varchar(10) _audio_data_ varbinary;
4dummy_audio = '524946462408000057415645666D7420100000000100010044AC000088580100020010006461746100080000FFFFFFFF'x;
5DO i=1 to 1000;
6machine_id = cats('MACH_', i);
7_audio_data_ = dummy_audio;
8OUTPUT;
9END;
10drop i dummy_audio;
11 
12RUN;
13 

Étapes de réalisation

1
Durchführung der Feature-Berechnung mit Filterbänken (FBank), benutzerdefinierter Frame-Länge und Standardisierung (Mittelwert 0, Varianz 1).
Kopiert!
1 
2PROC CAS;
3audio.computeFeatures / TABLE={name='machine_noise', caslib='casuser'} audioColumn='_audio_data_' fbankOptions={useLogFbank=true, nBins=40} frameExtractionOptions={frameLength=25, frameShift=10, windowType='HAMMING'} featureScalingMethod='STANDARDIZATION' casOut={name='iot_features', caslib='casuser', replace=true};
4 
5RUN;
6 
2
Validierung der Ausgabedaten, um sicherzustellen, dass für alle 1000 Maschinen Ergebnisse vorliegen.
Kopiert!
1 
2PROC CAS;
3TABLE.tableDetails / TABLE={name='iot_features', caslib='casuser'};
4 
5RUN;
6 

Erwartetes Ergebnis


Die Aktion verarbeitet alle 1000 Datensätze ohne Fehler. Die resultierende Tabelle 'iot_features' enthält log-FBank-Merkmale, die standardisiert sind (Werte zentriert um 0). Das Hamming-Fenster wurde korrekt angewendet.