Partager via


Comment enregistrer l’audio et les transcriptions pour la reconnaissance vocale

Vous pouvez activer la journalisation pour l’entrée audio et la reconnaissance vocale lors de l’utilisation de la reconnaissance vocale ou de la traduction vocale. Pour la traduction vocale, seuls l’audio et la transcription de l’audio d’origine sont enregistrés. Les traductions ne sont pas journalisées. Cet article explique comment activer, consulter et supprimer les journaux audio et de transcription.

Les journaux audio et de transcription peuvent être utilisés comme entrée pour l’entraînement du modèle de reconnaissance vocale personnalisée. Vous pouvez avoir d’autres cas d’usage.

Avertissement

Ne dépendez pas des journaux audio et de transcription lorsque vous avez besoin de l’enregistrement exact de l’audio d’entrée. Pendant les périodes de pic de charge, le service hiérarchise les ressources matérielles pour les tâches de transcription. Cela peut entraîner l’impossibilité de journaliser des parties mineures de l’audio. De telles occasions sont rares, mais néanmoins possibles.

La journalisation est effectuée de manière asynchrone pour les points de terminaison de modèle de base et personnalisés. Le service Speech stocke les journaux audio et de transcription dans son stockage interne. Ils ne sont pas écrits localement. Les journaux d’audit sont conservés pendant 30 jours. Après cette période, les journaux sont automatiquement supprimés. Toutefois, vous pouvez supprimer des journaux spécifiques ou une plage de journaux disponibles à tout moment.

Vous pouvez également stocker les journaux d’activité audio et de transcription dans un compte de stockage Azure que vous possédez et que vous contrôlez au lieu du stockage local du service Speech en utilisant la technologie BYOS (Bring-your-own-storage). Vous trouverez des détails sur la façon d’utiliser la ressource Speech avec BYOS dans cet article.

Activer la journalisation audio et de transcription

La journalisation est désactivée par défaut. La journalisation peut être activée par session de reconnaissance ou par point de terminaison de modèle personnalisé.

Activer la journalisation pour une session de reconnaissance unique

Vous pouvez activer la journalisation pour une session de reconnaissance unique, que ce soit à l’aide du modèle de base par défaut ou du point de terminaison de modèle personnalisé.

Avertissement

Pour les points de terminaison de modèle personnalisé, le paramètre de journalisation de votre point de terminaison déployé est hiérarchisé par rapport à votre paramètre au niveau de la session (SDK ou API REST). Si la journalisation est activée pour le point de terminaison de modèle personnalisé, le paramètre au niveau de la session (qu’il soit défini sur true ou false) est ignoré. Si la journalisation n’est pas activée pour le point de terminaison de modèle personnalisé, le paramètre au niveau de la session détermine si la journalisation est active.

Activer la journalisation de la reconnaissance vocale avec le kit de développement logiciel (SDK) Speech

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode EnableAudioLogging() de l’instance de classe SpeechConfig.

speechConfig.EnableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

string isAudioLoggingEnabled = speechConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque SpeechRecognizer qui utilise cette instance speechConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode EnableAudioLogging de l’instance de classe SpeechConfig.

speechConfig->EnableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

string isAudioLoggingEnabled = speechConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);

Chaque SpeechRecognizer qui utilise cette instance speechConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging() de l’instance de classe SpeechConfig.

speechConfig.enableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

String isAudioLoggingEnabled = speechConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque SpeechRecognizer qui utilise cette instance speechConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging() de l’instance de classe SpeechConfig.

speechConfig.enableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque SpeechRecognizer qui utilise cette instance speechConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enable_audio_logging de l’instance de classe SpeechConfig.

speech_config.enable_audio_logging()

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

import azure.cognitiveservices.speech as speechsdk
# <...>
is_audio_logging_enabled = speech_config.get_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_EnableAudioLogging)

Chaque SpeechRecognizer qui utilise cette instance speech_config a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging de l’instance de classe SPXSpeechConfiguration.

