Obter resultados de 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 de transcrição
Para obter o status do trabalho de transcrição, chame a operação Transcriptions_Get da API REST de fala para texto.
Importante
Os trabalhos de transcrição em lote são agendados com base no melhor esforço. Nas horas de pico, pode levar até 30 minutos ou mais para que um trabalho de transcrição comece a ser processado. Na maioria das vezes, durante a execução, o status da transcrição será Running
. Isso ocorre porque o status é atribuído ao Running
trabalho 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 acontece quase imediatamente; é um pouco mais lento para modelos personalizados. Assim, a quantidade de tempo que um trabalho de transcrição passa no Running
estado 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
pelo ID de transcrição, substitua YourSubscriptionKey
pela chave de recurso Fala e substitua YourServiceRegion
pela região de recurso Fala.
curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/YourTranscriptionId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
Deverá 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 status
propriedade indica o status atual das transcrições. As transcrições e o relatório de transcrição estão disponíveis quando o estado da transcrição é Succeeded
.
Importante
Os trabalhos de transcrição em lote são agendados com base no melhor esforço. Nas horas de pico, pode levar até 30 minutos ou mais para que um trabalho de transcrição comece a ser processado. Na maioria das vezes, durante a execução, o status da transcrição será Running
. Isso ocorre porque o status é atribuído ao Running
trabalho 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 acontece quase imediatamente; é um pouco mais lento para modelos personalizados. Assim, a quantidade de tempo que um trabalho de transcrição passa no Running
estado 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 spx batch transcription status
comando. Construa os parâmetros de solicitação de acordo com as seguintes instruções:
- Defina o
transcription
parâmetro como a ID da transcrição que você deseja obter.
Aqui está 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
Deverá 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 status
propriedade indica o status atual das transcrições. As transcrições e o relatório de transcrição estão disponíveis quando o estado da transcrição é Succeeded
.
Para obter ajuda da CLI de fala com transcrições, execute o seguinte comando:
spx help batch transcription
Obter resultados de 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 sucesso.
Faça uma solicitação HTTP GET usando o URI "arquivos" do corpo da resposta anterior. Substitua YourTranscriptionId
pelo ID de transcrição, substitua YourSubscriptionKey
pela chave de recurso Fala e substitua YourServiceRegion
pela região de recurso Fala.
curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/YourTranscriptionId/files" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
Deverá 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 arquivo de relatório de transcrição e transcrição com mais detalhes é retornada no corpo da resposta. A contentUrl
propriedade contém a URL para o arquivo de transcrição ("kind": "Transcription"
) ou relatório de transcrição ("kind": "TranscriptionReport"
).
Se você não especificou um contêiner na destinationContainerUrl
propriedade 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 do resultado da transcrição também são excluídos.
O spx batch transcription list
comando 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 sucesso.
- Defina o sinalizador necessário
files
. - Defina o parâmetro necessário
transcription
para a ID da transcrição que você deseja obter logs.
Aqui está 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
Deverá 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 arquivo de relatório de transcrição e transcrição com mais detalhes é retornada no corpo da resposta. A contentUrl
propriedade contém a URL para o arquivo de transcrição ("kind": "Transcription"
) ou 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 do 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, como 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 resultados de transcrição
Um arquivo de resultado de transcrição é fornecido para cada arquivo de áudio transcrito com sucesso.
O conteúdo de cada arquivo de resultado de transcrição é formatado como JSON, como 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 seguintes propriedades de resultado.
Property | Description |
---|---|
channel |
O número do canal dos resultados. Para fluxos 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 da confiança para o reconhecimento. |
display |
A forma de exibição do texto reconhecido. Pontuação e maiúsculas adicionadas estão incluídas. |
displayWords |
Os carimbos de data/hora para cada palavra da transcrição. A displayFormWordLevelTimestampsEnabled propriedade request deve ser definida como true , caso contrário, essa propriedade não estará presente.Nota: Esta propriedade só está disponível com a API REST de fala para texto versão 3.1 e posterior. |
duration |
A duração do áudio. O valor é uma duração codificada pela ISO 8601. |
durationInTicks |
A duração do áudio em ticks (um tick é 100 nanossegundos). |
itn |
O texto inverso normalizado (ITN) forma do texto reconhecido. Abreviaturas como "Doctor Smith" para "Dr Smith", números de telefone e outras transformações são aplicadas. |
lexical |
As palavras reais reconhecidas. |
locale |
A localidade identificou a partir da entrada o áudio. A languageIdentification propriedade request deve ser definida, caso contrário, essa propriedade não estará presente.Nota: Esta propriedade só está disponível com a API REST de fala para texto versão 3.1 e posterior. |
maskedITN |
O formulário ITN com mascaramento de palavrões aplicado. |
nBest |
Uma lista de transcrições possíveis para a frase atual com confidências. |
offset |
O deslocamento em áudio desta frase. O valor é uma duração codificada pela ISO 8601. |
offsetInTicks |
O deslocamento em áudio desta frase em ticks (um tick é 100 nanossegundos). |
recognitionStatus |
O estado de reconhecimento. Por exemplo: "Sucesso" ou "Fracasso". |
recognizedPhrases |
A lista de resultados para cada frase. |
source |
O URL que foi fornecido como a fonte de áudio de entrada. A origem corresponde à contentUrls propriedade ou contentContainerUrl request. A source propriedade é a única maneira de confirmar a entrada de áudio para uma transcrição. |
speaker |
O orador identificado. As diarization propriedades e diarizationEnabled request devem ser definidas, caso contrário, essa propriedade não estará presente. |
timestamp |
A data e hora de criação da transcrição. O valor é um carimbo de data/hora codificado pela ISO 8601. |
words |
Uma lista de resultados com texto lexical para cada palavra da frase. A wordLevelTimestampsEnabled propriedade request deve ser definida como true , caso contrário, essa propriedade não estará presente. |