다음을 통해 공유


Azure AI Speech에서 빠른 전사 API 사용

빠른 전사 API는 실시간보다 동기적으로 빠르게 결과를 반환하는 오디오 파일을 전사하는 데 사용됩니다. 다음과 같이 예측 가능한 대기 시간으로 가능한 한 빨리 오디오 녹음 내용을 기록해야 하는 시나리오에서는 빠른 대화 내용 기록을 사용합니다.

  • 빠른 오디오 또는 동영상 대화 내용 기록, 자막 및 편집.
  • 동영상 번역

일괄 처리 전사 API와 달리 빠른 전사 API는 표시(어휘가 아님) 형식의 전사만 생성합니다. 표시 형식은 문장 부호 및 대문자를 포함하는 전사의 더 사람이 읽을 수 있는 형태입니다.

필수 조건

  • 빠른 대화 내용 기록 API를 사용할 수 있는 지역 중 하나에 있는 Azure AI 음성 리소스입니다. 지원되는 지역은 오스트레일리아 동부, 브라질 남부, 인도 중부, 미국 동부, 미국 동부 2, 프랑스 중부, 일본 동부, 미국 중북부, 북유럽, 미국 중남부, 동남 아시아, 스웨덴 중부, 서유럽, 미국 서부, 미국 서부 2, 미국 서부 3입니다. 기타 음성 서비스 기능이 지원되는 지역에 대한 자세한 내용은 음성 서비스 지역을 참조하세요.

  • 일괄 대화 내용 기록 API에서 지원하는 형식 및 코덱 중 하나를 사용하는 오디오 파일(길이 2시간 미만, 크기 200MB 미만). 지원되는 오디오 형식에 대한 자세한 내용은 지원되는 오디오 형식을 참조하세요.

빠른 대화 내용 기록 API 사용

Azure AI Foundry 포털에서 빠른 전사를 사용해 보세요.

다음 시나리오에서 빠른 전사 API를 사용하는 방법을 알아봅니다(전사를 통해 - 전사).

  • 지정된 알려진 로캘: 지정된 로캘을 사용하여 오디오 파일을 전사합니다. 오디오 파일의 로캘을 알고 있는 경우 전사 정확도를 향상시키고 대기 시간을 최소화하도록 지정할 수 있습니다.
  • 언어 식별 켜기: 언어 식별을 사용하여 오디오 파일을 전사합니다. 오디오 파일의 로캘에 대해 잘 모르는 경우 언어 식별을 설정하여 Speech Service에서 로캘을 식별하도록 할 수 있습니다.
  • 다이어리화 켜기: 다이어리를 사용하여 오디오 파일을 전사합니다. 다이어리화는 대화에서 서로 다른 화자를 구분합니다. Speech Service는 전사된 음성의 특정 부분을 말하는 화자에 대한 정보를 제공합니다.
  • 다중 채널 켜기: 하나 또는 두 개의 채널이 있는 오디오 파일을 전사합니다. 다중 채널 전사는 여러 스피커가 있는 오디오 파일 또는 배경 소음이 있는 오디오 파일과 같이 여러 채널이 있는 오디오 파일에 유용합니다. 기본적으로 빠른 전사 API는 모든 입력 채널을 단일 채널로 병합한 다음 전사를 수행합니다. 바람직하지 않은 경우 채널을 병합하지 않고 독립적으로 전사할 수 있습니다.

오디오 파일 및 요청 본문 속성을 사용하여 transcriptions 엔드포인트에 대한 multipart/form-data POST 요청을 수행합니다.

다음 예제에서는 지정한 로캘을 사용하여 오디오 파일을 전사하는 방법을 보여줍니다. 오디오 파일의 로캘을 알고 있는 경우 전사 정확도를 향상시키고 대기 시간을 최소화하도록 지정할 수 있습니다.

  • YourSubscriptionKey를 Speech 리소스 키로 바꿉니다.
  • YourServiceRegion을 음성 리소스 지역으로 바꿉니다.
  • YourAudioFile을 오디오 파일 경로로 바꿉니다.
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"]}"'

