Compartir vía


Usar la API de transcripción rápida con voz de Azure AI

La API de Transcripción rápida se usa para transcribir archivos de audio con resultados de forma sincrónica y más rápidamente que en tiempo real. Use la transcripción rápida en los escenarios en los que necesite la transcripción de una grabación de audio lo más rápido posible con una latencia predecible, como los siguientes:

  • Transcripción rápida de audio o vídeo, subtítulos y edición.
  • Traducción de vídeo

A diferencia de la API de transcripción por lotes, la API de transcripción rápida solo genera transcripciones en el formulario de visualización (no léxico). El formulario de presentación es una forma más legible de la transcripción que incluye signos de puntuación y mayúsculas.

Requisitos previos

  • Un recurso de Voz de Azure AI en una de las regiones en las que está disponible la API de Transcripción rápida. Las regiones compatibles son: Este de Australia, Sur de Brasil, India central, Este de EE. UU., Este de EE. UU. 2, Francia central, Este de Japón, Norte de EE. UU. central, Norte de Europa, Sur de EE. UU. central, Sudeste de Asia, Centro de Suecia, Sur de Reino Unido, Oeste de Europa, Oeste de EE. UU., Oeste de EE. UU. 2, Oeste de EE. UU. 3. Para obtener más información sobre las regiones admitidas para otras características del servicio de Voz, consulte Regiones de servicio de Voz.

  • Un archivo de audio (menos de 2 horas y menos de 300 MB de tamaño) en uno de los formatos y códecs admitidos por la API de transcripción por lotes: WAV, MP3, OPUS/OGG, FLAC, WMA, AAC, ALAW en contenedor WAV, MULAW en contenedor WAV, AMR, WebM y SPEEX. Para obtener más información sobre los formatos de audio admitidos, consulte formatos de audio admitidos.

Usar la API de transcripción rápida

Sugerencia

Pruebe la transcripción rápida en el portal de Azure AI Foundry.

Aprenderemos a usar la API de transcripción rápida (a través de Transcripciones: transcribir) con los escenarios siguientes:

  • Configuración regional conocida especificada: transcribir un archivo de audio con una configuración regional especificada. Si conoce la configuración regional del archivo de audio, puede especificarla para mejorar la precisión de la transcripción y minimizar la latencia.
  • Identificación del idioma activada: transcribir un archivo de audio con identificación de idioma activada. Si no está seguro de la configuración regional del archivo de audio, puede activar la identificación del idioma para permitir que el servicio voz identifique la configuración regional (una configuración regional por audio).
  • Transcripción multilingüe (versión preliminar): transcribe un archivo de audio con el último modelo de transcripción de voz multilingüe. Si el audio contiene contenido multilingüe que desea transcribir continua y precisamente, puede usar el modelo de transcripción de voz multilingüe más reciente sin especificar los códigos de configuración regional.
  • Diarización activada: transcribir un archivo de audio con la opción de diarización activada. La diarización distingue entre diferentes hablantes de una conversación. El servicio de voz proporciona información sobre qué orador habló en una parte determinada del discurso transcrito.
  • Multicanal activado: transcribe un archivo de audio que tiene uno o dos canales. Las transcripciones de varios canales son útiles para archivos de audio con varios canales, como archivos de audio con varios altavoces o archivos de audio con ruido de fondo. De forma predeterminada, la API de transcripción rápida combina todos los canales de entrada en un único canal y, a continuación, realiza la transcripción. Si esto no es deseable, los canales se pueden transcribir de forma independiente sin combinarlos.

Realice una solicitud POST de tipo multipart/form-data al endpoint transcriptions enviando el archivo de audio y las propiedades del cuerpo de la solicitud.

En el ejemplo siguiente se muestra cómo transcribir un archivo de audio con una configuración regional especificada. Si conoce la configuración regional del archivo de audio, puede especificarla para mejorar la precisión de la transcripción y minimizar la latencia.

  • Reemplace YourSpeechResoureKey por su clave de recurso de Voz.
  • Reemplace YourServiceRegion por la región del recurso de Voz.
  • Reemplace YourAudioFile por la ruta de acceso al archivo de audio.

Importante

