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 설명서를 참조하세요.