다음을 통해 공유


SSML을 사용하여 음성 및 소리 사용자 지정

SSML(Speech Synthesis Markup Language)을 사용하여 음성 출력에 대한 텍스트 음성, 언어, 이름, 스타일 및 역할을 지정할 수 있습니다. 단일 SSML 문서에서 여러 음성을 사용하고 강조, 말하기 속도, 높낮이 및 볼륨을 조정할 수도 있습니다. 또한 SSML은 음향 효과 또는 음악 악보와 같은 사전 녹음된 오디오를 삽입하는 기능을 제공합니다.

이 문서에서는 SSML 요소를 사용하여 음성 및 소리를 지정하는 방법을 보여 줍니다. SSML 구문에 대한 자세한 내용은 SSML 문서 구조 및 이벤트를 참조하세요.

음성 요소 사용

각 SSML speak 요소 내에 하나 이상의 voice 요소를 지정해야 합니다. 이 요소는 텍스트 음성 변환에 사용되는 음성을 결정합니다.

단일 SSML 문서에 여러 voice 요소를 포함할 수 있습니다. 각 voice 요소는 다른 음성을 지정할 수 있습니다. 문장 사이의 무음 지속 시간을 변경하는 경우와 같이 다른 설정으로 동일한 음성을 여러 번 사용할 수도 있습니다.

다음 표에서는 voice 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
name 텍스트 음성 변환 출력에 사용되는 음성입니다. 지원되는 미리 빌드된 음성의 전체 목록은 언어 지원을 참조하세요. Required
effect 디바이스의 특정 시나리오에 대해 합성된 음성 출력의 품질을 최적화하는 데 사용되는 오디오 효과 프로세서입니다.

프로덕션 환경의 일부 시나리오에서는 특정 디바이스의 재생 왜곡으로 인해 청각적 환경이 저하될 수 있습니다. 예를 들어, 자동차 스피커에서 합성된 음성은 스피커 응답, 실내 반향 및 백그라운드 노이즈와 같은 환경 요인으로 인해 둔하고 희미하게 들릴 수 있습니다. 승객이 더 명확하게 들으려면 볼륨을 높여야 할 수도 있습니다. 이러한 시나리오에서 수동 조작을 피하기 위해 오디오 효과 프로세서는 재생 왜곡을 보상하여 소리를 더 선명하게 만들 수 있습니다.

지원되는 값은 다음과 같습니다.
  • eq_car – 자동차, 버스 및 기타 밀폐된 자동차에서 고품질 음성을 제공할 때 청각 환경을 최적화합니다.
  • eq_telecomhp8k - 통신 또는 전화 시나리오에서 협대역 음성에 대한 청각 환경을 최적화합니다. 샘플링 속도는 8kHz여야 합니다. 샘플 속도가 8kHz가 아닌 경우 출력 음성의 청각 품질이 최적화되지 않습니다.

값이 누락되었거나 유효하지 않은 경우 이 특성은 무시되고 효과가 적용되지 않습니다.
선택 사항

Voice 예

voice 요소의 특성에 지원되는 값에 대해서는 음성 요소 사용을 참조하세요.

단일 voice 예제

이 예제에서는 en-US-AvaMultilingualNeural 음성을 사용합니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        This is the text that is spoken.
    </voice>
</speak>

다중 음성 예

speak 요소 내에서 텍스트 음성 변환 출력의 여러 음성을 지정할 수 있습니다. 이러한 음성은 서로 언어를 사용할 수 있습니다. 각 음성의 텍스트를 voice 요소에 래핑해야 합니다.

이 예는 en-US-AvaMultilingualNeuralen-US-AndrewMultilingualNeural 음성을 번갈아 사용합니다. 인공신경망 다국어 음성은 입력 텍스트를 기반으로 다양한 언어를 말할 수 있습니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Good morning!
    </voice>
    <voice name="en-US-AndrewMultilingualNeural">
        Good morning to you too Ava!
    </voice>
</speak>

사용자 지정 신경망 음성 예

사용자 지정 신경망 음성을 사용하려면 SSML에서 모델 이름을 음성 이름으로 지정합니다.

이 예에서는 my-custom-voice라는 사용자 지정 음성을 사용합니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="my-custom-voice">
        This is the text that is spoken.
    </voice>
</speak>

오디오 효과 예

effect 특성을 사용하여 자동차 및 통신과 같은 시나리오의 청각적 환경을 최적화합니다. 다음 SSML 예에서는 자동차 시나리오의 구성과 함께 effect 특성을 사용합니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural" effect="eq_car">
        This is the text that is spoken.
    </voice>
</speak>

말하기 스타일 및 역할 사용

기본적으로 신경망 음성에는 중립적인 말하기 스타일이 있습니다. 문장 수준에서 말하는 스타일, 스타일 정도, 역할을 조정할 수 있습니다.

참고 항목

