除了 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 接受 IPA 和 X-SAMPA 拼音字母。如需支援的語言和電話訊息清單,請參閱電話訊息頁面。
每個 <phoneme>
標記套用都會導向單一字詞的發音:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
壓力標記
語音轉錄最多可以有三個壓力等級:
- 主要壓力:IPA 中的
ˈ
和 X-SAMPA 中的"
表示。 - 次要壓力:在 IPA 中會標示
ˌ
,在 X-SAMPA 中會註明%
。 - 無壓力:未以符號 (任一標記法) 表示。
某些語言可能少於三個層級,或者完全不代表壓力配置。請參閱電話訊息頁面,查看您的語言可用的壓力等級。壓力標記會放在每個可承受壓力的開始時。以英文 (美國) 為例:
範例字詞 | 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
,則必須提供至少一項。
gender
:male
、female
或neutral
其中之一。variant
:根據您的設定,如果多種語音可能使用,則可用做仲裁。language
:所需的語言。只能在指定的<voice>
標記中指定一種語言。請以 BCP-47 格式指定語言。您可以在「支援的語音和語言」頁面的語言代碼欄中,找到您語言的 BCP-47 程式碼。
您也可以使用另外兩個標記:required
和 ordering
,控制每個 gender
、variant
和 language
屬性的相對優先順序。
required
:如果屬性指定為required
,且未正確設定,要求就會失敗。ordering
:系統會將ordering
標記之後所列的任何屬性視為偏好屬性,而非必要屬性。SSML 會盡可能依照偏好屬性在ordering
標記後面的順序排列。如有任何偏好的屬性設定不正確,Actions on Google 仍可能傳回有效的語音,但會捨棄不正確的設定。
使用 required
和 ordering
標記的設定範例:
<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>
標記,切換成說出所需語言 (如果有的話) 的語音。