Obter os resultados da transcrição em lote

Para obter os resultados da transcrição, primeiro verifique o status do trabalho de transcrição. Se o trabalho for concluído, você poderá recuperar as transcrições e o relatório de transcrição.

Obter status da transcrição

Para obter o status do trabalho de transcrição, chame a operação Transcriptions_Get da API REST de reconhecimento de fala.

Importante

Os trabalhos de transcrição em lote são agendados como um melhor esforço. Nos horários de pico, pode levar até 30 minutos ou mais para que um trabalho de transcrição comece a ser processado. Na maior parte do tempo durante a execução, o status da transcrição será Running. Isso ocorre porque o trabalho recebe o status Running no momento em que ele é movido para o sistema de back-end de transcrição em lote. Quando o modelo base é usado, essa atribuição ocorre quase imediatamente; é um pouco mais lento para modelos personalizados. Assim, o tempo gasto em um trabalho de transcrição no estado Running não corresponde ao tempo real de transcrição, mas também inclui o tempo de espera nas filas internas.

Faça uma solicitação HTTP GET usando o URI, conforme mostrado no exemplo a seguir. Substitua YourTranscriptionId por sua ID de transcrição, substitua YourSubscriptionKey pela sua chave de recurso de Fala e substitua YourServiceRegion pela sua região de recurso de Fala.

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

Você deve receber um corpo de resposta no seguinte formato:

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

A propriedade status indica o status atual das transcrições. As transcrições e o relatório de transcrição estarão disponíveis quando o status da transcrição for Succeeded.

Importante

Os trabalhos de transcrição em lote são agendados como um melhor esforço. Nos horários de pico, pode levar até 30 minutos ou mais para que um trabalho de transcrição comece a ser processado. Na maior parte do tempo durante a execução, o status da transcrição será Running. Isso ocorre porque o trabalho recebe o status Running no momento em que ele é movido para o sistema de back-end de transcrição em lote. Quando o modelo base é usado, essa atribuição ocorre quase imediatamente; é um pouco mais lento para modelos personalizados. Assim, o tempo gasto em um trabalho de transcrição no estado Running não corresponde ao tempo real de transcrição, mas também inclui o tempo de espera nas filas internas.

Para obter o status do trabalho de transcrição, use o comando spx batch transcription status. Crie os parâmetros de solicitação de acordo com as seguintes instruções:

  • Defina o parâmetro transcription como a ID da transcrição que você deseja obter.

Confira um exemplo de comando da CLI de Fala para obter o status da transcrição:

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

Você deve receber um corpo de resposta no seguinte formato:

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

A propriedade status indica o status atual das transcrições. As transcrições e o relatório de transcrição estarão disponíveis quando o status da transcrição for Succeeded.

Para obter ajuda da CLI de Fala com as transcrições, execute o comando a seguir:

spx help batch transcription

Obter resultados da transcrição

A operação Transcriptions_ListFiles retorna uma lista de arquivos de resultado para uma transcrição. Um arquivo de relatório de transcrição é fornecido para cada trabalho de transcrição em lote enviado. Além disso, um arquivo de transcrição (o resultado final) é fornecido para cada arquivo de áudio transcrito com êxito.

Faça uma solicitação HTTP GET usando o URI "files" do corpo da resposta anterior. Substitua YourTranscriptionId por sua ID de transcrição, substitua YourSubscriptionKey pela sua chave de recurso de Fala e substitua YourServiceRegion pela sua região de recurso de Fala.

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

Você deve receber um corpo de resposta no seguinte formato:

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

A localização de cada transcrição e os arquivos de relatório de transcrição com mais detalhes são retornados no corpo da resposta. A propriedade contentUrl contém a URL do arquivo de transcrição ("kind": "Transcription") ou de relatório de transcrição ("kind": "TranscriptionReport").

Se você não especificou um contêiner na propriedade destinationContainerUrl da solicitação de transcrição, os resultados serão armazenados em um contêiner gerenciado pela Microsoft. Quando o trabalho de transcrição é excluído, os dados de resultado da transcrição também são excluídos.