Para la autenticación sin clave recomendada con Microsoft Entra ID, reemplace --header 'Ocp-Apim-Subscription-Key: YourSpeechResoureKey' con --header "Authorization: Bearer YourAccessToken". Para obtener más información sobre la autenticación sin claves, consulte la guía paso a paso del control de acceso basado en roles .

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: YourSpeechResoureKey' \
--form 'audio=@"YourAudioFile"' \
--form 'definition="{
    "locales":["en-US"]}"'

Construya la definición del formulario según las instrucciones siguientes:

  • Establezca la propiedad opcional (pero recomendada) locales que debe coincidir con la configuración regional esperada de los datos de audio que se van a transcribir. En este ejemplo, la configuración regional se establece en en-US. Para obtener más información sobre las configuraciones regionales admitidas, consulte idiomas compatibles con la conversión de voz en texto.

Para obtener más información sobre locales y otras propiedades para la API de transcripción rápida, consulte la sección opciones de configuración de solicitudes más adelante en esta guía.

La respuesta incluye durationMilliseconds, offsetMilliseconds, etc. La propiedad combinedPhrases contiene las transcripciones completas para todos los 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.93554276
		},
		{
			"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.93554276
		},
		{
			"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.93554276
		},
		{
			"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.93554276
		},
		{
			"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.93554276
		},
		{
			"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.93554276
		},
		// 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.92022026
		},
		{
			"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.92022026
		}
	]
}

Nota:

El servicio de voz es un servicio elástico. Si recibe el código de error 429 (demasiadas solicitudes), siga los procedimientos recomendados para mitigar la limitación durante el escalado automático.

Solicitud de opciones de configuración

Estas son algunas opciones de propiedades para configurar una transcripción al llamar a la operación Transcripciones - Transcribir.

Propiedad Descripción Obligatorio u opcional
channels Los índices de base cero de los canales que se van a transcribir por separado. Se admiten hasta dos canales, a menos que la diarización esté habilitada. De forma predeterminada, la API de transcripción rápida combina todos los canales de entrada en un único canal y, a continuación, realiza la transcripción. Si esto no es deseable, los canales se pueden transcribir de forma independiente sin combinarlos.

Si desea transcribir los canales desde un archivo de audio estéreo por separado, debe especificar [0,1], [0] o [1]. De lo contrario, el audio estéreo se combina con mono y solo se transcribe un único canal.

Si el audio es estéreo y la diarización está habilitada, no se puede establecer la propiedad channels en [0,1]. El servicio de voz no admite la diarización de varios canales.

En el caso del audio mono, se omite la propiedad channels y el audio siempre se transcribe como un único canal.
Opcionales
diarization Configuración de la diarización. La diarización es el proceso de reconocer y separar varios altavoces en un canal de audio. Por ejemplo, especifique "diarization": {"maxSpeakers": 2, "enabled": true}. A continuación, el archivo de transcripción contiene entradas de speaker (como "speaker": 0 o "speaker": 1) para cada frase transcrita. Opcionales
locales Lista de configuraciones regionales que deben coincidir con la configuración regional esperada de los datos de audio que se van a transcribir.

Si conoce la configuración regional del archivo de audio, puede especificarla para mejorar la precisión de la transcripción y minimizar la latencia. Si se especifica una sola configuración regional, esa configuración regional se usa para la transcripción.

Pero si no está seguro de la configuración regional, puede especificar varias configuraciones regionales para usar la identificación del idioma. La identificación del idioma podría ser más precisa con una lista más detallada de locales de candidatos.

Si no especifica ninguna configuración regional, el servicio voz usará el modelo multilingüe más reciente para identificar la configuración regional y transcribir continuamente.

Puede obtener los idiomas admitidos más recientes a través de la API REST Transcripciones: enumerar configuraciones regionales admitidas (API versión 2024-11-15 o posterior). Para obtener más información sobre las configuraciones regionales, consulte la documentación de Compatibilidad de idiomas del servicio Voz.
Es opcional, pero se recomienda si conoce la ubicación esperada.
profanityFilterMode Especifica cómo controlar las palabras soeces en los resultados del reconocimiento. Los valores aceptados son None para deshabilitar el filtrado de palabras soeces, Masked para reemplazar las palabras soeces por asteriscos, Removed para quitar todas las palabras soeces del resultado o Tags para agregar etiquetas de palabras soeces. El valor predeterminado es Masked. Opcionales