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, Japón Oriental, Norte de EE.UU. Central, Norte de Europa, Sur de EE.UU. Central, Sudeste Asiático, Centro de Suecia, 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 200 MB de tamaño) en uno de los formatos y códecs admitidos por la API de transcripción por lotes. 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.
  • Diarización activada: transcribir un archivo de audio con diarización activada. La diarización distingue entre diferentes oradores en la conversación. El servicio Voz proporciona información sobre qué hablante hablaba una parte determinada de la voz transcrita.
  • 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 multipart/form-data al punto de conexión transcriptions con 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 YourSubscriptionKey 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.
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"]}"'

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. Las configuraciones regionales que pueden especificarse son: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR y zh-CN.

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

Solicitud de opciones de configuración

Estas son algunas opciones de propiedad 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 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. La identificación del idioma puede ser más precisa con una lista más detallada de configuraciones regionales candidatas.

Si no especifica ninguna configuración regional o si las configuraciones regionales que especifica no están en el archivo de audio, el servicio Voz sigue intentando identificar el idioma. Si no se puede identificar el idioma, se devuelve un error.

Las configuraciones regionales que pueden especificarse son: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR y zh-CN. Puede obtener los últimos idiomas compatibles a través de la API de REST Transcripciones: lista de configuraciones regionales admitidas. Para obtener más información sobre las configuraciones regionales, consulte la documentación de Compatibilidad de idiomas del servicio Voz.
Es opcional, aunque se recomienda, si conoce la configuración regional prevista.
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