Partager via


Obtenir des résultats de transcription par lots

Pour obtenir les résultats de la transcription, vérifiez d’abord l’état du travail de transcription. Si le travail est terminé, vous pouvez récupérer les transcriptions et le rapport de transcription.

Obtenir l’état de la transcription

Pour obtenir l’état du travail de transcription, appelez l’opération Transcriptions_Get de l’API REST de reconnaissance vocale.

Important

Les travaux de transcription par lots sont planifiés en faisant au mieux selon les circonstances. Aux heures de pointe, le démarrage du traitement d’un travail de transcription peut prendre jusqu’à 30 minutes ou plus. Pendant l’exécution, l’état de transcription est pour la plupart du temps Running. Cela est dû au fait que le travail se voit affecter l’état Running au moment où il passe au système back-end de transcription par lots. Cette affectation se produit presque immédiatement lorsque le modèle de base est utilisé, et légèrement plus lentement pour les modèles personnalisés. Le temps passé par un travail de transcription dans l’état Running ne correspond donc pas au temps de transcription réel, mais inclut également le temps d’attente dans les files d’attente internes.

Effectuez une requête HTTP GET à l’aide de l’URI, comme illustré dans l’exemple suivant. Remplacez YourTranscriptionId par votre ID de transcription, remplacez YourSubscriptionKey par votre clé de ressource Speech et remplacez YourServiceRegion par votre région de ressource Speech.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/YourTranscriptionId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "displayFormWordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "duration": "PT3S",
    "languageIdentification": {
      "candidateLocales": [
        "en-US",
        "de-DE",
        "es-ES"
      ]
    }
  },
  "lastActionDateTime": "2022-09-10T18:39:09Z",
  "status": "Succeeded",
  "createdDateTime": "2022-09-10T18:39:07Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

La propriété status indique l’état actuel des transcriptions. Les transcriptions et le rapport de transcription seront disponibles lorsque l’état de transcription sera Succeeded.

Important

Les travaux de transcription par lots sont planifiés en faisant au mieux selon les circonstances. Aux heures de pointe, le démarrage du traitement d’un travail de transcription peut prendre jusqu’à 30 minutes ou plus. Pendant l’exécution, l’état de transcription est pour la plupart du temps Running. Cela est dû au fait que le travail se voit affecter l’état Running au moment où il passe au système back-end de transcription par lots. Cette affectation se produit presque immédiatement lorsque le modèle de base est utilisé, et légèrement plus lentement pour les modèles personnalisés. Le temps passé par un travail de transcription dans l’état Running ne correspond donc pas au temps de transcription réel, mais inclut également le temps d’attente dans les files d’attente internes.

Pour obtenir l’état du travail de transcription, utilisez la commande spx batch transcription status. Construisez les paramètres de la requête conformément aux instructions suivantes :

  • Définissez le paramètre transcription sur l’ID de la transcription que vous souhaitez obtenir.

Voici un exemple de commande CLI Speech pour obtenir l’état de la transcription :

spx batch transcription status --api-version v3.1 --transcription YourTranscriptionId

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

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "displayFormWordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "duration": "PT3S"
  },
  "lastActionDateTime": "2022-09-10T18:39:09Z",
  "status": "Succeeded",
  "createdDateTime": "2022-09-10T18:39:07Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

La propriété status indique l’état actuel des transcriptions. Les transcriptions et le rapport de transcription seront disponibles lorsque l’état de transcription sera Succeeded.

Pour obtenir de l’aide sur l’interface CLI Speech en lien avec les transcription, exécutez la commande suivante :

spx help batch transcription

Obtenir les résultats de la transcription

L’opération Transcriptions_ListFiles renvoie une liste de fichiers de résultats pour une transcription. Un fichier de rapport de transcription est fourni pour chaque travail de transcription par lot soumis. En outre, un fichier de transcription (résultat final) est fourni pour chaque fichier audio transcrit avec succès.

Effectuez une requête HTTP GET à l’aide de l’URI « fichiers » du corps de la réponse précédente. Remplacez YourTranscriptionId par votre ID de transcription, remplacez YourSubscriptionKey par votre clé de ressource Speech et remplacez YourServiceRegion par votre région de ressource Speech.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/YourTranscriptionId/files" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

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

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_0_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=AobsqO9DH9CIOuGC5ifFH3QpkQay6PjHiWn5G87FcIg%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_1_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=wO3VxbhLK4PhT3rwLpJXBYHYQi5EQqyl%2Fp1lgjNvfh0%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_report.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=gk1k%2Ft5qa1TpmM45tPommx%2F2%2Bc%2FUUfsYTX5FoSa1u%2FY%3D"
      }
    }
  ]
}

