Ottenere i risultati della trascrizione batch

Per ottenere i risultati della trascrizione, controllare prima di tutto lo stato del processo di trascrizione. Se il processo è completato, è possibile recuperare le trascrizioni e il report di trascrizione.

Ottenere lo stato della trascrizione

Per ottenere lo stato del processo di trascrizione, chiamare l'operazione Transcriptions_Get dell'API REST di riconoscimento vocale.

Importante

I processi di trascrizione in batch vengono pianificati nel modo più efficiente possibile. Nelle ore di punta possono essere necessari fino a 30 minuti o più per avviare l'elaborazione di un processo di trascrizione. La maggior parte del tempo durante l'esecuzione lo stato della trascrizione sarà Running. Ciò è dovuto al fatto che al processo viene assegnato lo stato Running nel momento in cui passa al sistema back-end di trascrizione batch. Quando si usa il modello di base, questa assegnazione avviene quasi immediatamente. Per i modelli personalizzati è leggermente più lenta. Pertanto, la quantità di tempo che un processo di trascrizione trascorre nello stato Running non corrisponde al tempo di trascrizione effettivo, ma include anche il tempo di attesa nelle code interne.

Effettuare una richiesta HTTP GET usando l'URI come illustrato nell'esempio seguente. Sostituire YourTranscriptionId con l'ID di trascrizione, sostituire YourSubscriptionKey con la chiave della risorsa Voce e sostituire YourServiceRegion con l'area della risorsa Voce.

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

Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/aaa321e9-5a4e-4db1-88a2-f251bbe7b555"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/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": "2024-05-10T18:39:09Z",
  "status": "Succeeded",
  "createdDateTime": "2024-05-10T18:39:07Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

La proprietà status indica lo stato corrente delle trascrizioni. Le trascrizioni e il report sulla trascrizione diventano disponibili quando lo stato della trascrizione è Succeeded.

Importante

I processi di trascrizione in batch vengono pianificati nel modo più efficiente possibile. Nelle ore di punta possono essere necessari fino a 30 minuti o più per avviare l'elaborazione di un processo di trascrizione. La maggior parte del tempo durante l'esecuzione lo stato della trascrizione sarà Running. Ciò è dovuto al fatto che al processo viene assegnato lo stato Running nel momento in cui passa al sistema back-end di trascrizione batch. Quando si usa il modello di base, questa assegnazione avviene quasi immediatamente. Per i modelli personalizzati è leggermente più lenta. Pertanto, la quantità di tempo che un processo di trascrizione trascorre nello stato Running non corrisponde al tempo di trascrizione effettivo, ma include anche il tempo di attesa nelle code interne.

Per ottenere lo stato del processo di trascrizione, usare il comando spx batch transcription status. Creare i parametri della richiesta in base alle istruzioni seguenti:

  • Impostare il parametro transcription sull'ID della trascrizione da recuperare.

Ecco un esempio di comando dell'interfaccia della riga di comando di Voce per ottenere lo stato della trascrizione:

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

Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:

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

La proprietà status indica lo stato corrente delle trascrizioni. Le trascrizioni e il report sulla trascrizione diventano disponibili quando lo stato della trascrizione è Succeeded.

Per visualizzare le informazioni della Guida dell'interfaccia della riga di comando di Voce per le trascrizioni, eseguire il comando seguente:

spx help batch transcription

Ottenere i risultati della trascrizione

L'operazione Transcriptions_ListFiles restituisce un elenco di file di risultati per una trascrizione. Viene fornito un file di report di trascrizione per ogni processo di trascrizione batch inviato. Inoltre, viene fornito un file di trascrizione (il risultato finale) per ogni file audio trascritto correttamente.

Effettuare una richiesta HTTP GET usando l'URI "files" del corpo della risposta precedente. Sostituire YourTranscriptionId con l'ID di trascrizione, sostituire YourSubscriptionKey con la chiave della risorsa Voce e sostituire YourServiceRegion con l'area della risorsa Voce.

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

Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionUrl"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionUrl"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionReportUrl"
      }
    }
  ]
}

Il percorso di ogni file di trascrizione e di report di trascrizione con altri dettagli viene restituito nel corpo della risposta. La proprietà contentUrl contiene l'URL del file di trascrizione ("kind": "Transcription") o del report di trascrizione ("kind": "TranscriptionReport").

Se non è stato specificato un contenitore nella proprietà destinationContainerUrl della richiesta di trascrizione, i risultati vengono archiviati in un contenitore gestito da Microsoft. Quando il processo di trascrizione viene eliminato, vengono eliminati anche i dati dei risultati della trascrizione.

Il comando spx batch transcription list restituisce un elenco di file di risultati per una trascrizione. Viene fornito un file di report di trascrizione per ogni processo di trascrizione batch inviato. Inoltre, viene fornito un file di trascrizione (il risultato finale) per ogni file audio trascritto correttamente.

  • Impostare il flag files obbligatorio.
  • Impostare il parametro transcription obbligatorio sull'ID della trascrizione per cui recuperare i log.