[speechConfig enableAudioLogging];

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SPXSpeechServiceConnectionEnableAudioLogging :

NSString *isAudioLoggingEnabled = [speechConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Chaque SpeechRecognizer qui utilise cette instance speechConfig a activé la journalisation audio et de transcription.

Activer la journalisation pour la traduction vocale avec le kit de développement logiciel (SDK) Speech

Pour la traduction vocale, seuls l’audio et la transcription de l’audio d’origine sont enregistrés. Les traductions ne sont pas journalisées.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode EnableAudioLogging() de l’instance de classe SpeechTranslationConfig.

speechTranslationConfig.EnableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

string isAudioLoggingEnabled = speechTranslationConfig.GetProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque TranslationRecognizer qui utilise cette instance speechTranslationConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode EnableAudioLogging de l’instance de classe SpeechTranslationConfig.

speechTranslationConfig->EnableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

string isAudioLoggingEnabled = speechTranslationConfig->GetProperty(PropertyId::SpeechServiceConnection_EnableAudioLogging);

Chaque TranslationRecognizer qui utilise cette instance speechTranslationConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging() de l’instance de classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

String isAudioLoggingEnabled = speechTranslationConfig.getProperty(PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque TranslationRecognizer qui utilise cette instance speechTranslationConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging() de l’instance de classe SpeechTranslationConfig.

speechTranslationConfig.enableAudioLogging();

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

var SpeechSDK;
SpeechSDK = speechSdk;
// <...>
string isAudioLoggingEnabled = speechTranslationConfig.getProperty(SpeechSDK.PropertyId.SpeechServiceConnection_EnableAudioLogging);

Chaque TranslationRecognizer qui utilise cette instance speechTranslationConfig a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enable_audio_logging de l’instance de classe SpeechTranslationConfig.

speech_translation_config.enable_audio_logging()

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SpeechServiceConnection_EnableAudioLogging :

import azure.cognitiveservices.speech as speechsdk
# <...>
is_audio_logging_enabled = speech_translation_config.get_property(property_id=speechsdk.PropertyId.SpeechServiceConnection_EnableAudioLogging)

Chaque TranslationRecognizer qui utilise cette instance speech_translation_config a activé la journalisation audio et de transcription.

Pour activer la journalisation audio et de transcription avec le kit de développement logiciel (SDK) Speech, vous exécutez la méthode enableAudioLogging de l’instance de classe SPXSpeechTranslationConfiguration.

[speechTranslationConfig enableAudioLogging];

Pour savoir si la journalisation est activée, obtenez la valeur de la propriété SPXSpeechServiceConnectionEnableAudioLogging :

NSString *isAudioLoggingEnabled = [speechTranslationConfig getPropertyById:SPXSpeechServiceConnectionEnableAudioLogging];

Chaque TranslationRecognizer qui utilise cette instance speechTranslationConfig a activé la journalisation audio et de transcription.

Activer la journalisation pour l’API REST de reconnaissance vocale pour audio court

Si vous utilisez l’API REST de reconnaissance vocale pour audio court et que vous souhaitez activer la journalisation audio et de transcription, vous devez utiliser le paramètre de requête et la valeur storeAudio=true dans le cadre de votre requête REST. Une requête ressemble à ceci :

https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&storeAudio=true

Activer la journalisation audio et de transcription pour un point de terminaison de modèle personnalisé

Cette méthode s’applique uniquement aux points de terminaison de reconnaissance vocale personnalisée.

La journalisation peut être activée ou désactivée dans les paramètres de point de terminaison de modèle personnalisé persistant. Lorsque la journalisation est activée pour un point de terminaison de modèle personnalisé, vous n’avez pas besoin d’activer la journalisation au niveau de la session de reconnaissance avec le SDK ou l’API REST. Même si la journalisation n’est pas activée pour un point de terminaison de modèle personnalisé, vous pouvez l’activer temporairement au niveau de la session de reconnaissance avec le SDK ou l’API REST.

Avertissement

Pour les points de terminaison de modèle personnalisé, le paramètre de journalisation de votre point de terminaison déployé est hiérarchisé par rapport à votre paramètre au niveau de la session (SDK ou API REST). Si la journalisation est activée pour le point de terminaison de modèle personnalisé, le paramètre au niveau de la session (qu’il soit défini sur true ou false) est ignoré. Si la journalisation n’est pas activée pour le point de terminaison de modèle personnalisé, le paramètre au niveau de la session détermine si la journalisation est active.

Vous pouvez activer la journalisation audio et de transcription pour un point de terminaison de modèle personnalisé :

Désactiver la journalisation pour un point de terminaison de modèle personnalisé

Pour désactiver la journalisation audio et de transcription pour un point de terminaison de modèle personnalisé, vous devez mettre à jour le paramètre de journalisation du point de terminaison persistant à l’aide de l’API REST de reconnaissance vocale. Il n’existe aucun moyen de désactiver la journalisation pour un point de terminaison de modèle personnalisé existant à l’aide de Speech Studio.

Pour désactiver la journalisation d’un point de terminaison personnalisé, utilisez l’opération Endpoints_Update de l’API REST de reconnaissance vocale. Construisez le corps de la requête conformément aux instructions suivantes :

  • Définissez la propriété contentLoggingEnabled dans properties. Définissez cette propriété sur true pour activer la journalisation du trafic du point de terminaison. Définissez cette propriété sur false pour désactiver la journalisation du trafic du point de terminaison.

Effectuez une requête HTTP PATCH à l’aide de l’URI, comme illustré dans l’exemple suivant. Remplacez YourSubscriptionKey par votre clé de ressource Speech, YourServiceRegion par votre clé de ressource Speech, YourEndpointId par votre ID de point de terminaison, et définissez les propriétés du corps de la demande comme décrit précédemment.

curl -v -X PATCH -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "properties": {
    "contentLoggingEnabled": false
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/YourEndpointId"

Vous devriez recevoir un corps de réponse au format suivant :

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/9e240dc1-3d2d-4ac9-98ec-1be05ba0e9dd"
  },
  "links": {
    "logs": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/a07164e8-22d1-4eb7-aa31-bf6bb1097f37/files/logs",
    "restInteractive": "https://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
    "restConversation": "https://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
    "restDictation": "https://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
    "webSocketInteractive": "wss://eastus.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
    "webSocketConversation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37",
    "webSocketDictation": "wss://eastus.stt.speech.microsoft.com/speech/recognition/dictation/cognitiveservices/v1?cid=a07164e8-22d1-4eb7-aa31-bf6bb1097f37"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "properties": {
    "loggingEnabled": false
  },
  "lastActionDateTime": "2024-07-15T16:30:12Z",
  "status": "Succeeded",
  "createdDateTime": "2024-07-15T16:29:36Z",
  "locale": "en-US",
  "displayName": "My Endpoint",
  "description": "My Endpoint Description"
}

Le corps de la réponse doit refléter le nouveau paramètre. Le nom de la propriété de journalisation dans la réponse (loggingEnabled) est différent de celui de la propriété de journalisation que vous définissez dans la requête (contentLoggingEnabled).

Obtenir des journaux audio et de transcription

Vous pouvez accéder aux journaux audio et de transcription à l’aide de l’API REST de reconnaissance vocale. Pour les points de terminaison de modèle personnalisés, vous pouvez également utiliser Speech Studio. Pour en savoir plus, consultez les sections suivantes.

Notes

Les données de journalisation sont conservées pendant 30 jours. Après cette période, les journaux sont automatiquement supprimés. Toutefois, vous pouvez supprimer des journaux spécifiques ou une plage de journaux disponibles à tout moment.

Obtenir des journaux audio et de transcription avec Speech Studio

Cette méthode s’applique uniquement aux points de terminaison de modèle personnalisé.

Pour télécharger les journaux d’activité de point de terminaison :

  1. Connectez-vous à Speech Studio.
  2. Sélectionnez Custom Speech> Nom de votre projet >Déployer des modèles.
  3. Sélectionnez le lien par nom de point de terminaison.
  4. Sous Journalisation du contenu, sélectionnez Télécharger le journal.

Avec cette approche, vous pouvez télécharger tous les jeux de journaux disponibles à la fois. Il n’existe aucun moyen de télécharger les jeux de journaux sélectionnés dans Speech Studio.

Obtenir des journaux d’activité audio et de transcription avec l’API REST de reconnaissance vocale

Vous pouvez télécharger tout ou un sous-ensemble des jeux de journaux disponibles.

Cette méthode s’applique aux points de terminaison de modèles de base et personnalisés. Pour répertorier et télécharger les journaux audio et de transcription :

Obtenir des ID de journaux avec l’API REST de reconnaissance vocale

Dans certains scénarios, vous devrez peut-être obtenir les ID des journaux disponibles. Par exemple, vous voudrez peut-être supprimer un journal spécifique, comme décrit plus loin dans cet article.

Pour obtenir les ID des journaux disponibles :

Voici un exemple de sortie de Endpoints_ListLogs. Par souci de simplicité, un seul jeu de journaux est affiché :

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json",
      "name": "163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9.v2.json",
      "kind": "Transcription",
      "properties": {
        "size": 79920
      },
      "createdDateTime": "2024-07-15T16:29:36Z",
      "links": {
        "contentUrl": "<Link to download log file>"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav",
      "name": "163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9.wav",
      "kind": "Audio",
      "properties": {
        "size": 932966
      },
      "createdDateTime": "2024-07-15T16:29:36Z",
      "links": {
        "contentUrl": "<Link to download log file>"
      }
    }
  ]
}