L'emplacement de chaque transcription et les fichiers de rapport de transcription avec plus de détails sont renvoyés dans le corps de la réponse. La propriété contentUrl contient l’URL du fichier de transcription ("kind": "Transcription") ou de rapport de transcription ("kind": "TranscriptionReport").

Si vous n’avez pas spécifié de conteneur dans la propriété destinationContainerUrl de la demande de transcription, les résultats sont stockés dans un conteneur géré par Microsoft. La suppression du travail de transcription a également pour effet de supprimer les données du résultat de la transcription.

La commande spx batch transcription list retourne une liste de fichiers de résultats pour une transcription. Un fichier de rapport de transcription est fourni pour chaque travail de transcription par lot soumis. En outre, un fichier de transcription (résultat final) est fourni pour chaque fichier audio transcrit avec succès.

  • Définissez l’indicateur files requis.
  • Définissez le paramètre transcription requis sur l’ID de la transcription dont vous souhaitez obtenir les journaux.

Voici un exemple de commande CLI Speech qui permet d’obtenir une liste de fichiers de résultats pour une transcription :

spx batch transcription list --api-version v3.1 --files --transcription YourTranscriptionId

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

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_0_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=AobsqO9DH9CIOuGC5ifFH3QpkQay6PjHiWn5G87FcIg%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_1_0.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=wO3VxbhLK4PhT3rwLpJXBYHYQi5EQqyl%2Fp1lgjNvfh0%3D"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2022-09-10T18:39:09Z",
      "links": {
        "contentUrl": "https://spsvcprodeus.blob.core.windows.net/bestor-c6e3ae79-1b48-41bf-92ff-940bea3e5c2d/TranscriptionData/637d9333-6559-47a6-b8de-c7d732c1ddf3_report.json?sv=2021-08-06&st=2022-09-10T18%3A36%3A01Z&se=2022-09-11T06%3A41%3A01Z&sr=b&sp=rl&sig=gk1k%2Ft5qa1TpmM45tPommx%2F2%2Bc%2FUUfsYTX5FoSa1u%2FY%3D"
      }
    }
  ]
}

L'emplacement de chaque transcription et les fichiers de rapport de transcription avec plus de détails sont renvoyés dans le corps de la réponse. La propriété contentUrl contient l’URL du fichier de transcription ("kind": "Transcription") ou de rapport de transcription ("kind": "TranscriptionReport").

Par défaut, les résultats sont stockés dans un conteneur géré par Microsoft. La suppression du travail de transcription a également pour effet de supprimer les données du résultat de la transcription.

Fichier de rapport de transcription

Un fichier de rapport de transcription est fourni pour chaque travail de transcription par lot soumis.

Le contenu de chaque fichier de résultat de transcription est mis en forme en JSON, comme illustré dans cet exemple.

{
  "successfulTranscriptionsCount": 2,
  "failedTranscriptionsCount": 0,
  "details": [
    {
      "source": "https://crbn.us/hello.wav",
      "status": "Succeeded"
    },
    {
      "source": "https://crbn.us/whatstheweatherlike.wav",
      "status": "Succeeded"
    }
  ]
}

Fichier de résultat de transcription

Un fichier de résultat de transcription est fourni pour chaque fichier audio transcrit avec succès.

Le contenu de chaque fichier de résultat de transcription est mis en forme en JSON, comme illustré dans cet exemple.

