identifySpeakers
Description
L'action `identifySpeakers` du jeu d'actions `langModel` permet d'identifier les différents locuteurs (diarisation) présents dans un fichier audio. C'est l'outil idéal pour savoir 'qui parle et quand' dans vos enregistrements, avec une touche de magie (et beaucoup de mathématiques). Pratique pour analyser des réunions ou des appels clients ! Vous pouvez consulter la documentation officielle sur les %%table pour plus de détails.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| casOut | Spécifie la table de sortie CAS qui contiendra les identifiants des locuteurs détectés. |
| maxSpeakers | Spécifie le nombre maximum de locuteurs à identifier dans l'audio (Défaut: 200, Limite: 1-200). |
| minSpeakers | Spécifie le nombre minimum de locuteurs à identifier dans l'audio (Défaut: 1, Limite: 1-200). |
| model | Spécifie les paramètres à appliquer au modèle, incluant la table du modèle de diarisation (`model`), ses poids (`weights`), ses attributs (`attributes`) et éventuellement les options GPU (`gpu`). |
| scope | Identifie les locuteurs soit pour chaque ligne (`ROW`) soit pour la table entière (`TABLE`). Le défaut est `ROW`. |
| seed | Graine aléatoire pour l'initialisation de l'algorithme (Défaut: 0). |
| table | Spécifie la table CAS contenant les données audio en entrée. |
Préparation des données
Chargement des données audio et des modèles
Avant d'identifier les locuteurs, il faut charger l'audio en mémoire CAS et s'assurer que les modèles de langage sont bien présents. L'audio doit être traité préalablement (par ex. via `loadAudio` ou `audio.loadAudio`).
| 1 | PROC CAS; |
| 2 | /* Chargement d'un fichier audio d'exemple */ |
| 3 | audio.loadAudio / casOut={name="audio_data", replace=true} caslib="casuser" path="reunion.wav"; |
| 4 | RUN; |
| 5 | QUIT; |
Exemples d'utilisation
Identification basique des locuteurs
Cet exemple montre comment exécuter la diarisation sur une table audio avec les paramètres par défaut, en limitant la recherche à 2 locuteurs maximum.
| 1 | PROC CAS; |
| 2 | langModel.identifySpeakers / |
| 3 | TABLE={name="audio_data"} |
| 4 | model={model={name="speaker_model"}, weights={name="speaker_weights"}, attributes={name="speaker_attributes"}} |
| 5 | casOut={name="speakers_out", replace=True} |
| 6 | minSpeakers=1 |
| 7 | maxSpeakers=2; |
| 8 | RUN; |
| 9 | QUIT; |
Résultat Attendu :
Identification avancée avec GPU et options de périmètre
Pour les gros volumes de données, l'utilisation d'un processeur graphique (GPU) est fortement recommandée pour ne pas y passer la nuit. Ici, nous identifions jusqu'à 5 locuteurs sur la table entière en forçant l'utilisation du GPU 0.
| 1 | PROC CAS; |
| 2 | langModel.identifySpeakers / |
| 3 | TABLE={name="audio_data", caslib="casuser"} |
| 4 | model={model={name="speaker_model", caslib="public"}, weights={name="speaker_weights", caslib="public"}, attributes={name="speaker_attributes", caslib="public"}, gpu={devices={0}}} |
| 5 | casOut={name="speakers_detailed_out", caslib="casuser", replace=True} |
| 6 | minSpeakers=2 |
| 7 | maxSpeakers=5 |
| 8 | scope="TABLE" |
| 9 | seed=42; |
| 10 | RUN; |
| 11 | QUIT; |