Freigeben über


Verwenden der API für schnelle Transkription mit Azure KI Speech

Die API für schnelle Transkription wird verwendet, um Audiodateien synchron und schneller als Echtzeit zu transkribieren. Verwenden Sie schnelle Transkription in den Szenarien, in denen Sie die Transkription einer Audioaufzeichnung so schnell wie möglich mit vorhersagbarer Latenz benötigen, z. B.:

  • Schnelle Audio- oder Videotranskription, Untertitel und Bearbeitung.
  • Videoübersetzung

Im Gegensatz zur Batchtranskriptions-API erzeugt die schnelle Transkription-API nur Transkriptionen in der Anzeigeform (nicht lexikalisch). Das Anzeigeformular ist eine lesbarere Form der Transkription, die Interpunktion und Großschreibung umfasst.

Voraussetzungen

  • Eine Azure KI Speech-Ressource in einer der Regionen, in denen die API für schnelle Transkription verfügbar ist. Die unterstützten Regionen sind: Australien Ost, Brasilien Süd, Zentralindien, Ost-USA, Ost-USA 2, Frankreich Mitte, Japan Ost, Nord-Mittel-USA, Nordeuropa, Süd-Zentral-USA, Südostasien, Schweden Mitte, Südliches Vereinigtes Königreich, Westeuropa, West-USA, West-USA 2, West-USA 3. Weitere Informationen zu Regionen, die für andere Sprachdienstfeatures unterstützt werden, finden Sie unter Sprachdienstregionen.

  • Eine Audiodatei (weniger als 2 Stunden lang und kleiner als 300 MB) in einem der Formate und Codecs, die von der Batchtranskriptions-API unterstützt werden: WAV, MP3, OPUS/OGG, FLAC, WMA, AAC, ALAW in WAV-Container, MULAW im WAV-Container, AMR, WebM und SPEEX. Weitere Informationen zu unterstützten Audioformaten finden Sie unter unterstützten Audioformaten.

Verwenden der API für schnelle Transkription

Tipp

Testen Sie die schnelle Transkription im Azure AI Foundry-Portal.

Wir erfahren, wie Sie die schnelle Transkription-API (über Transkriptionen - Transcribe) mit den folgenden Szenarien verwenden:

  • Bekanntes Gebietsschema angegeben: Transkribieren einer Audiodatei mit einem angegebenen Gebietsschema. Wenn Sie das Gebietsschema der Audiodatei kennen, können Sie es angeben, um die Transkriptionsgenauigkeit zu verbessern und die Latenz zu minimieren.
  • Sprachidentifikation eingeschaltet: Transkribieren Sie eine Audiodatei mit Sprachidentifikation. Wenn Sie sich nicht über das Gebietsschema der Audiodatei sicher sind, können Sie die Sprachidentifikation aktivieren, damit der Sprachdienst das Gebietsschema (ein Gebietsschema pro Audio) identifizieren kann.
  • Mehrsprachige Transkription (Vorschau): Transkribieren Sie eine Audiodatei mit dem neuesten mehrsprachigen Sprachtranskriptionsmodell. Wenn Ihr Audioinhalt mehrsprachige Inhalte enthält, die Sie kontinuierlich und präzise transkribieren möchten, können Sie das neueste mehrsprachige Sprachtranskriptionsmodell verwenden, ohne die Gebietsschemacodes anzugeben.
  • Diarization on: Transkribiere eine Audiodatei mit aktivierter Diarisierung. Die Diarisierung unterscheidet zwischen verschiedenen Sprechern in der Unterhaltung. Der Speech-Dienst stellt Informationen darüber bereit, welcher Sprecher einen bestimmten Teil der transkribierten Sprache gesprochen hat.
  • Mehrkanalmodus aktivieren: Transkribieren Sie eine Audiodatei, die ein oder zwei Kanäle besitzt. Die Transkription von mehreren Kanälen ist nützlich für Audiodateien mit mehreren Kanälen, wie z. B. Audiodateien mit mehreren Sprechern oder Audiodateien mit Hintergrundgeräuschen. Standardmäßig führt die API für die schnelle Transkription alle Eingabekanäle in einem einzigen Kanal zusammen und führt dann die Transkription durch. Wenn dies nicht gewünscht ist, können Kanäle unabhängig voneinander transkribiert werden, ohne dass sie zusammengeführt werden.

Erstellen Sie eine mehrteilige/form-data POST-Anforderung an den transcriptions-Endpunkt mit der Audiodatei und den Anforderungstexteigenschaften.

Das folgende Beispiel zeigt, wie eine Audiodatei mit einem bestimmten Gebietsschema transkribiert wird. Wenn Sie das Gebietsschema der Audiodatei kennen, können Sie es angeben, um die Transkriptionsgenauigkeit zu verbessern und die Latenz zu minimieren.

  • Ersetzen Sie YourSpeechResoureKey durch Ihren Speech-Ressourcenschlüssel.
  • Ersetzen Sie YourServiceRegion durch Ihre Sprachressourcenregion.
  • Ersetzen Sie YourAudioFile durch den Pfad zu Ihrer Audiodatei.

Von Bedeutung

