Sdílet prostřednictvím


Použití rozhraní API pro rychlý přepis s využitím služby Azure AI Speech

Rozhraní API pro rychlý přepis se používá k přepisu zvukových souborů s synchronním a rychlejším vrácením výsledků než v reálném čase. Používejte rychlý přepis ve scénářích, kdy potřebujete co nejrychleji přepis zvukového záznamu s předvídatelnou latencí, například:

  • Rychlý přepis zvuku nebo videa, titulky a úpravy
  • Překlad videa

Na rozdíl od dávkového rozhraní API pro přepis vytvoří rozhraní API pro rychlý přepis pouze přepisy ve formuláři zobrazení (ne lexikální). Formulář zobrazení je čitelnější formou přepisu, která zahrnuje interpunkci a velká písmena.

Požadavky

  • Prostředek Azure AI Speech v jedné z oblastí, ve kterých je k dispozici rozhraní API pro rychlý přepis. Podporované oblasti jsou: Austrálie – východ, Brazílie – jih, Indie – střed, USA – východ, USA – východ 2, Francie – střed, Japonsko – východ, USA – středosever, Severní Evropa, USA – středojiž, Jihovýchodní Asie, Švédsko – střed, Západní Evropa, USA – západ, USA – západ 2, USA – západ 3. Další informace o oblastech podporovaných pro jiné funkce služby Speech najdete v tématu Oblasti služby Speech.

  • Zvukový soubor (kratší než 2 hodiny a velikost menší než 200 MB) v jednom z formátů a kodeků podporovaných rozhraním API pro dávkový přepis. Další informace o podporovaných formátech zvuku najdete v tématu Podporované formáty zvuku.

Použití rozhraní API pro rychlý přepis

Tip

Vyzkoušejte si rychlý přepis v Azure AI Studiu.

Naučíme se používat rozhraní API pro rychlé přepisy (prostřednictvím přepisů – přepis) s následujícími scénáři:

  • Zadané známé národní prostředí: Přepis zvukového souboru se zadaným národním prostředím. Pokud znáte národní prostředí zvukového souboru, můžete ho určit, aby se zlepšila přesnost přepisu a minimalizovala se latence.
  • Identifikace jazyka: Přepis zvukového souboru s identifikací jazyka. Pokud si nejste jistí národním prostředím zvukového souboru, můžete zapnout identifikaci jazyka a nechat službu Speech identifikovat národní prostředí.
  • Diarizace zapnutá: Přepis zvukového souboru s diarizací. Diarizace rozlišuje mezi různými mluvčími v konverzaci. Služba Speech poskytuje informace o tom, o kterém mluvčím mluvil konkrétní část přepisované řeči.
  • Vícekanálový: Přepis zvukového souboru, který má jeden nebo dva kanály. Přepisy ve více kanálech jsou užitečné pro zvukové soubory s více kanály, například zvukové soubory s více reproduktory nebo zvukovými soubory s šumem na pozadí. Ve výchozím nastavení rozhraní API pro rychlé přepisy sloučí všechny vstupní kanály do jednoho kanálu a pak provede přepis. Pokud to není žádoucí, kanály je možné přepisovat nezávisle bez sloučení.

Vytvořte požadavek POST s více částmi nebo daty formulářů do koncového transcriptions bodu se zvukovým souborem a vlastnostmi textu požadavku.

Následující příklad ukazuje, jak přepsat zvukový soubor se zadaným národním prostředím. Pokud znáte národní prostředí zvukového souboru, můžete ho určit, aby se zlepšila přesnost přepisu a minimalizovala se latence.

  • Nahraďte YourSubscriptionKey klíčem prostředku služby Speech.
  • Nahraďte YourServiceRegion oblastí prostředků služby Speech.
  • Nahraďte YourAudioFile cestou ke zvukovému souboru.
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"]}"'

Definici formuláře vytvořte podle následujících pokynů:

  • Nastavte volitelnou (ale doporučenou) locales vlastnost, která by měla odpovídat očekávanému národnímu prostředí zvukových dat pro přepis. V tomto příkladu je národní prostředí nastaveno na en-UShodnotu . Podporovaná národní prostředí, která můžete zadat, jsou: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR a zh-CN.

Další informace o locales rozhraní API pro rychlý přepis a další vlastnosti najdete v části Možnosti konfigurace požadavků dále v této příručce.

Odpověď zahrnuje durationMilliseconds, offsetMillisecondsa další. Vlastnost combinedPhrases obsahuje úplné přepisy pro všechny mluvčí.

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

Možnosti konfigurace požadavku

Tady jsou některé možnosti vlastností, které můžete nakonfigurovat přepis při volání operace Přepisy – Přepis .

Vlastnost Popis Požadované nebo volitelné
channels Seznam indexů založených na nule kanálů, které se mají přepisovat samostatně. Pokud není povolená diarizace, podporují se až dva kanály. Ve výchozím nastavení rozhraní API pro rychlé přepisy sloučí všechny vstupní kanály do jednoho kanálu a pak provede přepis. Pokud to není žádoucí, kanály je možné přepisovat nezávisle bez sloučení.

Chcete-li přepsat kanály ze stereo zvukového souboru samostatně, je třeba zadat [0,1], [0]nebo [1]. V opačném případě se stereo zvuk sloučí do monofonu a přepisuje se jenom jeden kanál.

Pokud je zvuk stereo a diarizace je povolena, nemůžete vlastnost nastavit channels na [0,1]. Služba Speech nepodporuje diarizaci více kanálů.

U monofonního zvuku channels je vlastnost ignorována a zvuk se vždy přepisuje jako jeden kanál.
Volitelné
diarization Konfigurace diarizace. Diarizace je proces rozpoznávání a oddělení více reproduktorů v jednom zvukovém kanálu. Zadejte například "diarization": {"maxSpeakers": 2, "enabled": true}. Soubor přepisu pak obsahuje speaker položky (například "speaker": 0 ) "speaker": 1pro každou přepisovanou frázi. Volitelné
locales Seznam národních prostředí, která by měla odpovídat očekávanému národnímu prostředí zvukových dat k přepisu.

Pokud znáte národní prostředí zvukového souboru, můžete ho určit, aby se zlepšila přesnost přepisu a minimalizovala se latence. Pokud je zadáno jedno národní prostředí, použije se k přepisu toto národní prostředí.

Pokud si ale nejste jistí národním prostředím, můžete zadat více národních prostředí. Identifikace jazyka může být přesnější s přesnějším seznamem kandidátských národních prostředí.

Pokud nezadáte žádné národní prostředí nebo pokud zadaná národní prostředí nejsou ve zvukovém souboru, služba Speech se stále snaží identifikovat jazyk. Pokud jazyk nejde identifikovat, vrátí se chyba.

Podporovaná národní prostředí, která můžete zadat, jsou: de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR a zh-CN. Nejnovější podporované jazyky můžete získat prostřednictvím přepisů – seznam podporovaných národních prostředí REST API. Další informace o národních prostředích najdete v dokumentaci podpory jazyka služby Speech.
Volitelné, ale doporučuje se, pokud znáte očekávané národní prostředí.
profanityFilterMode Určuje způsob zpracování vulgárních výrazů ve výsledcích rozpoznávání. Přijaté hodnoty jsou None zakázání filtrování vulgárních výrazů, Masked nahrazení vulgárních výrazů hvězdičkami, Removed odebrání všech vulgárních výrazů z výsledku nebo Tags přidání značek vulgárních výrazů. Výchozí hodnota je Masked. Volitelné