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

除了 Actions on Google 標準 SSML 元素外,Actions on Google 平台還支援許多 SSML Beta 版功能。

支援的 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. 次要壓力:在 IPA 中會標示 ˌ,在 X-SAMPA 中會註明 %
  3. 無壓力:未以符號 (任一標記法) 表示。

某些語言可能少於三個層級,或者完全不代表壓力配置。請參閱電話訊息頁面,查看您的語言可用的壓力等級。壓力標記會放在每個可承受壓力的開始時。以英文 (美國) 為例:

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

廣泛與狹窄的轉錄內容

一般而言,請在語音轉錄內容時採用較廣泛的用法和電話麥克風。例如,使用英文 (美國) 轉錄音譯 t (而不是使用輕觸):

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

在某些情況下,使用手機麥克風表示法會導致 TTS 結果不自然 (例如,如果電話的序列難以原名發音)。

其中一個例子是 s 的 Veric 合視。在這種情況下,標記應反映在語音轉錄中:

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

縮減

所有音符都必須包含一個 (而且只能) 母音。這代表您應該避免使用圓滑子,而改為使用較低的母音轉錄。例如:

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

音板

您可以選擇使用 . 指定可中斷的邊界。每個選項必須包含一個母音 (也只能有一個)。例如:

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

時間長度

Actions on Google 平台支援 <say-as interpret-as="duration"> 正確讀取持續時間。舉例來說,以下範例可讀出為「5 小時 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 程式碼。

您也可以使用另外兩個標記:requiredordering,控制每個 gendervariantlanguage 屬性的相對優先順序。

  • 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> 標記,切換成說出所需語言 (如果有的話) 的語音。