Speech Service는 음성 스타일 및 역할 설명서에 설명된 대로 인공신경망 음성의 하위 집합에 대한 스타일, 스타일 수준 및 역할을 지원합니다. 각 음성에 대해 지원되는 스타일 및 역할을 확인하려면 목록 음성 API 및 오디오 콘텐츠 만들기 웹 애플리케이션을 사용할 수도 있습니다.

다음 표에서는 mstts:express-as 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
style 음성별 말하기 스타일입니다. 명랑함, 공감, 차분함과 같은 감정을 표현할 수 있습니다. 또한 고객 서비스, 뉴스 프로 및 음성 도우미와 같은 다양한 시나리오에 맞게 음성을 최적화할 수 있습니다. 스타일 값이 없거나 잘못된 경우 전체 mstts:express-as 요소가 무시되고 서비스는 기본 중립 음성을 사용합니다. 사용자 지정 신경망 음성 스타일은 사용자 지정 신경망 음성 스타일 예를 참조하세요. Required
styledegree 말하는 스타일의 강도입니다. 더 강한 스타일 또는 더 부드러운 스타일을 지정하여 음성에 감정을 더 싣거나 더 차분하게 말할 수 있습니다. 허용되는 값의 범위는 0.01에서 2까지입니다. 기본값은 미리 정의된 스타일 강도를 의미하는 1입니다. 최소 단위인 0.01에서는 대상 스타일의 성향이 약간 나타납니다. 값이 2이면 기본 스타일 강도는 두 배가 됩니다. 스타일 정도가 누락되었거나 음성에 지원되지 않는 경우 이 특성은 무시됩니다. 선택 사항
role 말하기 역할 놀이입니다. 음성은 다른 나이와 성별을 흉내낼 수 있지만 음성 이름은 변경되지 않습니다. 예를 들어 남자 음성의 피치를 높이고 억양을 변경하여 여자 음성을 모방할 수 있지만 음성 이름은 변경되지 않습니다. 역할이 없거나 음성에 대해 지원되지 않는 경우 이 특성은 무시됩니다. 선택 사항

아래 표에서 지원되는 각 style 특성에 대해 설명합니다.

스타일 설명
style="advertisement_upbeat" 제품 또는 서비스 홍보를 위한 활기차고 힘 있는 톤을 표현합니다.
style="affectionate" 높은 음과 에너지 넘치는 목소리로 따뜻하고 다정한 톤을 표현합니다. 말하는 사람이 듣는 사람의 주의를 집중시키는 상태입니다. 이와 같은 "개성"을 보이는 사람은 매력을 타고난 경우가 많습니다.
style="angry" 화나고 짜증나는 톤을 나타냅니다.
style="assistant" 디지털 비서에 적합한 따뜻하고 편안한 톤을 표현합니다.
style="calm" 말할 때 냉정하고 침착하고 차분한 태도를 표현합니다. 어조, 피치 및 운율은 다른 유형의 음성에 비해 더 균일합니다.
style="chat" 가볍고 편안한 톤을 표현합니다.
style="cheerful" 긍정적이고 즐거운 톤을 표현합니다.
style="customerservice" 고객 지원에 적합한 친근하고 친절한 톤을 표현합니다.
style="depressed" 낮은 음과 힘 없는 목소리로 우울하고 낙담한 톤을 표현합니다.
style="disgruntled" 언짢고 불쾌한 톤을 표현합니다. 이 감정의 음성은 불쾌감과 무시를 나타냅니다.
style="documentary-narration" 다큐멘터리, 전문가 해설 및 이와 유사한 콘텐츠를 더빙하기에 적합한 편안하고 흥미롭고 유익한 스타일로 다큐멘터리를 내레이션합니다.
style="embarrassed" 말하는 사람이 불편함을 느낄 때 불확실하고 망설이는 톤을 표현합니다.
style="empathetic" 사려 깊고 이해심 많은 톤을 표현합니다.
style="envious" 다른 사람이 가지고 있는 것을 원하는 경우 감탄하는 어조를 표현합니다.
style="excited" 낙관적이고 희망적인 톤을 표현합니다. 뭔가 좋은 일이 일어나고 있는 것처럼 들리고 화자는 그것에 대해 행복해 합니다.
style="fearful" 높은 음, 높은 에너지의 목소리로 빠르게 말하여 무섭고 초초한 톤을 표현합니다. 화자는 긴장하고 불안한 상태입니다.
style="friendly" 즐겁고, 매력적이고, 따뜻한 톤을 표현합니다. 진지하고 배려심 있는 소리입니다.
style="gentle" 낮은 음과 에너지 넘치는 목소리로 부드럽고 공손하고 상냥한 톤을 표현합니다.
style="hopeful" 따뜻하고 갈망하는 톤을 표현합니다. 화자에게 좋은 일이 생긴 것 같습니다.
style="lyrical" 노래를 부르는 듯한 감성적인 방식으로 감정을 표현합니다.
style="narration-professional" 콘텐츠 읽기에 적합한 전문적이고 객관적인 톤을 표현합니다.
style="narration-relaxed" 콘텐츠 읽기에 적합한 마음을 달래는 선율적인 어조를 표현합니다.
style="newscast" 뉴스 내레이션에 적합한 정중하고 전문적인 톤을 표현합니다.
style="newscast-casual" 일반 뉴스 보도에 적합한 가볍고 자유로운 톤을 표현합니다.
style="newscast-formal" 뉴스 보도에 적합한 정중하고 신뢰할 수 있고 권위 있는 톤을 표현합니다.
style="poetry-reading" 시를 읽는 동안 감정적이고 리듬감 있는 톤을 표현합니다.
style="sad" 슬픈 톤을 표현합니다.
style="serious" 엄격한 명령조 톤을 표현합니다. 딱딱한 억양으로 말하는 사람은 더 강경하고 경직된 것처럼 들립니다.
style="shouting" 음성이 먼 위치나 다른 위치에서 들려와서 명확하기 듣기 위해 노력해야 하는 것처럼 들리는 어조를 표현합니다.
style="sports_commentary" 스포츠 경기 방송을 위한 편안하고 흥미로운 어조를 표현합니다.
style="sports_commentary_excited" 스포츠 경기에서 흥미진진한 순간을 방송하기 위한 강하고 활기찬 톤을 표현합니다.
style="whispering" 조용하고 부드러운 소리를 만들려고 하는 부드러운 어조를 표현합니다.
style="terrified" 빠르고 흔들리는 목소리로 매우 무서운 어조를 표현합니다. 화자가 불안정하고 정신 나간 상태에 있는 것처럼 들립니다.
style="unfriendly" 차갑고 무관심한 톤을 표현합니다.

