Platform Actions on Google mendukung sejumlah fitur SSML Beta selain Elemen SSML standar Actions on Google.
Ringkasan fitur SSML Beta yang didukung:
<phoneme>
: Menyesuaikan pengucapan kata tertentu.<say-as interpret-as="duration">
: Menentukan durasi.<voice>
: Beralih antarsuara dalam permintaan yang sama.<lang>
: Menggunakan beberapa bahasa dalam permintaan yang sama.- Timepoint: Gunakan tag
<mark>
untuk menampilkan timepoint yang ditentukan dalam transkrip.
<phoneme>
Anda dapat menggunakan tag <phoneme>
untuk membuat pengucapan kata-kata kustom
secara inline. Actions on Google menyetujui
IPA dan
Alfabet fonetik X-SAMPA. Lihat
halaman fonem untuk daftar
bahasa dan fonem.
Setiap penerapan tag <phoneme>
mengacu pada pengucapan suatu
kata:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Penanda penekanan
Ada hingga tiga tingkat penekanan yang dapat ditempatkan dalam transkripsi:
- Stres utama: Ditunjukkan dengan
ˈ
dalam IPA dan"
di X-SAMPA. - Stres sekunder: Ditunjukkan dengan
ˌ
dalam IPA dan%
di X-SAMPA. - Tanpa penekanan: Tidak dilambangkan dengan simbol (dalam salah satu notasi).
Beberapa bahasa mungkin memiliki kurang dari tiga tingkat atau tanpa penempatan penekanan sama sekali. Lihat halaman fonem untuk melihat tingkat stres yang tersedia untuk bahasa Anda. Penanda stres ditempatkan di awal setiap suku kata yang ditekankan. Misalnya, dalam bahasa Inggris AS:
Contoh kata | IPA | X-SAMPA |
---|---|---|
air | ˈwɑːtɚ |
"wA:t@` |
underwater | ˌʌndɚˈwɑːtɚ |
%Vnd@"wA:t@ |
Transkripsi luas vs sempit
Sebagai aturan umum, pastikan transkripsi Anda lebih luas dan bersifat fonetik.
Misalnya, dalam bahasa Inggris AS, transkripsikan t
intervokal (bukan menggunakan
ketuk):
Contoh kata | IPA | X-SAMPA |
---|---|---|
butter | ˈbʌtɚ bukan ˈbʌɾɚ |
"bVt@` bukan "bV4@` |
Dalam beberapa kasus, penggunaan representasi fonetik dapat membuat hasil TTS terdengar tidak wajar (misalnya, jika urutan fonem secara anatomis sulit diucapkan).
Salah satu contohnya adalah menyuarakan asimilasi untuk s
dalam bahasa Inggris. Dalam hal ini,
asimilasi harus tercermin dalam transkripsi:
Contoh kata | IPA | X-SAMPA |
---|---|---|
kucing | ˈkæts |
"k{ts |
anjing | ˈdɑːgz bukan ˈdɑːgs |
"dA:gz bukan "dA:gs |
Pengurangan
Setiap suku kata harus berisi satu (dan hanya satu) vokal. Artinya, Anda harus menghindari konsonan suku kata dan mentranskripsikannya dengan vokal yang dikurangi. Misalnya:
Contoh kata | IPA | X-SAMPA |
---|---|---|
kitten | ˈkɪtən bukan ˈkɪtn |
"kIt@n bukan "kitn |
kettle | ˈkɛtəl bukan ˈkɛtl |
"kEt@l bukan "kEtl |
Silabifikasi
Anda dapat secara opsional menentukan batas suku kata menggunakan .
. Setiap suku kata harus
mengandung satu (dan hanya satu) vokal. Contoh:
Contoh kata | IPA | X-SAMPA |
---|---|---|
readability | ˌɹiː.də.ˈbɪ.lə.tiː |
%r\i:.d@."bI.l@.ti: |
Durasi
Platform Actions on Google mendukung <say-as interpret-as="duration">
untuk
durasi baca. Misalnya, contoh berikut akan dibacakan sebagai "lima
jam tiga puluh menit":
<say-as interpret-as="duration" format="h:m">5:30</say-as>
String format mendukung nilai berikut:
Singkatan | Nilai |
---|---|
h | jam |
m | menit |
s | detik |
ms | milidetik |
<voice>
Tag <voice>
memungkinkan Anda menggunakan lebih dari satu suara dalam satu permintaan SSML. Pada contoh berikut, suara defaultnya adalah suara pria berbahasa Inggris.
Semua kata akan disintesis dengan suara ini, kecuali untuk "qu'est-ce qui t'amène
ici", yang akan diucapkan dalam bahasa Prancis menggunakan suara perempuan, bukan
bahasa default (Inggris) dengan gender (laki-laki).
<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>
Atau, Anda dapat menggunakan tag <voice>
untuk menentukan suara individual (
nama suara di
halaman suara dan bahasa yang didukung)
daripada menetapkan language
dan/atau 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>
Saat Anda menggunakan tag <voice>
, Actions on Google akan menerima
name
(
nama suara yang Anda
digunakan) atau kombinasi dari atribut berikut. Ketiganya
atribut bersifat opsional tetapi Anda harus memberikan setidaknya satu jika Anda tidak memberikan
name
.
gender
: Salah satu darimale
,female
atauneutral
.variant
: Digunakan sebagai pemutus ikatan jika ada beberapa kemungkinan suara mana yang akan digunakan berdasarkan konfigurasi Anda.language
: Bahasa yang Anda inginkan. Hanya satu bahasa yang dapat ditentukan dalam tag<voice>
tertentu. Tentukan bahasa Anda dalam format BCP-47. Anda dapat menemukan kode BCP-47 untuk bahasa Anda di kolom kode bahasa di halaman suara dan bahasa yang didukung.
Anda juga dapat mengontrol prioritas relatif dari setiap atribut gender
, variant
,
dan language
menggunakan dua tag tambahan: required
dan ordering
.
required
: Jika atribut ditetapkan sebagairequired
dan tidak dikonfigurasi permintaan akan gagal.ordering
: Atribut apa pun yang tercantum setelah tagordering
dianggap sebagai atribut pilihan, bukan wajib. SSML menganggap atribut pilihan berdasarkan upaya terbaik sesuai urutan yang tercantum setelah tagordering
. Jika ada atribut pilihan yang dikonfigurasi dengan tidak benar, Actions on Google mungkin masih menampilkan suara yang valid tapi dengan konfigurasi yang salah.
Contoh konfigurasi menggunakan tag required
dan 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>
Anda dapat menggunakan <lang>
untuk menyertakan teks dalam berbagai bahasa dalam permintaan SSML yang sama. Semua bahasa akan disintesis dalam suara yang sama kecuali jika Anda menggunakan
<voice>
untuk mengubah suara secara eksplisit. String xml:lang
harus berisi
bahasa target dalam format BCP-47 (nilai ini tercantum sebagai "kode bahasa" di
suara yang didukung
tabel). Pada contoh "chat" berikut akan dibacakan dalam bahasa Prancis, bukan
bahasa default (Inggris):
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
Platform Actions on Google mendukung tag <lang>
berdasarkan upaya terbaik. Tidak semua
kombinasi bahasa akan memberikan hasil berkualitas sama jika ditentukan dalam
permintaan SSML. Dalam beberapa kasus, kombinasi bahasa mungkin menghasilkan efek yang
dapat dideteksi tetapi samar atau dianggap negatif. Masalah umum:
- Bahasa Jepang dengan karakter Kanji tidak didukung oleh tag
<lang>
. Tujuan input teks ditransliterasi dan dibaca sebagai karakter bahasa China. - Bahasa-bahasa Semit seperti Arab, Ibrani, dan Persia tidak didukung oleh
tag
<lang>
dan akan menyebabkan keheningan. Jika Anda ingin menggunakan bahasa sebaiknya gunakan tag<voice>
untuk beralih ke suara yang berbicara dalam bahasa yang Anda inginkan (jika tersedia).