{
  "source": "...",
  "timestamp": "2023-07-10T14:28:16Z",
  "durationInTicks": 25800000,
  "duration": "PT2.58S",
  "combinedRecognizedPhrases": [
    {
      "channel": 0,
      "lexical": "hello world",
      "itn": "hello world",
      "maskedITN": "hello world",
      "display": "Hello world."
    }
  ],
  "recognizedPhrases": [
    {
      "recognitionStatus": "Success",
      "channel": 0,
      "offset": "PT0.76S",
      "duration": "PT1.32S",
      "offsetInTicks": 7600000.0,
      "durationInTicks": 13200000.0,
      "nBest": [
        {
          "confidence": 0.5643338,
          "lexical": "hello world",
          "itn": "hello world",
          "maskedITN": "hello world",
          "display": "Hello world.",
          "displayWords": [
            {
              "displayText": "Hello",
              "offset": "PT0.76S",
              "duration": "PT0.76S",
              "offsetInTicks": 7600000.0,
              "durationInTicks": 7600000.0
            },
            {
              "displayText": "world.",
              "offset": "PT1.52S",
              "duration": "PT0.56S",
              "offsetInTicks": 15200000.0,
              "durationInTicks": 5600000.0
            }
          ]
        },
        {
          "confidence": 0.1769063,
          "lexical": "helloworld",
          "itn": "helloworld",
          "maskedITN": "helloworld",
          "display": "helloworld"
        },
        {
          "confidence": 0.49964225,
          "lexical": "hello worlds",
          "itn": "hello worlds",
          "maskedITN": "hello worlds",
          "display": "hello worlds"
        },
        {
          "confidence": 0.4995761,
          "lexical": "hello worm",
          "itn": "hello worm",
          "maskedITN": "hello worm",
          "display": "hello worm"
        },
        {
          "confidence": 0.49418187,
          "lexical": "hello word",
          "itn": "hello word",
          "maskedITN": "hello word",
          "display": "hello word"
        }
      ]
    }
  ]
}

Selon la partie des paramètres de requête définis lors de la création du travail de transcription, le fichier de transcription peut contenir les propriétés de résultat suivantes.

Propriété Description
channel Le numéro de canal des résultats. Dans le cas des flux audio stéréo, les canaux gauche et droit sont fractionnés lors de la transcription. Un fichier de résultat JSON est créé pour chaque fichier audio d’entrée.
combinedRecognizedPhrases Les résultats concaténés de toutes les expressions du canal.
confidence La valeur de confiance pour la reconnaissance.
display Forme d’affichage du texte reconnu. Des signes de ponctuation et des majuscules ajoutés sont inclus.
displayWords Horodatages pour chaque mot de la transcription. La propriété de requête displayFormWordLevelTimestampsEnabled doit être définie sur true, sinon cette propriété n’est pas présente.

Remarque : cette propriété n’est disponible qu’avec l’API REST de reconnaissance vocale version 3.1.
duration Durée de l’audio. La valeur est une durée encodée selon la norme ISO 8601.
durationInTicks Durée audio en cycles (1 cycle correspond à 100 nanosecondes).
itn La forme « normalisation du texte inversée » (ITN) du texte reconnu. Des abréviations (« Docteur Smith » en « Dr Smith »), numéros de téléphone, et d’autres transformations sont appliquées.
lexical Les mots réels sont reconnus.
locale Les paramètres régionaux identifiés à partir de l’entrée audio. La propriété de requête languageIdentification doit être définie, sinon cette propriété n’est pas présente.

Remarque : cette propriété n’est disponible qu’avec l’API REST de reconnaissance vocale version 3.1.
maskedITN Forme « normalisation du texte inversée » avec masquage des termes vulgaires appliqué.
nBest Une liste des transcriptions possibles pour l'expression actuelle avec confiance.
offset Décalage dans l’audio de cette phrase. La valeur est une durée encodée selon la norme ISO 8601.
offsetInTicks Le décalage dans l’audio de cette expression en cycles (1 cycle correspond à 100 nanosecondes).
recognitionStatus L’état de reconnaissance. Par exemple : « Réussite » ou « Échec ».
recognizedPhrases La liste des résultats pour chaque expression.
source L’URL fournie en tant que source audio d’entrée. La source correspond à la propriété de requête contentUrls ou contentContainerUrl. La propriété source est la seule façon de confirmer l’entrée audio d’une transcription.
speaker L’orateur identifié. Les propriétés de requête diarization et diarizationEnabled doivent être définies, sinon cette propriété n’est pas présente.
timestamp Date et heure de création de la transcription. La valeur est un timestamp encodé selon la norme ISO 8601.
words Une liste des résultats avec texte lexical pour chaque mot de l’expression. La propriété de requête wordLevelTimestampsEnabled doit être définie sur true, sinon cette propriété n’est pas présente.

Étapes suivantes