Les emplacements de chaque fichier journal audio et de transcription sont retournés dans le corps de la réponse. Consultez la propriété kind correspondante pour déterminer si le fichier inclut l’audio ("kind": "Audio") ou la transcription ("kind": "Transcription").

L’ID de journal de chaque fichier journal est la dernière partie de l’URL dans la valeur de l’élément "self". L’ID de journal dans l’exemple suivant est 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json.

"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/endpoints/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/files/logs/2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json"

Supprimer les journaux audio et de transcription

Les données de journalisation sont conservées pendant 30 jours. Après cette période, les journaux sont automatiquement supprimés. Toutefois, vous pouvez supprimer des journaux spécifiques ou une plage de journaux disponibles à tout moment.

Pour n’importe quel point de terminaison de modèle de base ou personnalisé, vous pouvez supprimer tous les journaux disponibles, les journaux pour une période donnée ou un journal particulier en fonction de son ID de journal. Le processus de suppression est effectué de manière asynchrone et peut prendre des minutes, des heures, un jour ou plus, en fonction du nombre de fichiers journaux.

Pour supprimer les journaux audio et de transcription, vous devez utiliser l’API REST de reconnaissance vocale. Il n’existe aucun moyen de supprimer des journaux à l’aide de Speech Studio.

Supprimer tous les journaux ou certains pour une période donnée

Pour supprimer tous les journaux ou certains pour une période donnée :

Si vous le souhaitez, définissez le endDate de la suppression des journaux audio (jour spécifique, UTC). Format attendu : « aaaa-mm-jj ». Pour instance, « 2023-03-15 » entraîne la suppression de tous les journaux le 15 mars 2023 et avant.

Supprimer un journal spécifique

Pour supprimer un journal spécifique par ID :

Pour plus d’informations sur l’obtention des ID de journal, consultez une section précédente Obtenir des ID de journaux avec l’API REST de reconnaissance vocale.

Étant donné que les journaux audio et de transcription ont des ID distincts (tels que des ID 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_v2_json et 2023-03-13_163715__0420c53d-e6ac-4857-bce0-f39c3f9f5ff9_wav d’un exemple précédent dans cet article), lorsque vous souhaitez supprimer à la fois les journaux audio et de transcription, vous exécutez des requêtes de suppression par ID distinctes.

Étapes suivantes