Usar a API de transcrição rápida com o Azure AI Speech

A API de transcrição rápida é usada para transcrever arquivos de áudio com resultados de retorno de forma síncrona e mais rápida do que em tempo real. Use a transcrição rápida nos cenários em que você precisa da transcrição de uma gravação de áudio o mais rápido possível com latência previsível, como:

  • Transcrição rápida de áudio ou vídeo, legendas e edição.
  • Tradução de vídeo

Ao contrário da API de transcrição em lote, a API de transcrição rápida só produz transcrições na forma de exibição (não lexical). O formulário de exibição é uma forma mais legível por humanos da transcrição que inclui pontuação e maiúsculas.

Pré-requisitos

  • Um recurso de Fala do Azure AI em uma das regiões onde a API de transcrição rápida está disponível. As regiões suportadas são: Leste da Austrália, Sul do Brasil, Índia Central, Leste dos EUA, Leste dos EUA 2, Centro Francês, Leste do Japão, Centro-Norte dos EUA, Europa do Norte, Centro-Sul dos EUA, Sudeste Asiático, Suécia Central, Europa Ocidental, Oeste dos EUA, Oeste dos EUA 2, Oeste dos EUA 3. Para obter mais informações sobre regiões com suporte para outros recursos do serviço de Fala, consulte Regiões do serviço de Fala.

  • Um arquivo de áudio (menos de 2 horas de duração e menos de 200 MB de tamanho) em um dos formatos e codecs suportados pela API de transcrição em lote. Para obter mais informações sobre formatos de áudio suportados, consulte Formatos de áudio suportados.

Use a API de transcrição rápida

Gorjeta

Experimente a transcrição rápida no Azure AI Studio.

Aprendemos a usar a API de transcrição rápida (via Transcrições - Transtranscrição) com os seguintes cenários:

  • Localidade conhecida especificada: transcreva um arquivo de áudio com uma localidade especificada. Se você souber a localidade do arquivo de áudio, poderá especificá-la para melhorar a precisão da transcrição e minimizar a latência.
  • Identificação do idioma em: Transcreva um arquivo de áudio com a identificação do idioma em. Se não tiver certeza sobre a localidade do arquivo de áudio, você pode ativar a identificação de idioma para permitir que o serviço de Fala identifique a localidade.
  • Diarização em: Transcreva um arquivo de áudio com diarização ligada. A diarização distingue entre diferentes oradores na conversa. O serviço de Fala fornece informações sobre qual orador estava falando uma parte específica do discurso transcrito.
  • Multicanal em: Transcreva um arquivo de áudio que tenha um ou dois canais. As transcrições multicanal são úteis para arquivos de áudio com vários canais, como arquivos de áudio com vários alto-falantes ou arquivos de áudio com ruído de fundo. Por padrão, a API de transcrição rápida mescla todos os canais de entrada em um único canal e, em seguida, executa a transcrição. Se isso não for desejável, os canais podem ser transcritos de forma independente, sem fusão.

Faça uma solicitação POST de várias partes/dados de formulário para o transcriptions ponto de extremidade com o arquivo de áudio e as propriedades do corpo da solicitação.

O exemplo a seguir mostra como transcrever um arquivo de áudio com uma localidade especificada. Se você souber a localidade do arquivo de áudio, poderá especificá-la para melhorar a precisão da transcrição e minimizar a latência.

  • Substitua YourSubscriptionKey pela chave de recurso de fala.
  • Substitua YourServiceRegion pela região de recursos de Fala.
  • Substitua YourAudioFile pelo caminho para o arquivo de áudio.
curl --location 'https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-11-15' \
--header 'Content-Type: multipart/form-data' \
--header 'Ocp-Apim-Subscription-Key: YourSubscriptionKey' \
--form 'audio=@"YourAudioFile"' \
--form 'definition="{
    "locales":["en-US"]}"'

Construa a definição do formulário de acordo com as seguintes instruções:

  • Defina a propriedade opcional (mas recomendada) locales que deve corresponder à localidade esperada dos dados de áudio a serem transcritos. Neste exemplo, a localidade é definida como en-US. As localidades suportadas que você pode especificar são: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR e zh-CN.

Para obter mais informações sobre locales e outras propriedades para a API de transcrição rápida, consulte a seção de opções de configuração de solicitação mais adiante neste guia.

A resposta inclui durationMilliseconds, offsetMilliseconds, e muito mais. A combinedPhrases propriedade contém as transcrições completas para todos os oradores.