다음 지침에 따라 양식 정의를 생성합니다.

  • 기록할 오디오 데이터의 예상 로캘과 일치해야 하는 선택적(권장) locales 속성을 설정합니다. 이 예제에서는 로캘이 .로캘로 en-US설정됩니다. 지정할 수 있는 지원되는 로캘은 de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR 및 zh-CN입니다.

빠른 전사 API에 대한 locales 자세한 내용 및 기타 속성은 이 가이드의 뒷부분에 있는 요청 구성 옵션 섹션을 참조하세요.

응답에는 등offsetMilliseconds등이 포함됩니다durationMilliseconds. 속성에는 combinedPhrases 모든 스피커에 대한 전체 전사가 포함되어 있습니다.

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

요청 구성 옵션

다음은 전사 - 전사 작업을 호출할 때 전사를 구성하는 몇 가지 속성 옵션입니다.

속성 설명 필수 또는 선택 사항
channels 별도로 전사할 채널의 인덱스(0부터 시작)의 목록입니다. 일지를 사용하도록 설정하지 않는 한 최대 2개의 채널이 지원됩니다. 기본적으로 빠른 전사 API는 모든 입력 채널을 단일 채널로 병합한 다음 전사를 수행합니다. 바람직하지 않은 경우 채널을 병합하지 않고 독립적으로 전사할 수 있습니다.

스테레오 오디오 파일에서 채널을 별도로 전사하려면 , [0,1][0]또는 [1]. 그렇지 않으면 스테레오 오디오가 모노에 병합되고 단일 채널만 전사됩니다.

오디오가 스테레오이고 다이어리화를 사용하는 경우 속성을 [0,1].로 설정할 channels 수 없습니다. Speech Service는 여러 채널의 일기화를 지원하지 않습니다.

모노 오디오의 channels 경우 속성이 무시되고 오디오는 항상 단일 채널로 기록됩니다.
선택 사항
diarization 다이어리화 구성입니다. 다이어리화는 한 오디오 채널에서 여러 스피커를 인식하고 분리하는 프로세스입니다. 예를 들어 ."diarization": {"maxSpeakers": 2, "enabled": true} 그런 다음 전사 파일에는 기록된 각 구에 대한 항목(예: "speaker": 0 또는"speaker": 1)이 포함 speaker 됩니다. 선택 사항
locales 기록할 오디오 데이터의 예상 로캘과 일치해야 하는 로캘 목록입니다.

오디오 파일의 로캘을 알고 있는 경우 전사 정확도를 향상시키고 대기 시간을 최소화하도록 지정할 수 있습니다. 단일 로캘을 지정하면 해당 로캘이 전사에 사용됩니다.

그러나 로캘에 대해 잘 모르는 경우 여러 로캘을 지정할 수 있습니다. 더 정확한 후보 로캘 목록을 사용하여 언어 식별이 더 정확할 수 있습니다.

로캘을 지정하지 않거나 지정한 로캘이 오디오 파일에 없는 경우 Speech Service는 여전히 언어를 식별하려고 시도합니다. 언어를 식별할 수 없으면 오류가 반환됩니다.

지정할 수 있는 지원되는 로캘은 de-DE, en-IN, en-US, es-ES, es-MX, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, pt-BR 및 zh-CN입니다. 전사 - 지원되는 로캘 목록 REST API를 통해 지원되는 최신 언어를 가져올 수 있습니다. 로캘에 대한 자세한 내용은 Speech Service 언어 지원 설명서를 참조하세요.
선택 사항이지만 예상 로캘을 알고 있는 경우 권장됩니다.
profanityFilterMode 인식 결과에서 욕설의 처리 방법을 지정합니다. 허용되는 값은 욕설 필터링을 사용하지 않으려면 None, 욕설을 별표로 바꾸려면 Masked, 결과에서 모든 욕설을 제거하려면 Removed, 욕설 태그를 추가하려면 Tags입니다. 기본값은 Masked입니다. 선택 사항