O comando spx batch transcription list retorna uma lista de arquivos de resultado para uma transcrição. Um arquivo de relatório de transcrição é fornecido para cada trabalho de transcrição em lote enviado. Além disso, um arquivo de transcrição (o resultado final) é fornecido para cada arquivo de áudio transcrito com êxito.

  • Defina o sinalizador necessário files.
  • Defina o parâmetro transcription necessário para a ID da transcrição da qual você deseja obter logs.

Veja um exemplo de comando da CLI de Fala que obtém uma lista de arquivos de resultado para uma transcrição:

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

Você deve receber um corpo de resposta no seguinte formato:

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

A localização de cada transcrição e os arquivos de relatório de transcrição com mais detalhes são retornados no corpo da resposta. A propriedade contentUrl contém a URL do arquivo de transcrição ("kind": "Transcription") ou de relatório de transcrição ("kind": "TranscriptionReport").

Por padrão, os resultados são armazenados em um contêiner gerenciado pela Microsoft. Quando o trabalho de transcrição é excluído, os dados de resultado da transcrição também são excluídos.

Arquivo de relatório de transcrição

Um arquivo de relatório de transcrição é fornecido para cada trabalho de transcrição em lote enviado.

O conteúdo de cada arquivo de resultado de transcrição é formatado como JSON, conforme mostrado neste exemplo.

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

Arquivo de transcrição em lote

Um arquivo de resultado de transcrição é fornecido para cada arquivo de áudio transcrito com êxito.

O conteúdo de cada arquivo de resultado de transcrição é formatado como JSON, conforme mostrado neste exemplo.

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

Dependendo em parte dos parâmetros de solicitação definidos quando você criou o trabalho de transcrição, o arquivo de transcrição pode conter as propriedades de resultado a seguir.

Propriedade Descrição
channel O número do canal dos resultados. Para transmissões de áudio estéreo, os canais esquerdo e direito são divididos durante a transcrição. Um arquivo de resultado JSON é criado para cada arquivo de áudio de entrada.
combinedRecognizedPhrases Os resultados concatenados de todas as frases para o canal.
confidence O valor de confiança para o reconhecimento.
display A forma de visualização do texto reconhecido. A pontuação adicionada e o uso de maiúsculas estão incluídos.
displayWords Os carimbos de data/hora para cada palavra da transcrição. A propriedade de solicitação displayFormWordLevelTimestampsEnabled deve estar definida como true, caso contrário, essa propriedade não estará presente.

Observação: essa propriedade só está disponível com a API REST de Conversão de fala em texto versão 3.1.
duration A duração do áudio. O valor é uma duração codificada em ISO 8601.
durationInTicks A duração do áudio em tiques (um tique é 100 nanossegundos).
itn O formato ITN (texto inverso normalizado) do texto reconhecido. Abreviações como "Dr Smith" para "Doctor Smith", números de telefone e outras transformações são aplicadas.
lexical As palavras reais reconhecidas.
locale A localidade identificada na entrada do áudio. A propriedade de solicitação languageIdentification deve estar definida, caso contrário, essa propriedade não estará presente.

Observação: essa propriedade só está disponível com a API REST de Conversão de fala em texto versão 3.1.
maskedITN O formato ITN com mascaramento de conteúdo ofensivo aplicado.
nBest Uma lista de possíveis transcrições para a frase atual com confianças.
offset O deslocamento do áudio dessa frase. O valor é uma duração codificada em ISO 8601.
offsetInTicks O deslocamento no áudio dessa frase em tiques (um tique é 100 nanossegundos).
recognitionStatus O estado de reconhecimento. Por exemplo: "Êxito" ou "Falha".
recognizedPhrases A lista de resultados para cada frase.
source A URL fornecida como a origem do áudio de entrada. A origem corresponde à propriedade de solicitação contentUrls ou contentContainerUrl. A propriedade source é a única maneira de confirmar a entrada de áudio para uma transcrição.
speaker O alto-falante identificado. As propriedades de solicitação diarization e diarizationEnabled devem estar definidas, caso contrário, essa propriedade não estará presente.
timestamp A data/hora de criação da transcrição. O valor é um carimbo de data/hora codificado em ISO 8601.
words Uma lista de resultados com texto lexical para cada palavra da frase. A propriedade de solicitação wordLevelTimestampsEnabled deve estar definida como true, caso contrário, essa propriedade não estará presente.

Próximas etapas