audio

computeFeatures

Beschreibung

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.

audio.computeFeatures { audioColumn="string", casOut={casouttable}, copyVars={"variable-name-1", ...}, fbankOptions={fbankOptions}, featureScalingMethod="NONE"|"STANDARDIZATION", frameExtractionOptions={frameExtractionOptions}, melBanksOptions={melBanksOptions}, mfccOptions={mfccOptions}, nContextFrames=integer, nOutputFrames=integer, table={castable} };
Einstellungen
ParameterBeschreibung
audioColumnGibt den Namen der Spalte in der Eingabetabelle an, die die Audiodaten enthält.
casOutGibt die Einstellungen für eine Ausgabetabelle an.
copyVarsGibt die Liste der Variablen an, die von der Eingabetabelle in die Ausgabetabelle übertragen werden sollen.
fbankOptionsGibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die FBank-Merkmalsberechnungen durchgeführt werden.
featureScalingMethodGibt die Merkmalskalierungsmethode an, die auf die berechneten Merkmalsvektoren angewendet werden soll.
frameExtractionOptionsGibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die Audiodatei in Frames aufgeteilt wird.
melBanksOptionsGibt die Einstellungen an, die zur Bestimmung der Mel-Frequenzbänke verwendet werden.
mfccOptionsGibt die Einstellungen an, die verwendet werden sollen, um zu bestimmen, wie die MFCC-Merkmalsberechnungen durchgeführt werden.
nContextFramesGibt die Anzahl der Kontext-Frames an, die vor und nach dem aktuellen Audio-Frame angehängt werden sollen.
nOutputFramesGibt 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).
tableGibt die Einstellungen für eine Eingabetabelle an.
Datenerstellung

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.

Kopiert!
1PROC CAS;
2 LOADACTIONSET 'audio';
3 audio.loadAudio /
4 caslib='CASUSER'
5 path='/path/to/audio/files'
6 casOut={name='audio_table', replace=true};
7RUN;

Beispiele

Dies ist ein grundlegendes Beispiel, das MFCC-Merkmale aus der zuvor geladenen Audiotabelle berechnet. Es verwendet die Standardeinstellungen für die Merkmalsextraktion.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3audio.computeFeatures / TABLE={name='audio_table', caslib='CASUSER'}, audioColumn='_audio_data_', casOut={name='audio_features_simple', replace=true}, copyVars={'_path_', '_id_'};
4 
5RUN;
6 
Ergebnis :
Eine neue CAS-Tabelle namens `audio_features_simple` wird erstellt. Sie enthält die kopierten Variablen `_path_` und `_id_` sowie die berechneten MFCC-Merkmale für jede Audiodatei.

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.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3audio.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 
5RUN;
6 
Ergebnis :
Eine CAS-Tabelle namens `audio_features_detailed` wird erstellt. Sie enthält die FBank-Merkmale, die mit einer Frame-Länge von 30 ms, einem Hanning-Fenster und 40 Mel-Bins berechnet wurden. Die Energie wird ebenfalls hinzugefügt, und alle Merkmale werden standardisiert (Mittelwert 0, Varianz 1).

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.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3audio.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 
5RUN;
6 
Ergebnis :
Eine CAS-Tabelle `audio_features_context` wird erstellt. Jede Zeile enthält einen Merkmalsvektor, der aus der Verkettung von 5 Frames besteht (der aktuelle Frame plus 2 davor und 2 danach), was zu (13+1) * 5 = 70 Merkmalen pro Ausgabe-Frame führt.

FAQ

Was ist der Zweck der Aktion `audio.computeFeatures`?
Welcher Parameter ist erforderlich, um die Eingabetabelle anzugeben?
Wie gibt man die Ausgabetabelle an, in der die berechneten Merkmale gespeichert werden?
Welche Spalte enthält die Audiodaten?
Wie kann man Merkmale skalieren, nachdem sie berechnet wurden?
Welche Optionen gibt es für die Frame-Extraktion?
Wie konfiguriert man die Berechnung von MFCC-Merkmalen (Mel-Frequency Cepstral Coefficients)?
Wie konfiguriert man die Berechnung von FBank-Merkmalen (Filterbank)?
Können Variablen von der Eingabe- zur Ausgabetabelle kopiert werden?