Partager via


Utiliser l’API de transcription rapide avec Azure AI Speech

L’API Transcription rapide permet de transcrire des fichiers audio avec retour des résultats de manière synchronisé et plus rapide qu’en temps réel. Utilisez la transcription rapide dans les scénarios où vous avez besoin de la transcription d’un enregistrement audio le plus rapidement possible avec une latence prévisible, par exemple :

  • Transcription audio ou vidéo rapide, sous-titres et modification.
  • Traduction vidéo

Contrairement à l’API de transcription par lots, l’API de transcription rapide produit uniquement des transcriptions sous la forme d’affichage (pas lexical). Le formulaire d’affichage est une forme plus lisible par l’homme de la transcription qui inclut la ponctuation et la mise en majuscule.

Prérequis

  • Une ressource Azure AI Speech dans l’une des régions où l’API de transcription rapide est disponible. Les régions prises en charge son : Australie Est, Brésil Sud, Inde Centre, USA Est, USA Est 2, France Centre, Japon Est, USA Centre Nord, Europe Nord, USA Centre Sud, Asie Sud-Est, Suède Centre, Europe Ouest, USA Ouest, USA Ouest 2, USA Ouest 3. Pour plus d’informations sur les régions prises en charge pour d’autres fonctionnalités de Speech Services, consultez Régions de Speech Service.

  • Un fichier audio (moins de 2 heures et moins de 200 Mo) dans l’un des formats et codecs pris en charge par l’API de transcription par lot. Pour plus d’informations sur les formats audio pris en charge, consultez Formats audio pris en charge.

Utiliser l’API de transcription rapide

Conseil

Essayez une transcription rapide dans Azure AI Studio.

Nous apprenons à utiliser l’API de transcription rapide (via Transcriptions - Transcribe) avec les scénarios suivants :

  • Paramètres régionaux connus spécifiés : transcrire un fichier audio avec des paramètres régionaux spécifiés. Si vous connaissez les paramètres régionaux du fichier audio, vous pouvez le spécifier pour améliorer la précision de la transcription et réduire la latence.
  • Identification de la langue activée : transcrire un fichier audio avec l’identification linguistique activée. Si vous n’êtes pas sûr des paramètres régionaux du fichier audio, vous pouvez activer l’identification de la langue pour permettre au service Speech d’identifier les paramètres régionaux.
  • Diarisation activée : transcrire un fichier audio avec la diarisation activée. La diarisation fait la distinction entre différents orateurs dans la conversation. Le service Speech fournit des informations sur l’orateur qui parlait une partie particulière de la parole transcrite.
  • Multicanal activé : transcrire un fichier audio qui a un ou deux canaux. Les transcriptions multicanaux sont utiles pour les fichiers audio avec plusieurs canaux, tels que des fichiers audio avec plusieurs haut-parleurs ou des fichiers audio avec un bruit d’arrière-plan. Par défaut, l’API de transcription rapide fusionne tous les canaux d’entrée en un seul canal, puis effectue la transcription. Si ce n’est pas souhaitable, les canaux peuvent être transcrits indépendamment sans fusion.

Effectuez une demande d’autotest de mise sous tension (POST) multipart/form-data sur le point de terminaison transcriptions avec le fichier audio et les propriétés du corps de la demande.

L’exemple suivant montre comment transcrire un fichier audio avec des paramètres régionaux spécifiés. Si vous connaissez les paramètres régionaux du fichier audio, vous pouvez le spécifier pour améliorer la précision de la transcription et réduire la latence.

  • Remplacez YourSubscriptionKey par votre clé de ressource Speech.
  • Remplacez YourServiceRegion par la région de votre ressource Speech.
  • Remplacez YourAudioFile par le chemin d’accès à votre fichier 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"]}"'

Construisez la définition de formulaire en suivant les instructions suivantes :

  • Définissez la propriété facultative (mais recommandée) locales qui doit correspondre aux paramètres régionaux attendus des données audio à transcrire. Dans cet exemple, les paramètres régionaux sont définis en-USsur . Les paramètres régionaux pris en charge sont : de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR et zh-CN.

Pour plus d’informations sur locales et d’autres propriétés de l’API de transcription rapide, consultez la section options de configuration de la requête plus loin dans ce guide.

La réponse comprend un tableau durationMilliseconds, offsetMilliseconds et bien plus encore. La propriété combinedPhrases contient les transcriptions complètes pour tous les haut-parleurs.

{
	"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
		}
	]
}

Options de configuration de demande

Voici quelques options de propriété pour configurer une transcription lorsque vous appelez l’opération Transcriptions - Transcrire.

Propriété Description Obligatoire ou facultatif
channels Liste des index de base zéro des canaux à transcrire séparément. Jusqu’à deux canaux sont pris en charge, sauf si la diarisation est activée. Par défaut, l’API de transcription rapide fusionne tous les canaux d’entrée en un seul canal, puis effectue la transcription. Si ce n’est pas souhaitable, les canaux peuvent être transcrits indépendamment sans fusion.

Si vous souhaitez transcrire les canaux à partir d’un fichier audio stéréo séparément, vous devez spécifier [0,1], [0] ou [1]. Sinon, l’audio stéréo est fusionné en mono et seul un seul canal est transcrit.

Si l’audio est stéréo et la diarisation est activée, vous ne pouvez pas définir la propriété channels sur [0,1]. Le service Speech ne prend pas en charge la diarisation de plusieurs canaux.

Pour l’audio mono, la propriété channels est ignorée et l’audio est toujours transcrit en tant que canal unique.
Facultatif
diarization Configuration de la diarisation. La diarisation est le processus de reconnaissance et de séparation de plusieurs haut-parleurs dans un seul canal audio. Par exemple, spécifiez "diarization": {"maxSpeakers": 2, "enabled": true}. Ensuite, le fichier de transcription contient des entrées speaker (telles que "speaker": 0 ou "speaker": 1) pour chaque expression transcrite. Facultatif
locales Liste des paramètres régionaux qui doivent correspondre aux paramètres régionaux attendus des données audio à transcrire.

Si vous connaissez les paramètres régionaux du fichier audio, vous pouvez le spécifier pour améliorer la précision de la transcription et réduire la latence. Si un seul paramètre régional est spécifié, ces paramètres régionaux sont utilisés pour la transcription.

Toutefois, si vous n’êtes pas sûr des paramètres régionaux, vous pouvez spécifier plusieurs paramètres régionaux. L’identification linguistique peut être plus précise avec une liste plus précise des paramètres régionaux candidats.

Si vous ne spécifiez aucun paramètre régional ou si les paramètres régionaux que vous spécifiez ne figurent pas dans le fichier audio, le service Speech tente toujours d’identifier la langue. Si la langue ne peut pas être identifiée, une erreur est retournée.

Les paramètres régionaux pris en charge sont : de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR et zh-CN. Vous pouvez obtenir les dernières langues prises en charge via l'API REST Transcriptions - Liste des paramètres régionaux pris en charge. Pour plus d’informations sur les paramètres régionaux, consultez la documentation de prise en charge du langage du service Speech.
Cela est facultatif, mais recommandé si vous connaissez les paramètres régionaux attendus.
profanityFilterMode Spécifie comment traiter la vulgarité dans les résultats de la reconnaissance. Les valeurs acceptées sont None pour désactiver le filtrage des grossièretés, Masked pour remplacer les grossièretés par des astérisques, Removed pour supprimer toutes les grossièretés du résultat ou Tags pour ajouter des étiquettes de grossièretés. La valeur par défaut est Masked. Facultatif