다음 표에는 지원되는 각 role 특성에 대한 설명이 있습니다.

역할 설명
role="Girl" 음성이 여자 아이를 모방합니다.
role="Boy" 음성이 남자 아이를 모방합니다.
role="YoungAdultFemale" 음성이 젊은 여성을 모방합니다.
role="YoungAdultMale" 음성이 젊은 남성을 모방합니다.
role="OlderAdultFemale" 음성이 중년 여성을 모방합니다.
role="OlderAdultMale" 음성이 중년 남성을 모방합니다.
role="SeniorFemale" 음성이 노년 여성을 모방합니다.
role="SeniorMale" 음성이 노년 남성을 모방합니다.

mstts express-as 예

mstts:express-as 요소의 특성에 지원되는 값에 대해서는 말하기 스타일 및 역할 사용을 참조하세요.

스타일 및 정도 예

mstts:express-as 요소를 사용하여 명랑, 공감, 차분과 같은 감정을 표현합니다. 또한 고객 서비스, 뉴스 프로 및 음성 도우미와 같은 다양한 시나리오에 맞게 음성을 최적화할 수 있습니다.

다음 SSML 예는 sad 스타일 정도가 2<mstts:express-as> 요소를 사용합니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

역할 예

말하기 스타일과 스타일 정도를 조정하는 것 외에도 음성이 다른 연령과 성별을 모방하도록 role 매개 변수를 조정할 수도 있습니다. 예를 들어 남자 음성의 피치를 높이고 억양을 변경하여 여자 음성을 모방할 수 있지만 음성 이름은 변경되지 않습니다.

이 SSML 코드 조각은 role 특성을 사용하여 zh-CN-XiaomoNeural의 롤플레이를 변경하는 방법을 보여줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

사용자 지정 신경망 음성 스타일 예

사용자 지정 인공신경망 음성을 학습하여 cheerful, sadwhispering과 같은 일부 미리 설정된 스타일로 말할 수 있습니다. 또한 학습 데이터에 의해 결정된 사용자 지정 스타일로 말하도록 사용자 지정 신경망 음성을 학습할 수 있습니다. SSML에서 사용자 지정 신경망 음성 스타일을 사용하려면 이전에 Speech Studio에서 입력한 스타일 이름을 지정합니다.

이 예에서는 my-custom-voice라는 사용자 지정 음성을 사용합니다. 사용자 지정 음성은 cheerful 사전 설정 스타일 및 스타일 수준 2로 말한 다음, my-custom-style이라는 사용자 지정 스타일 및 스타일 수준 0.01로 말합니다.

<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="my-custom-voice">
        <mstts:express-as style="cheerful" styledegree="2">
            That'd be just amazing!
        </mstts:express-as>
        <mstts:express-as style="my-custom-style" styledegree="0.01">
            What's next?
        </mstts:express-as>
    </voice>
</speak>

화자 프로필 ID

mstts:ttsembedding 요소를 사용하여 개인 음성에 대한speakerProfileId속성을 지정합니다. 개인 음성은 사용자 고유의 음성 또는 고객의 음성으로 학습된 사용자 지정 인공신경망 음성입니다. 자세한 내용은 개인 음성 만들기를 참조하세요.

