Udostępnij za pośrednictwem


Używanie szybkiego interfejsu API transkrypcji (wersja zapoznawcza) z usługą Azure AI Speech

Uwaga

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Interfejs API szybkiego transkrypcji jest dostępny tylko za pośrednictwem interfejsu API REST zamiany mowy na tekst w wersji 2024-05-15-preview. Ta wersja zapoznawcza może ulec zmianie i nie jest zalecana do użytku produkcyjnego. Zostanie ona wycofana bez powiadomienia 90 dni po kolejnej wersji zapoznawczej lub ogólnie dostępnej wersji interfejsu API.

Interfejs API szybkiej transkrypcji służy do transkrypcji plików audio z synchronicznym i znacznie szybszym zwracaniem wyników niż dźwięk 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

Napiwek

Wypróbuj szybką transkrypcję w usłudze Azure AI Studio.

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

Szybki interfejs API transkrypcji to interfejs API REST, który używa wieloczęściowych/formularzy danych do przesyłania plików audio na potrzeby transkrypcji. Interfejs API zwraca wyniki transkrypcji synchronicznie.

Skonstruuj treść żądania zgodnie z następującymi instrukcjami:

  • Ustaw wymaganą locales właściwość. Ta wartość powinna być zgodna z oczekiwaną wartością ustawień regionalnych danych audio do transkrypcji. Obsługiwane ustawienia regionalne 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. Dowiedz się więcej na temat obsługi języka usługi Mowa. Najnowsze obsługiwane języki można uzyskać za pośrednictwem transkrypcji interfejsu API REST — wyświetlanie listy obsługiwanych ustawień regionalnych
  • Opcjonalnie ustaw profanityFilterMode właściwość , aby określić 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. Właściwość profanityFilterMode działa tak samo jak za pośrednictwem interfejsu API transkrypcji wsadowej.
  • Opcjonalnie ustaw channels właściwość , aby określić indeksy zerowe kanałów do transkrypcji oddzielnie. Jeśli nie zostanie określony, wiele kanałów jest scalanych i transkrybowanych wspólnie. Obsługiwane są tylko dwa kanały. Jeśli chcesz oddzielnie transkrybować kanały z pliku audio stereo, musisz określić [0,1] tutaj. W przeciwnym razie dźwięk stereo zostanie scalony z mono, dźwięk mono pozostanie tak, jak jest, a tylko jeden kanał zostanie transkrypcji. W jednym z tych ostatnich przypadków dane wyjściowe nie mają indeksów kanałów dla transkrypcji tekstu, ponieważ transkrypcja jest tylko jednym strumieniem audio.
  • Opcjonalnie ustaw diarizationSettings właściwość na rozpoznawanie i oddzielanie wielu głośników w pliku audio mono channel. Należy określić minimalną i maksymalną liczbę osób, które mogą mówić w pliku audio (na przykład określ wartość "diarizationSettings": {"minSpeakers": 1, "maxSpeakers": 4}). Następnie plik transkrypcji będzie zawierać speaker wpis dla każdej transkrypcji frazy. Funkcja nie jest dostępna w przypadku dźwięku channels stereo podczas ustawiania właściwości jako [0,1].

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 utworzyć transkrypcję przy użyciu szybkiego interfejsu API transkrypcji.

  • 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.
  • Ustaw właściwości definicji formularza zgodnie z wcześniejszym opisem.
curl --location 'https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-05-15-preview' \
--header 'Content-Type: multipart/form-data' \
--header 'Accept: application/json' \
--header 'Ocp-Apim-Subscription-Key: YourSubscriptionKey' \
--form 'audio=@"YourAudioFile"' \
--form 'definition="{
    \"locales\":[\"en-US\"], 
    \"profanityFilterMode\": \"Masked\", 
    \"channels\": [0,1]}"'

Odpowiedź będzie zawierać durationwartości , channeli inne. Właściwość combinedPhrases zawiera pełne transkrypcje dla każdego kanału oddzielnie. Na przykład wszystko, co pierwszy mówca powiedział, jest w pierwszym elemecie combinedPhrases tablicy, a wszystko, co drugi głośnik powiedział, jest w drugim elemecie tablicy.

