audio

computeFeatures

##deeplearning ##set_audio

Description

L'action %audio.computeFeatures% est le couteau suisse de l'ingénieur du son sous SAS Viya. Elle permet d'extraire des caractéristiques acoustiques sophistiquées, comme les coefficients MFCC (Mel-Frequency Cepstral CoefficientsCoefficients représentant le spectre de puissance d'un son sur l'échelle de Mel. Utilisés dans SAS Viya pour l'analyse audio et la reconnaissance vocale en mimant la perception auditive humaine.) ou les banques de filtres (FBankBanque de filtres de Mel découpant le spectre audio en bandes fréquentielles. Utilisée dans SAS Viya pour extraire des caractéristiques acoustiques proches de l'audition humaine (Deep Learning).), à partir de fichiers audio chargés en mémoireGemini said

Espace de stockage temporaire (RAM) utilisé par le moteur CAS pour charger et traiter les données à haute vitesse, minimisant les accès disque pour optimiser les performances de SAS Viya.
. C'est l'étape cruciale pour préparer vos données avant de les injecter dans un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de Deep LearningSous-ensemble du Machine Learning basé sur des réseaux de neurones artificiels profonds. Il excelle dans l'extraction automatique de motifs complexes depuis des données brutes (images, texte, son). ou de reconnaissance vocaleTechnologie SAS Viya transformant un signal audio en texte via des modèles de Deep Learning (RNN, CNN) pour l'analyse de conversations, le sous-titrage ou le contrôle par commandes vocales.. Attention, si vous entendez des voix après l'exécution, c'est normal, c'est du traitement de signal (ou alors il est temps de faire une pause café).

Syntaxe Officielle
proc cas;
audio.computeFeatures /
audioColumn="nom_colonne_audio",
casOut={name="table_sortie", replace=TRUE},
copyVars={"id", "label"},
featureScalingMethod="NONE" | "STANDARDIZATION",
fbankOptions={energyFloor=0, rawEnergy=TRUE, useEnergy=FALSE, useLogFbank=TRUE, usePower=TRUE},
frameExtractionOptions={blackmanCoeff=0.42, dither=1, frameLength=25, frameShift=10, preemphCoeff=0.97, removeDcOffset=TRUE, roundToPowerOfTwo=TRUE, snipEdges=TRUE, windowType="RECTANGULAR"},
melBanksOptions={highFreq=0, lowFreq=20, nBins=23},
mfccOptions={cepstralLifter=22, energyFloor=0, nCeps=13, rawEnergy=TRUE, useEnergy=TRUE},
nContextFrames=0,
nOutputFrames=100,
table={name="table_entree"};
run;quit;

Paramètres Clés

Nom du paramètre Description
audioColumn Indique le nom de la colonne contenant les données binaires audio.
casOut Spécifie les paramètres de la table CAS de sortie qui contiendra les caractéristiques extraites.
copyVars Liste des variables de la table d'entrée à conserver dans la table de sortie (identifiants, cibles, etc.).
fbankOptions Paramètres spécifiques pour le calcul des banques de filtres (Filterbank), incluant l'utilisation de l'énergie et de l'échelle logarithmique.
featureScalingMethod Méthode de normalisation des caractéristiques (ex: STANDARDIZATION pour une moyenne nulle et une variance unitaire).
frameExtractionOptions Définit la façon dont le signal est découpé en trames (longueur de fenêtre, décalage, type de fenêtrage comme Hamming ou Hanning).
melBanksOptions Définit les fréquences de coupure et le nombre de bacs (bins) pour l'échelle de Mel.
mfccOptions Options pour le calcul des coefficients MFCC, incluant le nombre de coefficients souhaités.
nContextFrames Nombre de trames adjacentes (passées et futures) à concaténer à la trame actuelle pour donner du contexte au modèle.
nOutputFrames Fixe le nombre exact de trames en sortie pour garantir une dimension constante (complété par des zéros si nécessaire).
table La table CAS contenant les fichiers audio (généralement chargée via loadAudio).

Préparation des données

Chargement initial des données audio

Avant d'extraire des caractéristiques, nous devons charger des fichiers audio depuis un chemin serveur vers une table CAS.

1PROC CAS;
2 audio.loadAudio /
3 path="data/audio_files/",
4 casOut={name="audio_input", replace=TRUE};
5RUN;QUIT;

Exemples d'utilisation

Extraction basique de coefficients MFCC

Calcul des 13 coefficients MFCC par défaut sur une table audio chargée.

1PROC CAS;
2 audio.computeFeatures /
3 TABLE={name="audio_input"},
4 audioColumn="_audio_",
5 mfccOptions={nCeps=13},
6 casOut={name="audio_features_simple", replace=TRUE};
7RUN;QUIT;
Résultat Attendu :
Une table CAS 'audio_features_simple' contenant les vecteurs de caractéristiques MFCC pour chaque fichier.
Extraction avancée avec normalisation et contexte

Configuration complète utilisant des banques de filtres logarithmiques, un fenêtrage de Hamming et une normalisation statistique avec contexte.

1PROC CAS;
2 audio.computeFeatures /
3 TABLE={name="audio_input"},
4 audioColumn="_audio_",
5 copyVars={"_path_"},
6 featureScalingMethod="STANDARDIZATION",
7 frameExtractionOptions={windowType="HAMMING", frameLength=30, frameShift=15},
8 fbankOptions={useLogFbank=TRUE, useEnergy=TRUE},
9 melBanksOptions={nBins=40, lowFreq=100, highFreq=8000},
10 nContextFrames=5,
11 nOutputFrames=200,
12 casOut={name="audio_features_advanced", replace=TRUE};
13RUN;QUIT;
Résultat Attendu :
Une table 'audio_features_advanced' avec 40 bacs Mel, normalisée, incluant 5 trames de contexte et une longueur fixe de 200 trames par échantillon.