Speech Synthesis Markup Language 사용
Azure AI 음성 SDK에서는 일반 텍스트를 제출하여 음성으로 합성할 수 있으며(예: SpeakTextAsync() 메서드 사용), 생성하려는 음성의 특징을 설명하는 XML 기반 구문을 사용할 수도 있습니다. 이 SSML(Speech Synthesis Markup Language) 구문을 사용하면 다음과 같이 음성 출력이 어떻게 들릴지 좀 더 세밀하게 제어할 수 있습니다.
- 신경망 음성을 사용하는 경우 발화 스타일을 지정합니다(예: “excited”(들뜬) 또는 “cheerful”(발랄한)).
- 일시 중지나 침묵을 삽입합니다.
- ‘음소’(음성학적 발음)를 지정합니다(예: “SQL”이라는 텍스트를 “sequel”로 발음).
- (음높이, 음색, 발화 속도에 영향을 주는) 음성의 ‘운율 체계’를 조정합니다.
- 자주 사용하는 “발화 형식” 규칙을 지정합니다(예: 지정된 문자열을 날짜, 시간, 전화번호 또는 다른 형식으로 표현).
- 녹음된 음성 또는 오디오를 삽입합니다(예: 표준 녹음 메시지 또는 시뮬레이션된 배경 소음 포함).
예를 들어, 다음과 같은 SSML을 살펴보겠습니다.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AriaNeural">
<mstts:express-as style="cheerful">
I say tomato
</mstts:express-as>
</voice>
<voice name="en-US-GuyNeural">
I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>.
<break strength="weak"/>Lets call the whole thing off!
</voice>
</speak>
이 SSML은 다음과 같은 두 가지 신경망 음성 간의 대화를 지정합니다.
- Ariana(발랄하게): “나는 토메이토라고 말해.”
- Guy: “나는 토마토라고 말해. 이 얘기는 여기까지만 하자!”
음성 서비스에 SSML 설명을 제출하려면 다음과 같이 SpeakSsmlAsync() 메서드를 사용할 수 있습니다.
speechSynthesizer.SpeakSsmlAsync(ssml_string);
SSML에 대한 자세한 내용은 Azure AI 음성 SDK 설명서를 참조하세요.