{
	"duration": 185079,
	"combinedPhrases": [
		{
			"channel": 0,
			"text": "Hello. Thank you for calling Contoso. Who am I speaking with today? Hi, Mary. Are you calling because you need health insurance? Great. If you can answer a few questions, we can get you signed up in the Jiffy. So what's your full name? Got it. And what's the best callback number in case we get disconnected? Yep, that'll be fine. Got it. So to confirm, it's 234-554-9312. Excellent. Let's get some additional information for your application. Do you have a job? OK, so then you have a Social Security number as well. OK, and what is your Social Security number please? Sorry, what was that, a 25 or a 225? You cut out for a bit. Alright, thank you so much. And could I have your e-mail address please? Great. Uh That is the last question. So let me take your information and I'll be able to get you signed up right away. Thank you for calling Contoso and I'll be able to get you signed up immediately. One of our agents will call you back in about 24 hours or so to confirm your application. Absolutely. If you need anything else, please give us a call at 1-800-555-5564, extension 123. Thank you very much for calling Contoso. Uh Yes, of course. So the default is a digital membership card, but we can send you a physical card if you prefer. Uh, yeah. Absolutely. I've made a note on your file. You're very welcome. Thank you for calling Contoso and have a great day."
		},
		{
			"channel": 1,
			"text": "Hi, my name is Mary Rondo. I'm trying to enroll myself with Contuso. Yes, yeah, I'm calling to sign up for insurance. Okay. So Mary Beth Rondo, last name is R like Romeo, O like Ocean, N like Nancy D, D like Dog, and O like Ocean again. Rondo. I only have a cell phone so I can give you that. Sure, so it's 234-554 and then 9312. Yep, that's right. Uh Yes, I am self-employed. Yes, I do. Uh Sure, so it's 412256789. It's double two, so 412, then another two, then five. Yeah, it's maryrondo@gmail.com. So my first and last name at gmail.com. No periods, no dashes. That was quick. Thank you. Actually, so I have one more question. I'm curious, will I be getting a physical card as proof of coverage? uh Yes. Could you please mail it to me when it's ready? I'd like to have it shipped to, are you ready for my address? So it's 2660 Unit A on Maple Avenue SE, Lansing, and then zip code is 48823. Awesome. Thanks so much."
		}
	],
	"phrases": [
		{
			"channel": 0,
			"offset": 720,
			"duration": 480,
			"text": "Hello.",
			"words": [
				{
					"text": "Hello.",
					"offset": 720,
					"duration": 480
				}
			],
			"locale": "en-US",
			"confidence": 0.9177142
		},
		{
			"channel": 0,
			"offset": 1200,
			"duration": 1120,
			"text": "Thank you for calling Contoso.",
			"words": [
				{
					"text": "Thank",
					"offset": 1200,
					"duration": 200
				},
				{
					"text": "you",
					"offset": 1400,
					"duration": 80
				},
				{
					"text": "for",
					"offset": 1480,
					"duration": 120
				},
				{
					"text": "calling",
					"offset": 1600,
					"duration": 240
				},
				{
					"text": "Contoso.",
					"offset": 1840,
					"duration": 480
				}
			],
			"locale": "en-US",
			"confidence": 0.9177142
		},
		{
			"channel": 0,
			"offset": 2320,
			"duration": 1120,
			"text": "Who am I speaking with today?",
			"words": [
				{
					"text": "Who",
					"offset": 2320,
					"duration": 160
				},
				{
					"text": "am",
					"offset": 2480,
					"duration": 80
				},
				{
					"text": "I",
					"offset": 2560,
					"duration": 80
				},
				{
					"text": "speaking",
					"offset": 2640,
					"duration": 320
				},
				{
					"text": "with",
					"offset": 2960,
					"duration": 160
				},
				{
					"text": "today?",
					"offset": 3120,
					"duration": 320
				}
			],
			"locale": "en-US",
			"confidence": 0.9177142
		},
        // More transcription results removed for brevity
        // {...},
		{
			"channel": 1,
			"offset": 4480,
			"duration": 1600,
			"text": "Hi, my name is Mary Rondo.",
			"words": [
				{
					"text": "Hi,",
					"offset": 4480,
					"duration": 400
				},
				{
					"text": "my",
					"offset": 4880,
					"duration": 120
				},
				{
					"text": "name",
					"offset": 5000,
					"duration": 120
				},
				{
					"text": "is",
					"offset": 5120,
					"duration": 160
				},
				{
					"text": "Mary",
					"offset": 5280,
					"duration": 240
				},
				{
					"text": "Rondo.",
					"offset": 5520,
					"duration": 560
				}
			],
			"locale": "en-US",
			"confidence": 0.8989456
		},
		{
			"channel": 1,
			"offset": 6080,
			"duration": 1920,
			"text": "I'm trying to enroll myself with Contuso.",
			"words": [
				{
					"text": "I'm",
					"offset": 6080,
					"duration": 160
				},
				{
					"text": "trying",
					"offset": 6240,
					"duration": 200
				},
				{
					"text": "to",
					"offset": 6440,
					"duration": 80
				},
				{
					"text": "enroll",
					"offset": 6520,
					"duration": 200
				},
				{
					"text": "myself",
					"offset": 6720,
					"duration": 360
				},
				{
					"text": "with",
					"offset": 7080,
					"duration": 120
				},
				{
					"text": "Contuso.",
					"offset": 7200,
					"duration": 800
				}
			],
			"locale": "en-US",
			"confidence": 0.8989456
		},
        // More transcription results removed for brevity
        // {...},
	]
}