다음 SSML 예제에서는 음성 이름과 스피커 프로필 ID가 있는 <mstts:ttsembedding> 요소를 사용합니다.

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice xml:lang='en-US' xml:gender='Male' name='PhoenixV2Neural'> 
    <mstts:ttsembedding speakerProfileId='your speaker profile ID here'> 
    I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun. 我很高兴听到你觉得我很了不起,我让你的旅行计划更轻松、更有趣。Je suis heureux d'apprendre que vous me trouvez incroyable et que j'ai rendu la planification de votre voyage plus facile et plus amusante.  
    </mstts:ttsembedding> 
    </voice> 
</speak> 

말하기 언어 조정

기본적으로 다국어 음성은 입력 텍스트의 언어를 자동으로 검색하고 SSML을 사용하지 않고 입력 텍스트의 기본 로캘 언어로 말할 수 있습니다. 필요에 따라 <lang xml:lang> 요소를 사용하여 이러한 음성의 말하기 언어를 조정하여 영국 영어에 대한 en-GB 같은 기본 설정 악센트를 설정할 수 있습니다. 문장 수준과 단어 수준에서 말하기 언어를 조정할 수 있습니다. 다국어 음성에 지원되는 언어에 대한 자세한 내용은 lang 요소를 사용한 다국어 음성에서 <lang> 구문 및 특성 정의를 보여 주는 표를 참조하세요.

다음 표에서는 <lang xml:lang> 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
xml:lang 신경망 음성으로 말하려는 언어입니다. 신경망 음성에 대한 말하기 언어를 조정하는 데 필요합니다. lang xml:lang을 사용하는 경우 로캘을 제공해야 합니다.

참고 항목

<lang xml:lang> 요소는 prosodybreak 요소와 호환되지 않습니다. 이 요소에서는 피치, 음조 곡선, 속도 또는 음량과 같은 일시 중지 및 운율을 조정할 수 없습니다.

lang 요소를 사용한 다국어 음성

다음 예제 표에 설명된 것처럼 다국어 음성 섹션을 사용하여 Speech Service에서 각 인공신경망 음성에 대해 지원하는 말하기 언어를 결정합니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

