Referensi Bahasa Markup Sintesis Ucapan (SSML) (Beta)

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>: Berganti-ganti suara dalam permintaan yang sama.
  • <lang>: Menggunakan beberapa bahasa dalam permintaan yang sama.
  • Titik waktu: Gunakan tag <mark> untuk menampilkan titik waktu dari titik yang ditentukan dalam transkrip.

<phoneme>

Anda dapat menggunakan tag <phoneme> untuk membuat pengucapan kata-kata kustom secara inline. Actions on Google menerima huruf fonetik IPA dan X-SAMPA. Lihat halaman fonem untuk mengetahui daftar bahasa dan fonem yang didukung.

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:

  1. Tekanan utama: Dilambangkan dengan ˈ di IPA dan " di X-SAMPA.
  2. Tekanan sekunder: Ditunjukkan dengan ˌ pada IPA dan % pada X-SAMPA.
  3. 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 SAMPA-X
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 SAMPA-X
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 menyetujui asimilasi untuk s dalam bahasa Inggris. Dalam hal ini, asimilasi harus tercermin dalam transkripsi:

Contoh kata IPA SAMPA-X
cats ˈkæts "k{ts
dogs ˈ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 SAMPA-X
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 menentukan batas suku kata secara opsional menggunakan .. Setiap suku kata harus berisi satu (dan hanya satu) vokal. Contoh:

Contoh kata IPA SAMPA-X
readability ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

Durasi

Platform Actions on Google mendukung <say-as interpret-as="duration"> untuk membaca durasi dengan benar. Misalnya, contoh berikut akan diucapkan "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 masing-masing suara (nama suara di halaman suara dan bahasa yang didukung), bukan menentukan 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 ingin Anda gunakan) atau kombinasi dari atribut berikut. Ketiga atribut tersebut bersifat opsional, tetapi Anda harus memberikan setidaknya satu jika Anda tidak memberikan name.

  • gender: Salah satu dari male, female, atau neutral.
  • variant: Digunakan sebagai tiebreaker 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 sebagai required dan tidak dikonfigurasi dengan benar, permintaan akan gagal.
  • ordering: Atribut apa pun yang tercantum setelah tag ordering dianggap sebagai atribut pilihan, bukan wajib. SSML mempertimbangkan atribut pilihan berdasarkan upaya terbaik sesuai urutan yang tercantum setelah tag ordering. Jika ada atribut pilihan yang dikonfigurasi dengan tidak benar, Actions on Google mungkin masih menampilkan suara yang valid, tetapi konfigurasi yang salah dihapus.

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 tag <voice> untuk mengubah suara secara eksplisit. String xml:lang harus berisi bahasa target dalam format BCP-47 (nilai ini tercantum sebagai "kode bahasa" di tabel suara yang didukung ). Dalam contoh berikut, "chat" akan diucapkan 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 memberikan hasil kualitas yang sama jika ditentukan dalam permintaan SSML yang sama. 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>. Input ditransliterasi dan dibaca sebagai karakter bahasa China.
  • Bahasa Semit seperti Arab, Ibrani, dan Persia tidak didukung oleh tag <lang> dan akan menyebabkan disenyapkan. Jika Anda ingin menggunakan salah satu bahasa tersebut, sebaiknya gunakan tag <voice> untuk beralih ke suara yang berbicara dalam bahasa yang Anda inginkan (jika tersedia).