Berechnet verschiedene Merkmale für Audiodateien, die in eine CAS-Tabelle geladen wurden. Diese Aktion ist grundlegend für die Audioanalyse und ermöglicht die Extraktion von Merkmalen wie MFCC (Mel-Frequency Cepstral Coefficients) und Filterbank (FBank)-Energien, die in Spracherkennungs- und anderen Audio-Machine-Learning-Anwendungen weit verbreitet sind.
| Parameter | Beschreibung |
|---|---|
| audioColumn | Gibt den Namen der Spalte in der Eingabetabelle an, die die Audiodaten enthält. |
| casOut | Gibt die Einstellungen für eine Ausgabetabelle an. |
| copyVars | Gibt die Liste der Variablen an, die von der Eingabetabelle in die Ausgabetabelle übertragen werden sollen. |
| fbankOptions | Gibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die FBank-Merkmalsberechnungen durchgeführt werden. |
| featureScalingMethod | Gibt die Merkmalskalierungsmethode an, die auf die berechneten Merkmalsvektoren angewendet werden soll. |
| frameExtractionOptions | Gibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die Audiodatei in Frames aufgeteilt wird. |
| melBanksOptions | Gibt die Einstellungen an, die zur Bestimmung der Mel-Frequenzbänke verwendet werden. |
| mfccOptions | Gibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die MFCC-Merkmalsberechnungen durchgeführt werden. |
| nContextFrames | Gibt die Anzahl der Kontext-Frames an, die vor und nach dem aktuellen Audio-Frame angehängt werden sollen. |
| nOutputFrames | Gibt die genaue Anzahl der Frames an, die in die Ausgabetabelle aufgenommen werden sollen (zusätzliche Frames werden verworfen und fehlende Frames werden mit Nullen aufgefüllt). |
| table | Gibt die Einstellungen für eine Eingabetabelle an. |
Dieser Schritt lädt zuerst Audiodateien von einem Serverpfad in eine CAS-Tabelle. Wir gehen davon aus, dass sich die Audiodateien im Verzeichnis '/path/to/audio/files' befinden. Die Aktion `loadAudio` liest diese Dateien und erstellt eine CAS-Tabelle namens `audio_table` in der `CASUSER` Caslib.
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'audio'; |
| 3 | audio.loadAudio / |
| 4 | caslib='CASUSER' |
| 5 | path='/path/to/audio/files' |
| 6 | casOut={name='audio_table', replace=true}; |
| 7 | RUN; |
Dies ist ein grundlegendes Beispiel, das MFCC-Merkmale aus der zuvor geladenen Audiotabelle berechnet. Es verwendet die Standardeinstellungen für die Merkmalsextraktion.
| 1 | |
| 2 | PROC CAS; |
| 3 | audio.computeFeatures / TABLE={name='audio_table', caslib='CASUSER'}, audioColumn='_audio_data_', casOut={name='audio_features_simple', replace=true}, copyVars={'_path_', '_id_'}; |
| 4 | |
| 5 | RUN; |
| 6 |
Dieses Beispiel berechnet FBank-Merkmale anstelle von MFCC. Es passt mehrere Optionen an, wie die Frame-Länge, die Anzahl der Mel-Bins und wendet eine Standardisierungsskalierung auf die resultierenden Merkmale an.
| 1 | |
| 2 | PROC CAS; |
| 3 | audio.computeFeatures / TABLE={name='audio_table', caslib='CASUSER'}, audioColumn='_audio_data_', casOut={name='audio_features_detailed', replace=true}, copyVars={'_path_', '_id_'}, featureScalingMethod='STANDARDIZATION', frameExtractionOptions={frameLength=30, frameShift=15, windowType='HANNING'}, melBanksOptions={nBins=40}, fbankOptions={useEnergy=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Dieses Beispiel berechnet MFCC-Merkmale und fügt Kontext-Frames hinzu. Für jeden Frame werden die Merkmale von 2 vorherigen und 2 nachfolgenden Frames verkettet, was dem Modell hilft, zeitliche Abhängigkeiten zu lernen.
| 1 | |
| 2 | PROC CAS; |
| 3 | audio.computeFeatures / TABLE={name='audio_table', caslib='CASUSER'}, audioColumn='_audio_data_', casOut={name='audio_features_context', replace=true}, copyVars={'_path_', '_id_'}, mfccOptions={nCeps=13, useEnergy=true}, nContextFrames=2; |
| 4 | |
| 5 | RUN; |
| 6 |