Ecco un esempio di comando dell'interfaccia della riga di comando di Voce che ottiene un elenco di file di risultati per una trascrizione:

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

Dovrebbe essere visualizzato un corpo della risposta nel formato seguente:

{
  "values": [
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/2dd180a1-434e-4368-a1ac-37350700284f",
      "name": "contenturl_0.json",
      "kind": "Transcription",
      "properties": {
        "size": 3407
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionUrl"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/c027c6a9-2436-4303-b64b-e98e3c9fc2e3",
      "name": "contenturl_1.json",
      "kind": "Transcription",
      "properties": {
        "size": 8233
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionUrl"
      }
    },
    {
      "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/637d9333-6559-47a6-b8de-c7d732c1ddf3/files/faea9a41-c95c-4d91-96ff-e39225def642",
      "name": "report.json",
      "kind": "TranscriptionReport",
      "properties": {
        "size": 279
      },
      "createdDateTime": "2024-05-10T18:39:09Z",
      "links": {
        "contentUrl": "YourTranscriptionReportUrl"
      }
    }
  ]
}

Il percorso di ogni file di trascrizione e di report di trascrizione con altri dettagli viene restituito nel corpo della risposta. La proprietà contentUrl contiene l'URL del file di trascrizione ("kind": "Transcription") o del report di trascrizione ("kind": "TranscriptionReport").

Per impostazione predefinita, i risultati vengono archiviati in un contenitore gestito da Microsoft. Quando il processo di trascrizione viene eliminato, vengono eliminati anche i dati dei risultati della trascrizione.

File di report di trascrizione

Viene fornito un file di report di trascrizione per ogni processo di trascrizione batch inviato.

Il contenuto di ogni file dei risultati della trascrizione viene formattato come JSON, come illustrato in questo esempio.

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

File dei risultati della trascrizione

Viene fornito un solo file dei risultati della trascrizione per ogni file audio trascritto correttamente.

Il contenuto di ogni file dei risultati della trascrizione viene formattato come JSON, come illustrato in questo esempio.

{
  "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"
        }
      ]
    }
  ]
}

A seconda in parte dei parametri della richiesta impostati al momento della creazione del processo di trascrizione, il file di trascrizione può contenere le proprietà dei risultati seguenti.

Proprietà Descrizione
channel Numero di canale dei risultati. Per i flussi audio stereo, i canali sinistro e destro vengono divisi durante la trascrizione. Viene creato un file di risultati JSON per ogni file audio di input.
combinedRecognizedPhrases Risultati concatenati di tutte le frasi per il canale.
confidence Valore di attendibilità per il riconoscimento.
display Forma di visualizzazione del testo riconosciuto. Sono inclusi i segni di punteggiatura e la combinazione di maiuscole e minuscole aggiunti.
displayWords Timestamp per ogni parola della trascrizione. La proprietà della richiesta displayFormWordLevelTimestampsEnabled deve essere impostata su true. In caso contrario, questa proprietà non è presente.

Nota: questa proprietà è disponibile solo con l'API REST Riconoscimento vocale versione 3.1 e successive.
duration Durata dell'audio. Il valore è una durata con codifica ISO 8601.
durationInTicks Durata audio in tick (un tick corrisponde a 100 nanosecondi).
itn Forma ITN (Inverse Text Normalized) del testo riconosciuto. Vengono applicate abbreviazioni come "Dr Smith" per "Doctor Smith", numeri di telefono e altre trasformazioni.
lexical Parole effettive riconosciute.
locale Impostazioni locali identificate dall'input dell'audio. La proprietà della richiesta languageIdentification deve essere impostata. In caso contrario, questa proprietà non è presente.

Nota: questa proprietà è disponibile solo con l'API REST Riconoscimento vocale versione 3.1 e successive.
maskedITN Forma ITN con il mascheramento per contenuto volgare applicato, se richiesto.
nBest Elenco delle possibili trascrizioni per la frase corrente con indicazione della attendibilità.
offset Offset nell'audio di questa frase. Il valore è una durata con codifica ISO 8601.
offsetInTicks Offset nell'audio di questa frase in tick (un tick corrisponde a 100 nanosecondi).
recognitionStatus Stato di riconoscimento. Ad esempio: "Success" o "Failure".
recognizedPhrases Elenco di risultati per ogni frase.
source URL fornito come origine audio di input. L'origine corrisponde alla proprietà della richiesta contentUrls o contentContainerUrl. La proprietà source è l'unico modo per confermare l'input audio per una trascrizione.
speaker Parlante identificato. Le proprietà della richiesta diarization e diarizationEnabled devono essere impostate. In caso contrario, questa proprietà non è presente.
timestamp Data e ora di creazione della trascrizione. Il valore è un timestamp con codifica ISO 8601.
words Elenco di risultati con testo lessicale per ogni parola della frase. La proprietà della richiesta wordLevelTimestampsEnabled deve essere impostata su true. In caso contrario, questa proprietà non è presente.

Passaggi successivi