음성 자동 검색된 언어 번호 자동 검색된 언어(로캘) 모든 로캘 번호 SSML에서 지원되는 모든 언어(로캘)
en-US-AndrewMultilingualNeural1(남성)
en-US-AvaMultilingualNeural1(여성)
en-US-BrianMultilingualNeural1(남성)
en-US-EmmaMultilingualNeural1(여성)
77 아프리칸스어(af-ZA), 알바니아어(sq-AL), 암하릭어(am-ET), 아랍어(ar-EG), 아르메니아어(hy-AM), 아제르바이잔어(az-AZ), 인도네시아어(id-ID), 벵골어(bn-BD), 바스크어(eu-ES), 벵골어(bn-IN), 보스니아어(bs-BA), 불가리아어(bg-BG), 버마어(my-MM), 카탈로니아어(ca-ES), 중국어 광둥어(zh-HK), 중국어 북경어(zh-CN), 중국어 대만어(zh-TW), 크로아티아어(hr-HR), 체코어(cs-CZ), 덴마크어(da-DK), 네덜란드어(nl-NL) , 영어(en-US), 에스토니아어(et-EE), 필리핀어(fil-PH), 핀란드어(fi-FI), 프랑스어(fr-FR), 갈리시아어(gl-ES), 조지아어(ka-GE), 독일어(de-DE), 그리스어(el-GR), 히브리어(he-IL), 힌디어(hi-IN), 헝가리어(hu-HU), 아이슬란드어(is-IS), 아일랜드어(ga-IE), 이탈리아어 (it-IT), 일본어(ja-JP), 자바어(jv-ID), 칸나다어(kn-IN), 카자흐어(kk-KZ), 크메르어(km-KH), 한국어(ko-KR), 라오어( lo-LA), 라트비아어(lv-LV), 리투아니아어(lt-LT), 마케도니아어(mk-MK), 말레이어(ms-MY), 말라얄람어(ml-IN), 몰타어(mt-MT), 몽골어(mn-MN), 네팔어(ne-NP), 노르웨이어 보크말(nb-NO), 파슈토어(ps-AF), 페르시아어(fa-IR), 폴란드어(pl-PL), 포르투갈어(pt-BR), 루마니아어(ro-RO), 러시아어(ru-RU), 세르비아어(sr-RS), 싱할라어(si-LK), 슬로바키아어(sk-SK), 슬로베니아어(sl-SI), 소말리아어(so-SO), 스페인어((es-ES), 순다어(su-ID), 스와힐리어(sw-KE), 스웨덴어(sv-SE), 타밀어(ta-IN), 텔루구어(te-IN), 태국어(th-TH), 터키어(tr-TR ), 우크라이나어(uk-UA), 우르두어(ur-PK), 우즈베크어(uz-UZ), 베트남어(vi-VN), 웨일스어(cy-GB), 줄루어(zu-ZA) 91 아프리칸스어(남아프리카)(af-ZA), 알바니아어(알바니아)(sq-AL), 암하라어(에티오피아)(am-ET), 아랍어(이집트)(ar-EG), 아랍어(사우디아라비아)(ar-SA ), 아르메니아어(아르메니아)(hy-AM), 아제르바이잔어(아제르바이잔)(az-AZ), 바스크어(바스크어)(eu-ES), 벵골어(인도)(bn-IN), 보스니아어(보스니아 헤르체고비나)(bs-BA), 불가리아어(불가리아)(bg-BG), 버마어(미얀마)(my-MM), 카탈로니아어(스페인)(ca-ES), 중국어(광둥어, 번체)(zh-HK), 중국어(북경어, 간체)(zh-CN), 중국어(대만 북경어)(zh-TW), 크로아티아어(크로아티아)(hr-HR), 체코어(체코)(cs-CZ), 덴마크어(덴마크)(da-DK), 네덜란드어(벨기에)(nl-BE), 네덜란드어(네덜란드)(nl-NL), 영어(호주)(en-AU), 영어(캐나다)(en-CA), 영어(홍콩 SAR)(en-HK) , 영어(인도)(en-IN), 영어(아일랜드)(en-IE), 영어(영국)(en-GB), 영어(미국)(en-US), 에스토니아어(에스토니아)(et-EE), 필리핀어(필리핀)(fil-PH), 핀란드어(핀란드)(fi-FI), 프랑스어(벨기에)(fr-BE), 프랑스어(캐나다)(fr-CA), 프랑스어(프랑스)(fr-FR), 프랑스어(스위스)(fr-CH), 갈리시아어(갈리시아어)(gl-ES), 조지아어(조지아)(ka-GE), 독일어(오스트리아)(de-AT), 독일어(독일)(de-DE), 독일어(스위스)(de-CH), 그리스어(그리스)(el-GR), 히브리어(이스라엘)(he-IL), 힌디어(인도)(hi-IN), 헝가리어(헝가리)(hu-HU), 아이슬란드어(아이슬란드)(is-IS), 인도네시아어(인도네시아)(id-ID), 아일랜드어(아일랜드)(ga-IE), 이탈리아어(이탈리아)(it-IT), 일본어(일본)(ja-JP), 자바어(인도네시아)(jv-ID), 칸나다어(인도)(kn-IN), 카자흐어(카자흐스탄)(kk-KZ), 크메르어(캄보디아)(km-KH), 한국어(한국)(ko-KR), 라오어(라오스)(lo-LA), 라트비아어(라트비아)(lv-LV), 리투아니아어(리투아니아)(lt-LT), 마케도니아어(북마케도니아)(mk-MK), 말레이어(말레이시아)(ms-MY), 말라얄람어(인도)(ml-IN) , 몰타어(몰타)(mt-MT), 몽골어(몽골)(mn-MN), 네팔어(네팔)(ne-NP), 노르웨이어(보크몰, 노르웨이)(nb-NO), 파슈토어(아프가니스탄)(ps-AF), 페르시아어(이란)(fa-IR), 폴란드어(폴란드)(pl-PL), 포르투갈어(브라질)(pt-BR), 포르투갈어(포르투갈)(pt-PT), 루마니아어(루마니아)(ro-RO), 러시아어(러시아)(ru-RU), 세르비아어(세르비아)(sr-RS), 싱할라어(스리랑카)(si-LK), 슬로바키아어(슬로바키아)(sk-SK), 슬로베니아어(슬로베니아)(sl-SI), 소말리아어(소말리아)(so-SO), 스페인어(멕시코)(es-MX), 스페인어(스페인)(es-ES), 순다어(인도네시아)(su-ID), 스와힐리어(케냐)(sw-KE), 스웨덴어(스웨덴)(sv-SE), 타밀어(인도)(ta-IN), 텔루구어(인도)(te-IN), 태국어(태국)(th-TH), 터키어(터키예)(tr-TR), 우크라이나어(우크라이나)(uk-UA), 우르두어(파키스탄)(ur-PK), 우즈베크어(우즈베키스탄)(uz-UZ), 베트남어(베트남)(vi-VN), 웨일스어(영국)( cy-GB), 줄루어(남아프리카 공화국)(zu-ZA)

1 Azure AI Speech의 인공신경망 다국어 음성입니다. 모든 다국어 음성은 SSML을 사용하지 않고 입력 텍스트의 기본 로캘로 언어로 말할 수 있습니다. 그러나 여전히 <lang xml:lang> 요소를 사용하여 각 언어의 말하기 강조를 조정하여 영어에 대한 영국 강조(en-GB)와 같은 기본 강조를 설정할 수 있습니다. 각 음성의 기본 로캘은 이름에 접두사로 표시됩니다(예: 음성 en-US-AndrewMultilingualNeural). 기본 로캘은 en-US입니다.

참고 항목

다국어 음성은 break, emphasis, silencesub와 같은 특정 SSML 요소를 완전히 지원하지 않습니다.

Lang 예

lang 요소의 특성에 지원되는 값에 대해서는 말하기 언어 조정을 참조하세요.

언어가 다른 곳에서 조정되었는지 여부에 관계없이 speak 요소 내에서 en-US을 기본 언어로 지정해야 합니다. 이 예에서 en-US-AvaMultilingualNeural의 기본 언어는 en-US입니다.

이 SSML 코드 조각은 <lang xml:lang>을 사용하여 en-US-AvaMultilingualNeural 신경망 음성으로 de-DE를 말하는 방법을 보여 줍니다.

<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-AvaMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

speak 요소 내에서 텍스트 음성 변환 출력에 대해 en-US를 포함하여 여러 언어를 지정할 수 있습니다. 조정된 각 언어에 대해 텍스트는 언어와 일치해야 하며 voice 요소에서 래핑해야 합니다. 이 SSML 조각은 <lang xml:lang>을 사용하여 말하기 언어를 es-MX, en-USfr-FR로 변경하는 방법을 보여 줍니다.

<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-AvaMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

운율 조정

prosody 요소를 사용하여 텍스트 음성 변환 출력의 피치, 음조 곡선, 범위, 속도 및 음량에 대한 변경 내용을 지정할 수 있습니다. prosody 요소에는 텍스트와 audio, break, p, phoneme, prosody, say-as, subs 요소가 포함될 수 있습니다.

운율 특성 값이 광범위하게 달라질 수 있으므로 음성 인식기는 할당된 값을 선택한 음성에 대해 권장하는 실제 운율 값으로 해석합니다. 텍스트 음성 변환은 지원되지 않는 값을 제한하거나 대체합니다. 지원되지 않는 값의 예로 피치 1MHz 또는 볼륨 120을 들 수 있습니다.

다음 표에서는 prosody 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
contour 피치 곡선은 피치의 변화를 나타냅니다. 이러한 변화는 음성 출력에서 특정 시간 위치에 있는 대상의 배열로 정의됩니다. 매개 변수 쌍 집합은 각 대상을 정의합니다. 예:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

각 매개 변수 세트의 첫 번째 값은 피치 변경의 위치를 텍스트 기간의 백분율로 지정합니다. 두 번째 값은 피치에 대한 상대값 또는 열거형 값을 사용하여 피치를 높이거나 낮추는 양을 지정합니다(pitch 참조).
선택 사항
pitch 텍스트의 기준 피치를 나타냅니다. 피치 변경은 문장 수준에서 적용할 수 있습니다. 피치 변경은 원래 오디오의 0.5~1.5배 이내여야 합니다. 다음과 같이 피치를 표현할 수 있습니다.
  • 숫자에 "Hz"(헤르츠)를 붙여서 표현하는 절대값. 예: <prosody pitch="600Hz">some text</prosody>.
  • 상대 값:
    • 상대 숫자: "+" 또는 "-" 기호 뒤에 숫자를 붙이고 그 뒤에 "Hz" 또는 "st"를 붙여서 피치를 변경하는 양을 지정합니다. 예를 들어 <prosody pitch="+80Hz">some text</prosody> 또는 <prosody pitch="-2st">some text</prosody>입니다. "st"는 변경 단위가 반음, 즉, 표준 온음계 톤의 절반(반음)임을 나타냅니다.
    • 백분율 표시: "+"(선택 사항) 또는 "-"가 앞에 오는 숫자로 표시되고 그 뒤에 "%"가 따라와 상대적인 변화를 나타냅니다. 예를 들어 <prosody pitch="50%">some text</prosody> 또는 <prosody pitch="-50%">some text</prosody>입니다.
  • 상수 값:
    • x-low
    • 낮음
    • 보통
    • 높음
    • x-high
    • default
선택 사항
range 텍스트의 피치 범위를 나타내는 값입니다. rangepitch를 설명하는 데 사용한 것과 동일한 절댓값, 상대값 또는 열거형 값을 사용하여 표현할 수 있습니다. 선택 사항
rate 텍스트를 읽는 속도를 나타냅니다. 말하기 속도는 단어 또는 문장 수준에서 적용할 수 있습니다. 비율 변경은 원본 오디오의 0.5에서 2배 이내여야 합니다. rate를 다음과 같이 나타낼 수 있습니다.
  • 상대 값:
    • 상대 숫자: 기본값의 승수 역할을 하는 숫자로 표시됩니다. 예를 들어 1 값은 원래 속도를 변경하지 않습니다. 0.5 값은 원래 속도를 절반으로 줄입니다. 2 값은 원래 속도의 두 배입니다.
    • 백분율 표시: "+"(선택 사항) 또는 "-"가 앞에 오는 숫자로 표시되고 그 뒤에 "%"가 따라와 상대적인 변화를 나타냅니다. 예를 들어 <prosody rate="50%">some text</prosody> 또는 <prosody rate="-50%">some text</prosody>입니다.
  • 상수 값:
    • x-slow
    • slow
    • 보통
    • fast
    • x-fast
    • default
선택 사항
volume 말하기 음성의 볼륨 수준을 나타냅니다. 볼륨 변경은 문장 수준에서 적용할 수 있습니다. 볼륨을 다음과 같이 나타낼 수 있습니다.
  • 절대값: 가장 작은 소리부터 가장 큰 소리까지를 0.0에서 100.0 범위의 숫자(예: 75)로 표현합니다. 기본값은 100.0입니다.
  • 상대 값:
    • 상대 숫자: "+" 또는 "-" 기호 뒤에 숫자를 붙여서 볼륨을 변경하는 양을 지정합니다. 예를 들어 +10 또는 -5.5입니다.
    • 백분율 표시: "+"(선택 사항) 또는 "-"가 앞에 오는 숫자로 표시되고 그 뒤에 "%"가 따라와 상대적인 변화를 나타냅니다. 예를 들어 <prosody volume="50%">some text</prosody> 또는 <prosody volume="+3%">some text</prosody>입니다.
  • 상수 값:
    • 침묵
    • x-soft
    • soft
    • 보통
    • loud
    • x-loud
    • default
선택 사항

Prosody 예

prosody 요소의 특성에 지원되는 값에 대해서는 운율 조정을 참조하세요.

말하기 속도 변경 예

이 SSML 코드 조각은 rate 특성을 사용하여 말하는 속도를 기본 속도보다 30% 높게 변경하는 방법을 보여 줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody rate="+30.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

볼륨 변경 예

이 SSML 코드 조각은 volume 특성을 사용하여 볼륨을 기본 볼륨보다 20% 크게 변경하는 방법을 보여 줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody volume="+20.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

피치 변경 예

이 SSML 코드 조각은 pitch 특성을 사용하여 음성이 높은 피치로 말하는 방법을 보여 줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Welcome to <prosody pitch="high">Enjoy using text to speech.</prosody>
    </voice>
</speak>

피치 윤곽 변경 예

이 SSML 코드 조각은 contour 특성을 사용하여 윤곽선을 변경하는 방법을 보여 줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

강조 조정

선택적 emphasis 요소를 사용하여 텍스트에 대한 단어 수준 강세를 추가하거나 제거할 수 있습니다. 이 요소는 텍스트와 audio, break, emphasis, lang, phoneme, prosody, say-as, subvoice 요소만 포함할 수 있습니다.

참고 항목

단어 수준 강조 튜닝은 en-US-GuyNeural, en-US-DavisNeuralen-US-JaneNeural 신경망 음성에만 사용할 수 있습니다.

음조가 낮고 지속 시간이 짧은 단어의 경우 음조가 눈에 띌 만큼 올라가지 않을 수 있습니다.

다음 표에서는 emphasis 요소의 특성을 설명합니다.

attribute 설명 필수 또는 선택 사항
level 적용할 강조 강도를 나타냅니다.
  • reduced
  • none
  • moderate
  • strong
.
level 특성이 지정되지 않은 경우 기본 수준은 moderate입니다. 각 특성에 대한 자세한 내용은 강조 요소를 참조하세요.
선택 사항

Emphasis 예

emphasis 요소의 특성에 지원되는 값에 대해서는 강조 조정을 참조하세요.

이 SSML 코드 조각은 emphasis 요소를 사용하여 “meetings”라는 단어에 중간 수준의 강조를 추가하는 방법을 보여 줍니다.

<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-AndrewMultilingualNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

기록된 오디오 추가

audio 요소는 선택적입니다. 이를 사용하여 미리 녹음된 오디오를 SSML 문서에 삽입할 수 있습니다. 오디오 파일을 사용할 수 없거나 재생할 수 없는 경우 audio 요소의 본문에는 일반 텍스트 또는 SSML 태그가 포함될 수 있습니다. audio 요소에는 텍스트와 audio, break, p, s, phoneme, prosody, say-assub 요소도 포함될 수 있습니다.

SSML 문서에 포함된 오디오는 다음 요구 사항을 충족해야 합니다.

  • 오디오 파일은 유효한 .mp3, *.wav, *.opus, *.ogg, *.flac 또는 *.wma 파일이어야 합니다.
  • 단일 응답의 모든 텍스트 및 오디오 파일의 총 시간은 600초를 초과할 수 없습니다.
  • 오디오에는 고객 관련 정보나 기타 중요한 정보가 포함되어서는 안 됩니다.

참고 항목

audio 요소는 Long Audio API에서 지원되지 않습니다. 긴 형식 텍스트 음성 변환의 경우 일괄 합성 API(미리 보기)를 대신 사용합니다.

다음 표에서는 audio 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
src 오디오 파일의 URI 위치입니다. 오디오는 인터넷에 액세스할 수 있는 HTTPS 엔드포인트에서 호스트해야 합니다. HTTPS가 필요합니다. 파일을 호스트하는 도메인은 유효하고 신뢰할 수 있는 TLS/SSL 인증서를 제시해야 합니다. 대기 시간을 최소화하려면 오디오 파일을 텍스트 음성 변환 엔드포인트와 동일한 Azure 지역의 Blob Storage에 배치하는 것이 좋습니다. Required

Audio 예

audio 요소의 특성에 지원되는 값에 대해서는 녹음된 오디오 추가를 참조하세요.

이 SSML 코드 조각은 src 특성을 사용하여 두 .wav 파일에서 오디오를 삽입하는 방법을 보여 줍니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

오디오 지속 시간 조정

mstts:audioduration 요소를 사용하여 출력 오디오의 지속 시간을 설정합니다. 이 요소를 사용하면 오디오 출력 완료 타이밍을 동기화하는 데 도움이 됩니다. 오디오 길이는 원본 오디오 속도의 0.5~2배 사이에서 줄이거나 늘릴 수 있습니다. 원본 오디오는 다른 속도 설정이 없는 오디오입니다. 말하는 속도는 설정된 값에 따라 느려지거나 빨라집니다.

오디오 길이 설정은 바깥쪽 voice 요소 내의 모든 입력 텍스트에 적용됩니다. 오디오 길이 설정을 다시 초기화하거나 변경하려면 동일한 음성 또는 다른 음성으로 새 voice 요소를 사용해야 합니다.

다음 표에서는 mstts:audioduration 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
value 출력 오디오의 요청된 지속 시간(예: 2s) 또는 밀리초(예: 2000ms)입니다.

이 값은 다른 속도 설정 없이 원래 오디오의 0.5~2배 이내여야 합니다. 예를 들어 오디오의 요청된 기간이 30s인 경우 원래 오디오는 15초에서 60초 사이여야 합니다. 이러한 경계를 벗어나는 값을 설정하면 해당 최소 또는 최대 배수에 따라 지속 시간이 설정됩니다.

요청한 출력 오디오 기간이 주어지면 Speech Services는 그에 따라 말하기 속도를 조정합니다. 음성 목록 API를 사용하고 WordsPerMinute 특성을 확인하여 사용 중인 신경망 음성의 말하는 속도를 알아봅니다. 입력 텍스트의 단어 수를 WordsPerMinute 특성 값으로 나누어 대략적인 원래 출력 오디오 길이를 가져올 수 있습니다. 오디오 길이를 예상 길이에 가장 가깝게 설정하면 출력 오디오가 가장 자연스럽게 들립니다.
Required

mstts audio duration 예

mstts:audioduration 요소의 특성에 지원되는 값에 대해서는 오디오 지속 시간 조정을 참조하세요.

이 예에서 원본 오디오는 약 15초입니다. mstts:audioduration 요소는 오디오 길이를 20초 또는 20s로 설정하는 데 사용됩니다.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:audioduration value="20s"/>
If we're home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

백그라운드 오디오 추가

mstts:backgroundaudio 요소를 사용하여 배경 오디오를 SSML 문서에 추가하거나 오디오 파일을 텍스트 음성 변환과 혼합할 수 있습니다. mstts:backgroundaudio를 사용하면 백그라운드에서 오디오 파일을 반복하고, 텍스트 음성 변환을 시작할 때 페이드 인하고, 텍스트 음성 변환이 끝날 때 페이드 아웃할 수 있습니다.

제공된 배경 오디오가 텍스트 음성 변환 또는 페이드 아웃보다 짧으면 배경 오디오가 반복됩니다. 텍스트 음성 변환보다 긴 경우 페이드 아웃이 완료되면 중지됩니다.

백그라운드 오디오 파일은 SSML 문서당 하나만 허용됩니다. voice 태그를 audio 요소 내에 배치하여 더 많은 오디오를 SSML 문서에 추가할 수 있습니다.

참고 항목

mstts:backgroundaudio 요소는 모든 voice 요소 앞에 배치되어야 합니다. 지정된 경우 speak 요소의 첫 번째 자식이어야 합니다.

mstts:backgroundaudio 요소는 Long Audio API에서 지원되지 않습니다. 긴 형식 텍스트 음성 변환의 경우 일괄 합성 API(미리 보기)를 대신 사용합니다.

다음 표에서는 mstts:backgroundaudio 요소의 특성 사용에 대해 설명합니다.

attribute 설명 필수 또는 선택 사항
src 백그라운드 오디오 파일의 URI 위치입니다. Required
volume 백그라운드 오디오 파일의 볼륨입니다. 허용되는 값은 0~100 범위입니다. 기본값은 1입니다. 선택 사항
fadein 백그라운드 오디오 페이드인 시간(밀리초)입니다. 기본값은 페이드 인이 없는 0입니다. 허용되는 값은 0~10000 범위입니다. 선택 사항
fadeout 백그라운드 오디오 페이드 아웃 시간(밀리초)입니다. 기본값은 페이드 아웃이 없는 0입니다. 허용되는 값은 0~10000 범위입니다. 선택 사항

mstss backgroundaudio 예

mstts:backgroundaudi 요소의 특성에 지원되는 값에 대해서는 배경 오디오 추가를 참조하세요.

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="en-US-AvaMultilingualNeural">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

다음 단계