語音合成標記語言 (SSML) 參考資料 (Beta 版)

Actions on Google 平台除了支援 Actions on Google 標準 SSML 元素

支援的 Beta 版 SSML 功能摘要:

  • <phoneme>:自訂特定字詞的發音。
  • <say-as interpret-as="duration">:指定時間長度。
  • <voice>:在同一個要求中切換語音。
  • <lang>:在同一項要求中使用多種語言。
  • 時間點:使用 <mark> 標記傳回指定時間點 只出現在轉錄稿中。

<phoneme>

您可以使用 <phoneme> 標記來產生字詞的自訂發音 內嵌。Actions on Google 接受 IPAX-SAMPA 拼音字母。詳情請參閱 電話訊息頁面,查看支援清單 包括語言和電話。

每次套用 <phoneme> 標記時,都會找出單一 字詞:

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

壓力標記

語音轉錄可分為三種等級:

  1. 主要壓力:以 IPA 的 ˈ 和 X-SAMPA 的 " 表示。
  2. 次要壓力:在 X-SAMPA 中以 ˌ% 表示。
  3. 無壓力:不是以符號表示 (無論是在標記法中)。

部分語言可能少於三個層級,或是表示沒有壓力的位置 。如果想瞭解詳細資訊,請參閱電話通訊頁面 各種語言提供的壓力程度壓力標記會放在 在每個壓力大旁開始。以英文 (美國) 為例:

範例字詞 IPA X-SAMPA
ˈwɑːtɚ "wA:t@`
水下 ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

廣泛與精確語音轉錄內容

原則上,語音轉錄內容應盡量擴大涵蓋範圍,並盡量使用電話麥克風。 舉例來說,如果使用美式英文,請轉錄互譯 t (而非使用 輕觸):

範例字詞 IPA X-SAMPA
奶油 ˈbʌtɚ 取代 ˈbʌɾɚ "bVt@` 取代 "bV4@`

在某些情況下,使用手機麥克風表示法會導致 TTS 結果聽起來不自然 (舉例來說,假設雜音連續 難以發音)

其中一個例子就是英文 s 的 Vvo 停用作業。在這種情況下 應該在語音轉錄內容中反映輔助動作:

範例字詞 IPA X-SAMPA
ˈkæts "k{ts
ˈdɑːgz 取代 ˈdɑːgs "dA:gz 取代 "dA:gs

縮小

每個音符必須包含一個 (且只能) 母音。這代表您應該 盡量避免含音符,而是以較低的母音進行轉錄。例如:

範例字詞 IPA X-SAMPA
小貓 ˈkɪtən 取代 ˈkɪtn "kIt@n 取代 "kitn
熱水壺 ˈkɛtəl 取代 ˈkɛtl "kEt@l 取代 "kEtl

符號化

您可以使用 . 指定可套用的界線。每個遊戲適用的元素都必須 只包含一個 (且只有一個) 母音。例如:

範例字詞 IPA X-SAMPA
可讀性 ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

時間長度

Actions on Google 平台能正確支援 <say-as interpret-as="duration"> 讀取時間長度以下範例會讀出「five」 小時 30 分鐘」:

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

格式字串支援下列值:

縮寫
小時 小時
公尺 分鐘
毫秒 毫秒

<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

  • gendermalefemaleneutral 其中之一。
  • variant:如果有多個片段,可用做仲裁器 每個語音的各種可能性
  • language:您想要的語言。一個語言中只能指定一種語言 已提供 <voice> 標記。請以 BCP-47 格式指定語言。您可以 以您慣用語言的 BCP-47 代碼表示,方法是在語言代碼欄中 支援的語音和語言頁面

您也可以控制 gendervariant、 和 language 屬性:requiredordering

  • 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 格式 (這個值會在 支援的語音 表格)。在下方的「chat」範例中將以法文朗讀 預設語言 (英文):

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

Actions on Google 平台會盡可能支援 <lang> 標記。並非 針對以相同語言指定語言 SSML 要求在某些情況下,語言組合可能會產生 可以偵測,但輕微或視為負面。已知問題:

  • <lang> 標記不支援含有漢字字元的日文。 輸入的文字經過音譯,並以中文字元顯示
  • 系統不支援阿拉伯文、希伯來文和波斯文等半印度語言 <lang> 標記,且會造成靜音。如要使用上述任一 建議的語言:使用 <voice> 標記切換至語音 說出所需語言 (如有)。