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. |