{
	"durationMilliseconds": 182439,
	"combinedPhrases": [
		{
			"text": "Good afternoon. This is Sam. Thank you for calling Contoso. How can I help? Hi there. My name is Mary. I'm currently living in Los Angeles, but I'm planning to move to Las Vegas. I would like to apply for a loan. Okay. I see you're currently living in California. Let me make sure I understand you correctly. Uh You'd like to apply for a loan even though you'll be moving soon. Is that right? Yes, exactly. So I'm planning to relocate soon, but I would like to apply for the loan first so that I can purchase a new home once I move there. And are you planning to sell your current home? Yes, I will be listing it on the market soon and hopefully it'll sell quickly. That's why I'm applying for a loan now, so that I can purchase a new house in Nevada and close on it quickly as well once my current home sells. I see. Would you mind holding for a moment while I take your information down? Yeah, no problem. Thank you for your help. Mm-hmm. Just one moment. All right. Thank you for your patience, ma'am. May I have your first and last name, please? Yes, my name is Mary Smith. Thank you, Ms. Smith. May I have your current address, please? Yes. So my address is 123 Main Street in Los Angeles, California, and the zip code is 90923. Sorry, that was a 90 what? 90923. 90923 on Main Street. Got it. Thank you. May I have your phone number as well, please? Uh Yes, my phone number is 504-529-2351 and then yeah. 2351. Got it. And do you have an e-mail address we I can associate with this application? uh Yes, so my e-mail address is mary.a.sm78@gmail.com. Mary.a, was that a S-N as in November or M as in Mike? M as in Mike. Mike78, got it. Thank you. Ms. Smith, do you currently have any other loans? Uh Yes, so I currently have two other loans through Contoso. So my first one is my car loan and then my other is my student loan. They total about 1400 per month combined and my interest rate is 8%. I see. And you're currently paying those loans off monthly, is that right? Yes, of course I do. OK, thank you. Here's what I suggest we do. Let me place you on a brief hold again so that I can talk with one of our loan officers and get this started for you immediately. In the meantime, it would be great if you could take a few minutes and complete the remainder of the secure application online at www.contosoloans.com. Yeah, that sounds good. I can go ahead and get started. Thank you for your help. Thank you."
		}
	],
	"phrases": [
		{
			"offsetMilliseconds": 960,
			"durationMilliseconds": 640,
			"text": "Good afternoon.",
			"words": [
				{
					"text": "Good",
					"offsetMilliseconds": 960,
					"durationMilliseconds": 240
				},
				{
					"text": "afternoon.",
					"offsetMilliseconds": 1200,
					"durationMilliseconds": 400
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 1600,
			"durationMilliseconds": 640,
			"text": "This is Sam.",
			"words": [
				{
					"text": "This",
					"offsetMilliseconds": 1600,
					"durationMilliseconds": 240
				},
				{
					"text": "is",
					"offsetMilliseconds": 1840,
					"durationMilliseconds": 120
				},
				{
					"text": "Sam.",
					"offsetMilliseconds": 1960,
					"durationMilliseconds": 280
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 2240,
			"durationMilliseconds": 1040,
			"text": "Thank you for calling Contoso.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 2240,
					"durationMilliseconds": 200
				},
				{
					"text": "you",
					"offsetMilliseconds": 2440,
					"durationMilliseconds": 80
				},
				{
					"text": "for",
					"offsetMilliseconds": 2520,
					"durationMilliseconds": 120
				},
				{
					"text": "calling",
					"offsetMilliseconds": 2640,
					"durationMilliseconds": 200
				},
				{
					"text": "Contoso.",
					"offsetMilliseconds": 2840,
					"durationMilliseconds": 440
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 3280,
			"durationMilliseconds": 640,
			"text": "How can I help?",
			"words": [
				{
					"text": "How",
					"offsetMilliseconds": 3280,
					"durationMilliseconds": 120
				},
				{
					"text": "can",
					"offsetMilliseconds": 3440,
					"durationMilliseconds": 120
				},
				{
					"text": "I",
					"offsetMilliseconds": 3560,
					"durationMilliseconds": 40
				},
				{
					"text": "help?",
					"offsetMilliseconds": 3600,
					"durationMilliseconds": 320
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 5040,
			"durationMilliseconds": 400,
			"text": "Hi there.",
			"words": [
				{
					"text": "Hi",
					"offsetMilliseconds": 5040,
					"durationMilliseconds": 240
				},
				{
					"text": "there.",
					"offsetMilliseconds": 5280,
					"durationMilliseconds": 160
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		{
			"offsetMilliseconds": 5440,
			"durationMilliseconds": 800,
			"text": "My name is Mary.",
			"words": [
				{
					"text": "My",
					"offsetMilliseconds": 5440,
					"durationMilliseconds": 80
				},
				{
					"text": "name",
					"offsetMilliseconds": 5520,
					"durationMilliseconds": 120
				},
				{
					"text": "is",
					"offsetMilliseconds": 5640,
					"durationMilliseconds": 80
				},
				{
					"text": "Mary.",
					"offsetMilliseconds": 5720,
					"durationMilliseconds": 520
				}
			],
			"locale": "en-US",
			"confidence": 0.93616915
		},
		// More transcription results...
	    // Redacted for brevity
		{
			"offsetMilliseconds": 180320,
			"durationMilliseconds": 680,
			"text": "Thank you for your help.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 180320,
					"durationMilliseconds": 160
				},
				{
					"text": "you",
					"offsetMilliseconds": 180480,
					"durationMilliseconds": 80
				},
				{
					"text": "for",
					"offsetMilliseconds": 180560,
					"durationMilliseconds": 120
				},
				{
					"text": "your",
					"offsetMilliseconds": 180680,
					"durationMilliseconds": 120
				},
				{
					"text": "help.",
					"offsetMilliseconds": 180800,
					"durationMilliseconds": 200
				}
			],
			"locale": "en-US",
			"confidence": 0.9314801
		},
		{
			"offsetMilliseconds": 181960,
			"durationMilliseconds": 280,
			"text": "Thank you.",
			"words": [
				{
					"text": "Thank",
					"offsetMilliseconds": 181960,
					"durationMilliseconds": 200
				},
				{
					"text": "you.",
					"offsetMilliseconds": 182160,
					"durationMilliseconds": 80
				}
			],
			"locale": "en-US",
			"confidence": 0.9314801
		}
	]
}

Solicitar opções de configuração

Aqui estão algumas opções de propriedade para configurar uma transcrição quando você chama a operação Transcrições - Transcreva .

Property Description Obrigatório ou opcional
channels A lista de índices baseados em zero dos canais a serem transcritos separadamente. Até dois canais são suportados, a menos que a diarização esteja ativada. Por padrão, a API de transcrição rápida mescla todos os canais de entrada em um único canal e, em seguida, executa a transcrição. Se isso não for desejável, os canais podem ser transcritos de forma independente, sem fusão.

Se você quiser transcrever os canais de um arquivo de áudio estéreo separadamente, você precisa especificar [0,1], [0]ou [1]. Caso contrário, o áudio estéreo é mesclado ao mono e apenas um único canal é transcrito.

Se o áudio for estéreo e a diarização estiver ativada, não será possível definir a channels propriedade como [0,1]. O serviço de Fala não suporta diarização de vários canais.

Para áudio mono, a channels propriedade é ignorada e o áudio é sempre transcrito como um único canal.
Opcional
diarization A configuração de diarização. Diarização é o processo de reconhecer e separar vários alto-falantes em um canal de áudio. Por exemplo, especifique "diarization": {"maxSpeakers": 2, "enabled": true}. Em seguida, o arquivo de transcrição contém speaker entradas (como "speaker": 0 ou "speaker": 1) para cada frase transcrita. Opcional
locales A lista de localidades que devem corresponder à localidade esperada dos dados de áudio a serem transcritos.

Se você souber a localidade do arquivo de áudio, poderá especificá-la para melhorar a precisão da transcrição e minimizar a latência. Se uma única localidade for especificada, essa localidade será usada para transcrição.

Mas se você não tiver certeza sobre a localidade, poderá especificar várias localidades. A identificação do idioma pode ser mais precisa com uma lista mais precisa de localidades candidatas.

Se você não especificar nenhuma localidade ou se as localidades especificadas não estiverem no arquivo de áudio, o serviço de Fala ainda tentará identificar o idioma. Se o idioma não puder ser identificado, um erro será retornado.

As localidades suportadas que você pode especificar são: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR e zh-CN. Você pode obter os idiomas suportados mais recentes por meio da API REST Transcrições - Listar localidades suportadas. Para obter mais informações sobre localidades, consulte a documentação de suporte ao idioma do serviço de fala.
Opcional, mas recomendado se você souber a localidade esperada.
profanityFilterMode Especifica como lidar com palavrões em resultados de reconhecimento. Os valores aceites são None desativar a filtragem de palavrões, Masked substituir palavrões por asteriscos, Removed remover todos os palavrões do resultado ou Tags adicionar etiquetas de palavrões. O valor predefinido é Masked. Opcional