Udostępnij za pośrednictwem


Używanie szybkiego interfejsu API transkrypcji z usługą Azure AI Speech

Interfejs API szybkiej transkrypcji służy do transkrypcji plików audio z zwracaniem wyników synchronicznie i szybciej niż w czasie rzeczywistym. Użyj szybkiej transkrypcji w scenariuszach, w których potrzebujesz transkrypcji nagrania audio tak szybko, jak to możliwe z przewidywalnym opóźnieniem, na przykład:

  • Szybka transkrypcja audio lub wideo, napisy i edycja.
  • Tłumaczenie wideo

W przeciwieństwie do interfejsu API transkrypcji wsadowej interfejs API szybkiej transkrypcji generuje tylko transkrypcje w postaci wyświetlania (nie leksykalne). Formularz wyświetlania jest bardziej czytelną dla człowieka formą transkrypcji, która obejmuje znaki interpunkcyjne i wielkie litery.

Wymagania wstępne

  • Zasób usługi Azure AI Speech w jednym z regionów, w których jest dostępny szybki interfejs API transkrypcji. Obsługiwane regiony to: Australia Wschodnia, Brazylia Południowa, Indie Środkowe, Wschodnie stany USA, Wschodnie stany USA 2, Francuski Środkowy, Japonia Wschodnia, Północno-środkowe stany USA, Europa Północna, Południowo-środkowe stany USA, Azja Południowo-Wschodnia, Szwecja Środkowa, Europa Zachodnia, Zachodnie stany USA, Zachodnie stany USA 2, Zachodnie stany USA 3. Aby uzyskać więcej informacji na temat regionów obsługiwanych w przypadku innych funkcji usługi Mowa, zobacz Regiony usługi Mowa.

  • Plik audio (mniej niż 2 godziny długości i mniej niż 200 MB) w jednym z formatów i koderów koderskich obsługiwanych przez interfejs API transkrypcji wsadowej. Aby uzyskać więcej informacji na temat obsługiwanych formatów audio, zobacz obsługiwane formaty audio.

Używanie szybkiego interfejsu API transkrypcji

Napiwek

Wypróbuj szybką transkrypcję w portalu usługi Azure AI Foundry.

Dowiesz się, jak używać szybkiego interfejsu API transkrypcji (za pośrednictwem transkrypcji — transkrypcja) z następującymi scenariuszami:

  • Określone ustawienia regionalne: transkrybuj plik audio z określonymi ustawieniami regionalnymi. Jeśli znasz ustawienia regionalne pliku audio, możesz określić go, aby poprawić dokładność transkrypcji i zminimalizować opóźnienie.
  • Identyfikacja języka: transkrybuj plik audio z identyfikacją języka. Jeśli nie masz pewności co do ustawień regionalnych pliku audio, możesz włączyć identyfikację języka, aby umożliwić usłudze rozpoznawania mowy identyfikowanie ustawień regionalnych.
  • Diarization on: Transkrybuj plik audio z diarization on. Diarization rozróżnia różne osoby mówiące w konwersacji. Usługa rozpoznawania mowy zawiera informacje o tym, który prelegent mówił określoną część transkrypcji mowy.
  • Multi-channel on: Transkrybuj plik audio, który ma jeden lub dwa kanały. Transkrypcje wielokanałowe są przydatne w przypadku plików audio z wieloma kanałami, takich jak pliki audio z wieloma głośnikami lub plikami audio z szumem tła. Domyślnie interfejs API szybkiej transkrypcji scala wszystkie kanały wejściowe w jeden kanał, a następnie wykonuje transkrypcję. Jeśli nie jest to pożądane, kanały można transkrybować niezależnie bez scalania.

Utwórz żądanie POST z wieloma częściami/formularzami do punktu końcowego transcriptions przy użyciu pliku audio i właściwości treści żądania.

W poniższym przykładzie pokazano, jak transkrybować plik audio z określonymi ustawieniami regionalnymi. Jeśli znasz ustawienia regionalne pliku audio, możesz określić go, aby poprawić dokładność transkrypcji i zminimalizować opóźnienie.

  • Zastąp YourSubscriptionKey ciąg kluczem zasobu usługi Mowa.
  • Zastąp YourServiceRegion element regionem zasobu usługi Mowa.
  • Zastąp YourAudioFile ciąg ścieżką do pliku 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"]}"'