Ersetzen Sie --header 'Ocp-Apim-Subscription-Key: YourSpeechResoureKey' für die empfohlene schlüssellose Authentifizierung mit der Microsoft Entra-ID durch --header "Authorization: Bearer YourAccessToken". Weitere Informationen zur schlüssellosen Authentifizierung finden Sie in der Anleitung zur rollenbasierten Zugriffssteuerung .

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

Erstellen Sie die Formulardefinition gemäß den folgenden Anweisungen:

  • Legen Sie die optionale (aber empfohlene) Eigenschaft locales fest, die mit dem erwarteten Gebietsschema der zu transkribierenden Audiodaten übereinstimmen sollte. In diesem Beispiel ist das Gebietsschema auf en-US festgelegt. Weitere Informationen zu den unterstützten Gebietsschemas finden Sie unter unterstützte Sprachen für Spracherkennung.

Weitere Informationen zu locales und anderen Eigenschaften der Schnelltranskriptions-API finden Sie im Abschnitt "Anforderungskonfigurationsoptionen" weiter unten in diesem Handbuch.

Die Antwort enthält durationMilliseconds, offsetMilliseconds und weitere. Die Eigenschaft combinedPhrases enthält die vollständigen Transkriptionen für alle Sprecher.

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

Hinweis

Der Spracherkennungsdienst ist ein elastischer Dienst. Wenn Sie den 429-Fehlercode (zu viele Anfragen) erhalten, befolgen Sie bitte die bewährten Methoden, um das Throttling während der automatischen Skalierung zu verringern.

Konfigurationsoptionen für Anforderungen

Im Folgenden sind einige Eigenschaftenoptionen zum Konfigurieren einer Transkription aufgeführt, wenn Sie die Transkriptionen - Transcribe-Operation aufrufen.

Eigenschaft Beschreibung Erforderlich oder optional
channels Die Liste der nullbasierten Indizes der Kanäle anzugeben, die separat transkribiert werden sollen. Es werden bis zu zwei Kanäle unterstützt, es sei denn, die Diarisierung ist aktiviert. Standardmäßig führt die API für die schnelle Transkription alle Eingabekanäle in einem einzigen Kanal zusammen und führt dann die Transkription durch. Wenn dies nicht gewünscht ist, können Kanäle unabhängig voneinander transkribiert werden, ohne dass sie zusammengeführt werden.

Wenn Sie die Kanäle aus einer Stereo-Audiodatei separat transkribieren möchten, müssen Sie [0,1], [0] oder [1] angeben. Andernfalls wird Stereo-Audio zu Mono zusammengeführt und nur ein einziger Kanal transkribiert.

Wenn das Audio Stereo und Diarisierung aktiviert ist, können Sie die Eigenschaft channels nicht auf [0,1]festlegen. Der Speech-Dienst unterstützt keine Diarisierung über mehrere Kanäle.

Bei Mono-Audio wird die -Eigenschaft channels ignoriert, und die Audiodaten werden immer als einzelner Kanal transkribiert.
Wahlfrei
diarization Die Diarisierungskonfiguration. Diarisierung ist der Prozess des Erkennens und Trennens mehrerer Sprecher in einem Audiokanal. Geben Sie z. B. "diarization": {"maxSpeakers": 2, "enabled": true} an. Die Transkriptionsdatei enthält speaker-Einträge (wie "speaker": 0 oder "speaker": 1) für jeden transkribierten Ausdruck. Wahlfrei
locales Die Liste der Gebietsschemata, die mit dem erwarteten Gebietsschema der Audiodaten übereinstimmen sollten, die Sie transkribieren möchten.

Wenn Sie das Gebietsschema der Audiodatei kennen, können Sie es angeben, um die Transkriptionsgenauigkeit zu verbessern und die Latenz zu minimieren. Wenn ein einzelnes Gebietsschema angegeben wird, wird dieses Gebietsschema für die Transkription verwendet.

Wenn Sie sich jedoch nicht sicher sind, welches Gebietsschema verwendet werden soll, können Sie mehrere Gebietsschemas angeben für die Sprachidentifikation. Die Sprachidentifikation ist mit einer präziseren Liste von Kandidatengebietsschemata möglicherweise genauer.

Wenn Sie kein Gebietsschema angeben, verwendet der Sprachdienst das neueste mehrsprachige Modell, um das Gebietsschema zu identifizieren und kontinuierlich zu transkribieren.

Sie können die neuesten unterstützten Sprachen über die REST-API (API-Version 2024-11-15 oder höher) Transkriptionen – Unterstützte Gebietsschemata auflisten abrufen. Weitere Informationen zu Gebietsschemas finden Sie in der Dokumentation Sprachunterstützung für de Speech-Dienst.
Optional, aber empfohlen, wenn Sie das erwartete Gebietsschema kennen.
profanityFilterMode Gibt den Umgang mit Obszönitäten in Erkennungsergebnissen an. Zulässige Werte sind: None (deaktiviert den Obszönitätenfilter), Masked (Obszönitäten werden durch Sternchen ersetzt), Removed (Obszönitäten werden aus dem Ergebnis entfernt) und Tags (fügt Tags für Obszönitäten ein). Der Standardwert ist Masked. Wahlfrei