음성 합성 마크업 언어(SSML) 참조(베타)

Actions on Google 플랫폼에서는 Actions on Google 표준 SSML 요소

지원되는 베타 SSML 기능 요약:

  • <phoneme>: 특정 단어의 발음을 맞춤설정합니다.
  • <say-as interpret-as="duration">: 기간을 지정합니다.
  • <voice>: 동일한 요청에서 각 음성으로 전환합니다.
  • <lang>: 동일한 요청에서 여러 언어를 사용합니다.
  • 타임포인트: <mark> 태그를 사용하여 지정된 타임포인트를 반환합니다. 꼭 하시기 바랍니다.

<phoneme>

<phoneme> 태그를 사용하여 단어의 커스텀 발음을 인라인으로 생성할 수 있습니다. Actions on Google은 IPAX-SAMPA 표음식 알파벳 자세한 내용은 phonemes 페이지를 참조하세요. 언어 및 음소입니다.

<phoneme> 태그를 한 번씩 적용하여 단일 단어의 음성을 지정합니다.

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
드림

강세 표시

스크립트에는 최대 3개의 강세를 표시할 수 있습니다.

  1. 기본 스트레스: IPA에서 ˈ, X-SAMPA에서 "로 표시됩니다.
  2. 보조 스트레스: IPA에서 ˌ, X-SAMPA에서 %로 표시됩니다.
  3. 강세 없음: 기호 또는 특정 표기법으로 표시되지 않습니다.

일부 언어는 강세가 3개 미만이거나 강세 표시가 전혀 사용되지 않을 수 있습니다. 자세한 내용은 소리나는 대로 페이지를 사용자의 언어에서 제공하는 스트레스 수준을 모니터링할 수 있습니다 스트레스 마커는 첫 번째 음절의 순서를 따릅니다. 예를 들어 미국 영어에서는 다음과 같습니다.

예시 단어 IPA X-SAMPA
ˈwɑːtɚ "wA:t@`
underwater ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

넓은 범위와 좁은 범위의 스크립트 작성

일반적으로 표기는 포괄적이고 자연적인 음성으로 표현하는 것이 좋습니다. 예를 들어 미국 영어에서는t 탭):

예시 단어 IPA X-SAMPA
butter ˈbʌɾɚ 대신 ˈbʌtɚ "bV4@` 대신 "bVt@`

일부 경우에는 음성 표현을 사용함으로써 TTS 결과가 부자연스럽게 들릴 수 있습니다(예: 일련의 음소가 해부학적으로 발음하기 어려운 경우).

한 가지 예로 영어로 된 s의 음성 동화가 있습니다. 이러한 경우에는 그러한 동화현상을 표기에 반영해야 합니다.

예시 단어 IPA X-SAMPA
고양이 ˈkæts "k{ts
ˈdɑːgs 대신 ˈdɑːgz "dA:gs 대신 "dA:gz

절감

모든 음절은 하나(그리고 단 하나)의 모음을 포함해야 합니다. 즉 음절 자음 사용을 피하고 대신 이를 약화된 모음으로 표기해야 합니다. 예를 들면 다음과 같습니다.

예시 단어 IPA X-SAMPA
kitten ˈkɪtn 대신 ˈkɪtən "kitn 대신 "kIt@n
kettle ˈkɛtl 대신 ˈkɛtəl "kEtl 대신 "kEt@l

음절 구분

선택적으로 .를 사용하여 음절 경계를 지정할 수 있습니다. 각 음절마다 하나의 모음만 포함해야 합니다. 예를 들면 다음과 같습니다.

예시 단어 IPA X-SAMPA
가독성 ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

지속 시간

Actions on Google 플랫폼은 <say-as interpret-as="duration">을(를) 통해 올바르게 읽기 시간 예를 들어, 다음 예는 '다섯 명이 시간 30분":

<say-as interpret-as="duration" format="h:m">5:30</say-as>

형식 문자열에는 다음 값이 지원됩니다.

약어
h 시간
m
s
ms 밀리초

<voice>

<voice> 태그를 사용하면 단일 SSML 요청에 음성을 두 가지 이상 사용할 수 있습니다. 다음 예시에서 기본 음성은 남자 영어 음성입니다. 이 음성에서는 여자 음성으로 프랑스어로 발음되는 "qu'est-ce qui t'amène ici"를 제외하고 모든 단어가 기본 언어(영어) 및 성별(남성)로 합성됩니다.

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

또는 <voice> 태그를 사용하여 개별 음성( 음성 이름 지원되는 음성 및 언어 페이지) language 또는 gender를 지정하는 대신

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

<voice> 태그를 사용하면 Actions on Google은 다음 중 하나를 수신할 것으로 예상합니다. name( 음성 이름 사용할 수도 있음) 또는 다음 속성 조합을 사용하세요. 세 가지 모두 속성은 선택사항이지만, name

  • gender: male, female, neutral 중 하나입니다.
  • variant: 여러 개의 음성 옵션을 선택할 수 있습니다.
  • language: 원하는 언어입니다. 제공된 <voice> 태그에 언어를 하나만 지정할 수 있습니다. 언어는 BCP-47 형식으로 지정합니다. 지원되는 음성 및 언어 페이지언어 코드 열에서 해당 언어의 BCP-47 코드를 찾을 수 있습니다.

또한 두 가지 추가 태그인 requiredordering을 사용하여 gender, variant, language 속성의 상대적 우선순위를 제어할 수 있습니다.

  • required: 속성이 required로 지정되고 구성되지 않은 경우 요청이 실패합니다
  • ordering: ordering 태그가 필수가 아닌 선호 속성으로 간주된 다음에 나열되는 모든 속성입니다. SSML에서는 선호하는 속성을 나열된 순서대로 최선을 다해 처리합니다. ordering 태그 뒤에 위치합니다. 기본 속성이 구성된 경우 잘못된 경우 Actions on Google이 여전히 유효한 음성을 반환할 수 있지만 잘못된 구성이 삭제된 것을 확인할 수 있습니다

requiredordering 태그를 사용하는 구성 예시:

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

<lang>을 사용하면 동일한 SSML 요청 내에서 여러 언어로 텍스트를 포함할 수 있습니다. <voice> 태그를 사용하여 음성을 명시적으로 변경하지 않는 한 모든 언어가 동일한 음성을 합성됩니다. xml:lang 문자열은 도착어(BCP-47 형식)(이 값은 지원되는 음성 표). 다음 예시에서 '채팅' 프랑스어가 아닌 프랑스어로 소리내어 나옵니다. 기본 언어 (영어):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

Actions on Google 플랫폼은 최선을 다해 <lang> 태그를 지원합니다. 일부 동일한 언어 조합으로 지정된 경우 언어 조합은 동일한 품질 결과를 SSML 요청 일부 경우에는 언어 조합으로 인해 감지할 수 있지만 미묘하거나 부정적으로 인식되는 효과를 발생시킬 수 있습니다. 알려진 문제:

  • 간지 문자를 사용하는 일본어는 <lang> 태그가 지원되지 않습니다. 이 입력은 음역되어 중국어로 읽힙니다.
  • 아랍어, 히브리어, 페르시아어와 같은 셈어는 <lang> 태그가 포함된 경우 무음으로 설정됩니다. 이러한 <voice> 태그를 사용하여 지원되는 음성 언어로 전환하는 것이 좋습니다. 원하는 언어를 말합니다 (지원되는 경우).