Skonstruuj definicję formularza zgodnie z następującymi instrukcjami:

  • Ustaw opcjonalną (ale zalecaną) locales właściwość, która powinna być zgodna z oczekiwaną ustawieniami regionalnymi danych audio do transkrypcji. W tym przykładzie ustawienia regionalne są ustawione na en-US. Obsługiwane ustawienia regionalne, które można określić, to: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR i zh-CN.

Aby uzyskać więcej informacji na temat locales i innych właściwości interfejsu API szybkiej transkrypcji, zobacz sekcję opcje konfiguracji żądań w dalszej części tego przewodnika.

Odpowiedź zawiera durationMilliseconds, offsetMillisecondsi nie tylko. Właściwość combinedPhrases zawiera pełne transkrypcje dla wszystkich osób mówiących.

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

Opcje konfiguracji żądania

Poniżej przedstawiono niektóre opcje właściwości umożliwiające skonfigurowanie transkrypcji podczas wywoływania operacji transkrypcji — transkrypcja .

Właściwości opis Wymagane lub opcjonalne
channels Lista indeksów zera kanałów do transkrypcji oddzielnie. Do dwóch kanałów jest obsługiwanych, chyba że włączono diaryzacja. Domyślnie interfejs API szybkiej transkrypcji scala wszystkie kanały wejściowe w jeden kanał, a następnie wykonuje transkrypcję. Jeśli nie jest to pożądane, kanały można transkrybować niezależnie bez scalania.

Jeśli chcesz oddzielnie transkrybować kanały z pliku audio stereo, musisz określić [0,1], [0]lub [1]. W przeciwnym razie dźwięk stereo jest scalony z mono i tylko jeden kanał jest transkrypcji.

Jeśli dźwięk jest stereo i diaryzacja jest włączona, nie można ustawić channels właściwości na [0,1]. Usługa mowa nie obsługuje diaryzacji wielu kanałów.

W przypadku dźwięku channels mono właściwość jest ignorowana, a dźwięk jest zawsze transkrypowany jako pojedynczy kanał.
Opcjonalnie
diarization Konfiguracja diaryzacji. Diarization to proces rozpoznawania i oddzielania wielu głośników w jednym kanale audio. Na przykład określ wartość "diarization": {"maxSpeakers": 2, "enabled": true}. Następnie plik transkrypcji zawiera speaker wpisy (takie jak "speaker": 0 lub "speaker": 1) dla każdej transkrypcji frazy. Opcjonalnie
locales Lista ustawień regionalnych, które powinny być zgodne z oczekiwanymi ustawieniami regionalnymi danych audio do transkrypcji.

Jeśli znasz ustawienia regionalne pliku audio, możesz określić go, aby poprawić dokładność transkrypcji i zminimalizować opóźnienie. Jeśli określono pojedyncze ustawienia regionalne, te ustawienia regionalne są używane do transkrypcji.

Jeśli jednak nie masz pewności co do ustawień regionalnych, możesz określić wiele ustawień regionalnych. Identyfikacja języka może być dokładniejsza z bardziej precyzyjną listą ustawień regionalnych kandydatów.

Jeśli nie określisz żadnych ustawień regionalnych lub jeśli określone ustawienia regionalne nie są w pliku audio, usługa rozpoznawania mowy nadal próbuje zidentyfikować język. Jeśli nie można zidentyfikować języka, zwracany jest błąd.

Obsługiwane ustawienia regionalne, które można określić, to: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR i zh-CN. Najnowsze obsługiwane języki można uzyskać za pośrednictwem interfejsu API REST transkrypcji — lista obsługiwanych ustawień regionalnych. Aby uzyskać więcej informacji na temat ustawień regionalnych, zobacz dokumentację obsługi języka usługi Mowa.
Opcjonalne, ale zalecane, jeśli znasz oczekiwane ustawienia regionalne.
profanityFilterMode Określa sposób obsługi wulgaryzmów w wynikach rozpoznawania. Akceptowane wartości to None wyłączenie filtrowania wulgaryzmów, Masked zastępowanie wulgaryzmów gwiazdkami, Removed usuwanie wszystkich wulgaryzmów z wyniku lub Tags dodawanie tagów wulgaryzmów. Domyślna wartość to Masked. Opcjonalnie