Calcula diversas características para archivos de audio cargados en una tabla CAS. Esta acción es fundamental en el preprocesamiento de datos de audio para tareas de machine learning, como el reconocimiento de voz o la clasificación de sonidos. Permite extraer características acústicas clave como MFCC (Coeficientes Cepstrales de Frecuencia Mel) o FBANK (bancos de filtros Mel), que transforman la señal de audio en una representación más compacta y útil para los modelos.
| Parámetro | Descripción |
|---|---|
| audioColumn | Especifica el nombre de la columna en la tabla de entrada que contiene los datos de audio. |
| casOut | Especifica la tabla de salida para almacenar las características calculadas. |
| copyVars | Especifica una lista de variables para transferir desde la tabla de entrada a la tabla de salida. |
| fbankOptions | Especifica la configuración para determinar cómo realizar los cálculos de características FBANK. |
| featureScalingMethod | Especifica el método de escalado de características a aplicar a los vectores de características calculados ('NONE' para ninguno, 'STANDARDIZATION' para media cero y varianza unitaria). |
| frameExtractionOptions | Especifica la configuración para determinar cómo dividir el archivo de audio en tramas. |
| melBanksOptions | Especifica la configuración para determinar los bancos de frecuencia Mel. |
| mfccOptions | Especifica la configuración para determinar cómo realizar los cálculos de características MFCC. |
| nContextFrames | Especifica el número de tramas de contexto para añadir antes y después de la trama de audio actual. |
| nOutputFrames | Especifica el número exacto de tramas a incluir en la tabla de salida (las tramas adicionales se descartan y las faltantes se rellenan con ceros). |
| table | Especifica la tabla de entrada que contiene los datos de audio a procesar. |
Para usar la acción `computeFeatures`, primero necesitamos una tabla CAS que contenga datos de audio. El siguiente código muestra cómo usar la acción `loadAudio` para cargar archivos de audio desde una ruta de caslib a una tabla CAS. Suponemos que los archivos de audio (por ejemplo, en formato .wav) se encuentran en el directorio 'audio_data' dentro de la caslib 'CASUSER'.
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'audio'; |
| 3 | audio.loadAudio / |
| 4 | caslib='CASUSER' path='audio_data/' |
| 5 | casOut={name='my_audio_table', replace=true}; |
| 6 | RUN; |
Este ejemplo calcula las características MFCC (Coeficientes Cepstrales de Frecuencia Mel) de la tabla 'my_audio_table' utilizando la configuración por defecto y guarda el resultado en una nueva tabla llamada 'my_audio_features_mfcc'.
| 1 | |
| 2 | PROC CAS; |
| 3 | audio.computeFeatures / TABLE={name='my_audio_table'}, audioColumn='_audio_', copyVars={'_path_'}, casOut={name='my_audio_features_mfcc', replace=true}, mfccOptions={nCeps=13, useEnergy=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Este ejemplo calcula características de banco de filtros (FBANK) con una configuración detallada. Especifica la longitud y el desplazamiento de la trama, el tipo de ventana, el número de bins Mel y aplica estandarización a las características resultantes. Esto permite un control más fino sobre el proceso de extracción de características para adaptarlo a necesidades específicas.
| 1 | |
| 2 | PROC CAS; |
| 3 | audio.computeFeatures / TABLE={name='my_audio_table'}, audioColumn='_audio_', copyVars={'_path_'}, casOut={name='my_audio_features_fbank', replace=true}, featureScalingMethod='STANDARDIZATION', frameExtractionOptions={frameLength=30, frameShift=15, windowType='HANNING'}, melBanksOptions={nBins=40, lowFreq=50, highFreq=7000}, fbankOptions={useLogFbank=true, usePower=true}; |
| 4 | |
| 5 | RUN; |
| 6 |