audio

computeFeatures

Description

L'action `computeFeatures` du jeu d'actions `audio` est utilisée pour calculer diverses caractéristiques acoustiques à partir de fichiers audio préalablement chargés dans une table CAS. Cette action est fondamentale dans le traitement du signal audio pour le machine learning, car elle transforme les données audio brutes en représentations numériques (vecteurs de caractéristiques) qui peuvent être utilisées pour entraîner des modèles. Elle supporte des types de caractéristiques standards comme les MFCC (Mel-Frequency Cepstral Coefficients) et les FBANK (Filter Bank), qui sont essentiels pour des tâches telles que la reconnaissance vocale ou l'analyse de sons.

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} };
Paramètres
ParamètreDescription
audioColumnSpécifie le nom de la colonne dans la table d'entrée qui contient les données audio.
casOutSpécifie les paramètres pour la table de sortie. Cette table contiendra les caractéristiques calculées.
copyVarsSpécifie une liste de variables à transférer de la table d'entrée vers la table de sortie.
fbankOptionsSpécifie les paramètres pour le calcul des caractéristiques FBANK (Filter Bank).
featureScalingMethodSpécifie la méthode de mise à l'échelle à appliquer aux vecteurs de caractéristiques calculés (par exemple, NONE ou STANDARDIZATION).
frameExtractionOptionsSpécifie les paramètres pour déterminer comment diviser le fichier audio en trames (frames).
melBanksOptionsSpécifie les paramètres pour déterminer les bancs de filtres Mel.
mfccOptionsSpécifie les paramètres pour déterminer comment effectuer les calculs des caractéristiques MFCC.
nContextFramesSpécifie le nombre de trames de contexte à ajouter avant et après la trame audio actuelle.
nOutputFramesSpécifie le nombre exact de trames à inclure dans la table de sortie. Les trames supplémentaires sont supprimées et les trames manquantes sont complétées par des zéros.
tableSpécifie la table CAS d'entrée qui contient les données audio à traiter.
Préparation des Données Voir la fiche de ce code dataprep
Chargement des Données Audio

Avant de calculer les caractéristiques, les fichiers audio doivent être chargés dans une table CAS. L'action `loadAudio` est utilisée à cet effet. Elle lit les fichiers audio à partir d'un chemin accessible par le serveur CAS (caslib) et les charge dans une table en mémoire.

Copié !
1PROC CAS;
2 audio.loadAudio /
3 caslib="casuser",
4 path="path/to/your/audio/files/",
5 casOut={name="audio_table", replace=true};
6RUN;

Exemples

Cet exemple calcule les caractéristiques MFCC (coefficients cepstraux sur l'échelle de Mel) pour chaque fichier audio dans la table `audio_table`. Les caractéristiques sont stockées dans une nouvelle table nommée `audio_features`.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 audio.computeFeatures /
3 TABLE={name='audio_table'},
4 audioColumn='_audio_',
5 copyVars={'_path_'},
6 casOut={name='audio_features', replace=true};
7RUN;
Résultat :
Une table CAS nommée `audio_features` est créée. Elle contient les variables de `copyVars` et les nouvelles colonnes de caractéristiques audio calculées pour chaque trame.

Cet exemple calcule les caractéristiques FBANK (banc de filtres) en personnalisant plusieurs options. Il ajuste la longueur et le décalage des trames, utilise une fenêtre de Hamming, et configure les bancs de filtres Mel avec 40 bandes entre 0 Hz et 8000 Hz. De plus, une mise à l'échelle par standardisation est appliquée aux caractéristiques.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 audio.computeFeatures /
3 TABLE={name='audio_table'},
4 audioColumn='_audio_',
5 copyVars={'_path_', '_id_'},
6 frameExtractionOptions={frameLength=20, frameShift=10, windowType='HAMMING'},
7 melBanksOptions={nBins=40, lowFreq=0, highFreq=8000},
8 fbankOptions={useEnergy=true, useLogFbank=true},
9 featureScalingMethod='STANDARDIZATION',
10 casOut={name='fbank_features', replace=true};
11RUN;
Résultat :
Une table CAS nommée `fbank_features` est créée. Elle contient les caractéristiques FBANK personnalisées et mises à l'échelle, ainsi que les variables copiées `_path_` et `_id_`.

Cet exemple calcule les caractéristiques MFCC en incluant 5 trames de contexte avant et après chaque trame. Il garantit également que chaque sortie audio a exactement 300 trames, en tronquant ou en complétant avec des zéros si nécessaire. Ceci est utile pour les modèles qui nécessitent une entrée de taille fixe.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 audio.computeFeatures /
3 TABLE={name='audio_table'},
4 audioColumn='_audio_',
5 copyVars={'_path_', 'label'},
6 mfccOptions={nCeps=20, useEnergy=true},
7 nContextFrames=5,
8 nOutputFrames=300,
9 casOut={name='mfcc_context_features', replace=true};
10RUN;
Résultat :
Une table CAS `mfcc_context_features` est générée. Chaque enregistrement audio est représenté par une séquence de 300 trames de caractéristiques MFCC, incluant les trames de contexte.

FAQ

Quel est le but de l'action `audio.computeFeatures` ?
Comment spécifier la colonne contenant les données audio dans la table d'entrée ?
Est-il obligatoire de définir une table de sortie avec cette action ?
Comment puis-je conserver certaines variables de la table d'entrée dans la table de sortie ?
Quelles sont les méthodes de mise à l'échelle (scaling) disponibles pour les caractéristiques calculées ?
Comment configurer l'extraction des trames (frames) audio ?
Quelles options sont disponibles pour le calcul des caractéristiques MFCC ?
À quoi sert le paramètre `fbankOptions` ?

Scénarios associés

Cas d'usage
Extraction Standard MFCC pour Analyse de Sentiments

Une banque souhaite analyser les appels de son service client pour détecter l'insatisfaction. Les fichiers audio bruts doivent être transformés en coefficients MFCC pour aliment...

Cas d'usage
Volumétrie et Standardisation pour Capteurs Industriels

Une usine utilise des milliers de capteurs acoustiques pour surveiller les vibrations des machines. Le flux de données est massif. Pour entraîner un modèle de maintenance prédic...

Cas d'usage
Cas Limites : Fichiers Tronqués et Filtrage Avancé

Un projet de numérisation d'archives audio historiques rencontre des fichiers de qualité variable (très courts, bruités). Le but est d'extraire des features 'Filter Bank' (FBANK...