Saat menampilkan respons ke Asisten Google, Anda dapat menggunakan subset Bahasa Markup Sintesis Ucapan (SSML) dalam respons. Dengan menggunakan SSML, Anda dapat membuat respons percakapan tampak seperti ucapan alami. Berikut adalah contoh markup SSML dan cara pembacaannya kembali oleh Asisten Google.
function saySSML(conv) { const ssml = '<speak>' + 'Here are <say-as interpret-as="characters">SSML</say-as> samples. ' + 'I can pause <break time="3" />. ' + 'I can play a sound <audio src="https://www.example.com/MY_WAVE_FILE.wav">your wave file</audio>. ' + 'I can speak in cardinals. Your position is <say-as interpret-as="cardinal">10</say-as> in line. ' + 'Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line. ' + 'Or I can even speak in digits. Your position in line is <say-as interpret-as="digits">10</say-as>. ' + 'I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>. ' + 'Finally, I can speak a paragraph with two sentences. ' + '<p><s>This is sentence one.</s><s>This is sentence two.</s></p>' + '</speak>'; conv.ask(ssml); }
{ "expectUserResponse": true, "expectedInputs": [ { "possibleIntents": [ { "intent": "actions.intent.TEXT" } ], "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can pause <break time=\"3\" />. I can play a sound <audio src=\"https://www.example.com/MY_WAVE_FILE.wav\">your wave file</audio>. I can speak in cardinals. Your position is <say-as interpret-as=\"cardinal\">10</say-as> in line. Or I can speak in ordinals. You are <say-as interpret-as=\"ordinal\">10</say-as> in line. Or I can even speak in digits. Your position in line is <say-as interpret-as=\"digits\">10</say-as>. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>" } } ] } } } ] }
Audio
SSML didukung di simulator Action, tetapi tidak di simulator Dialogflow.
URL di SSML
Saat mendefinisikan respons SSML yang hanya menyertakan URL, ampersand di URL
tersebut dapat menyebabkan masalah karena pemformatan XML. Untuk memastikan URL direferensikan
dengan benar, ganti instance &
dengan &
.
Meskipun respons SSML Anda hanya menyertakan URL, Actions on Google memerlukan
teks tampilan untuk respons tersebut. Karena teks di dalam tag <audio>
tidak akan
diucapkan oleh Asisten, Anda dapat memasukkan teks pengisi atau deskripsi singkat di
tag <audio>
untuk memenuhi persyaratan ini. Teks di dalam tag <audio>
tidak akan
diucapkan oleh Asisten setelah audio diputar, dan memenuhi persyaratan Action on Google
untuk versi teks tampilan SSML Anda.
Berikut contoh respons SSML yang bermasalah:
<speak>
<audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
</audio>
</speak>
Contoh di atas tidak meng-escape &
untuk format XML yang tepat.
Versi tetap dari respons SSML yang sama akan terlihat seperti ini:
<speak>
<audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
text
</audio>
</speak>
Dukungan untuk elemen SSML
Bagian berikut menjelaskan elemen dan opsi SSML yang dapat digunakan di Actions Anda.
<speak>
Elemen root respons SSML.
Untuk mempelajari elemen speak
lebih lanjut, lihat spesifikasi W3.
Contoh
<speak> my SSML content </speak>
<break>
Elemen kosong yang mengontrol penjedaan atau batas proodik lainnya di antara kata. Penggunaan <break>
di antara pasangan token bersifat opsional. Jika elemen ini tidak ada di antara kata, jeda akan otomatis ditentukan berdasarkan konteks linguistik.
Untuk mempelajari elemen break
lebih lanjut, lihat spesifikasi W3.
Atribut
Atribut | Deskripsi |
---|---|
time |
Menetapkan durasi jeda dalam detik atau milidetik (misalnya, "3d" atau "250md"). |
strength |
Menetapkan kekuatan jeda proodik output berdasarkan istilah relatif. Nilai yang valid adalah: "x-lemah", lemah", "sedang", "kuat", dan "x-kuat". Nilai "none" menunjukkan bahwa tidak ada batas jeda proodik yang harus dihasilkan, yang dapat digunakan untuk mencegah jeda prosodik yang akan dihasilkan prosesor. Nilai lainnya menunjukkan kekuatan istirahat yang tidak menurun (secara konseptual) secara monoton di antara token. Batas yang lebih kuat biasanya disertai dengan jeda. |
Contoh
Contoh berikut menunjukkan cara menggunakan elemen <break>
untuk menjeda antar-langkah:
<speak> Step 1, take a deep breath. <break time="200ms"/> Step 2, exhale. Step 3, take a deep breath again. <break strength="weak"/> Step 4, exhale. </speak>
<say‑as>
Elemen ini memungkinkan Anda menunjukkan informasi tentang jenis konstruksi teks yang terdapat dalam elemen. Hal ini juga membantu menentukan tingkat detail untuk merender teks yang ada.
Elemen <say‑as>
memiliki atribut yang diperlukan, interpret-as
, yang menentukan cara nilai diucapkan. Atribut opsional format
dan detail
dapat digunakan, bergantung pada nilai interpret-as
tertentu.
Contoh
Atribut interpret-as
mendukung nilai berikut:
-
currency
Contoh berikut diucapkan sebagai "empat puluh dua dolar satu sen". Jika atribut bahasa dihilangkan, atribut tersebut akan menggunakan lokalitas saat ini.
<speak> <say-as interpret-as='currency' language='en-US'>$42.01</say-as> </speak>
-
telephone
Lihat deskripsi
interpret-as='telephone'
dalam catatan WG say-as attribute values W3C SSML 1.0.Contoh berikut diucapkan sebagai "satu delapan nol nol dua nol nol dua satu dua satu dua". Jika atribut "google:style" dihilangkan, atribut tersebut berbicara nol sebagai huruf O.
Atribut "google:style='zero-as-zero'" saat ini hanya berfungsi dalam lokalitas EN.
<speak> <say-as interpret-as='telephone' google:style='zero-as-zero'>1800-202-1212</say-as> </speak>
-
verbatim
atauspell-out
Contoh berikut dieja huruf demi huruf:
<speak> <say-as interpret-as="verbatim">abcdefg</say-as> </speak>
-
date
Atribut
format
adalah urutan kode karakter kolom tanggal. Kode karakter kolom yang didukung diformat
adalah {y
,m
,d
} untuk tahun, bulan, dan hari (dari bulan). Jika kode kolom muncul sekali untuk tahun, bulan, atau hari, jumlah digit yang diharapkan adalah 4, 2, dan 2. Jika kode kolom diulang, jumlah digit yang diharapkan adalah frekuensi kode diulangi. Kolom dalam teks tanggal dapat dipisahkan dengan tanda baca dan/atau spasi.Atribut
detail
mengontrol bentuk ucapan tanggal. Untukdetail='1'
hanya kolom hari dan salah satu kolom bulan atau tahun yang wajib diisi, meskipun keduanya dapat disediakan. Setelan ini merupakan setelan default jika kurang dari ketiga kolom yang diberikan. Bentuk lisannya adalah "Hari {ordinal} bulan {month}, {year}".Contoh berikut diucapkan sebagai "Kesepuluh September, sembilan belas enam puluh":
<speak> <say-as interpret-as="date" format="yyyymmdd" detail="1"> 1960-09-10 </say-as> </speak>
Contoh berikut diucapkan sebagai "Kesepuluh September":
<speak> <say-as interpret-as="date" format="dm">10-9</say-as> </speak>
Untuk
detail='2'
kolom hari, bulan, dan tahun wajib diisi dan ini adalah opsi default saat ketiga kolom disediakan. Formulir yang diucapkan adalah "{month} {ordinal day}, {year}".Contoh berikut diucapkan sebagai "sepuluh September, sembilan belas enam puluh":
<speak> <say-as interpret-as="date" format="dmy" detail="2"> 10-9-1960 </say-as> </speak>
-
characters
Contoh berikut diucapkan sebagai "C A N":
<speak> <say-as interpret-as="characters">can</say-as> </speak>
-
cardinal
Contoh berikut diucapkan sebagai "Dua belas ribu tiga ratus empat puluh lima" (untuk bahasa Inggris AS) atau "Dua belas ribu tiga ratus empat puluh lima (untuk bahasa Inggris Inggris)":
<speak> <say-as interpret-as="cardinal">12345</say-as> </speak>
-
ordinal
Contoh berikut diucapkan sebagai "Pertama":
<speak> <say-as interpret-as="ordinal">1</say-as> </speak>
-
fraction
Contoh berikut diucapkan sebagai "lima setengah":
<speak> <say-as interpret-as="fraction">5+1/2</say-as> </speak>
-
expletive
ataubleep
Contoh berikut berbunyi bip, seolah-olah berbunyi telah disensor:
<speak> <say-as interpret-as="expletive">censor this</say-as> </speak>
-
unit
Mengonversi satuan menjadi tunggal atau jamak bergantung pada bilangannya. Contoh berikut diucapkan sebagai "10 kaki":
<speak> <say-as interpret-as="unit">10 foot</say-as> </speak>
-
time
Contoh berikut diucapkan sebagai "Dua puluh tiga P.M.":
<speak> <say-as interpret-as="time" format="hms12">2:30pm</say-as> </speak>
Atribut
format
adalah urutan kode karakter kolom waktu. Kode karakter kolom yang didukung diformat
adalah {h
,m
,s
,Z
,12
,24
} untuk jam, menit (jam), detik (dari menit), zona waktu, waktu 12 jam, dan waktu 24 jam. Jika kode kolom muncul sekali untuk jam, menit, atau detik, maka jumlah digit yang diharapkan adalah 1, 2, dan 2. Jika kode kolom diulang, jumlah digit yang diharapkan adalah frekuensi kode diulangi. Kolom dalam waktu dapat dipisahkan dengan tanda baca dan/atau spasi. Jika jam, menit, atau detik tidak ditentukan dalam format atau tidak ada digit yang cocok, kolom akan diperlakukan sebagai nilai nol.format
default-nya adalah "hms12".Atribut
detail
mengontrol apakah bentuk waktu yang diucapkan adalah waktu 12 jam atau 24 jam. Bentuk lisan adalah waktu 24 jam jikadetail='1'
atau jikadetail
dihilangkan dan format waktu adalah waktu 24 jam. Bentuk lisan adalah waktu 12 jam jikadetail='2'
atau jikadetail
dihilangkan dan format waktu adalah waktu 12 jam.
Untuk mempelajari elemen say-as
lebih lanjut, lihat spesifikasi W3.
<audio>
Mendukung penyisipan file audio yang direkam dan penyisipan format audio lainnya bersama dengan output ucapan sintesis.
Atribut
Atribut | Wajib | Default | Nilai |
---|---|---|---|
src |
ya | t/a | URI yang merujuk ke sumber media audio. Protokol yang didukung adalah https . |
clipBegin |
tidak | 0 | TimeDesignation yang merupakan offset dari awal sumber audio untuk memulai pemutaran. Jika nilai ini lebih besar dari atau sama dengan durasi sumber audio yang sebenarnya, tidak ada audio yang disisipkan. |
clipEnd |
tidak | tak terhingga | TimeDesignation yang merupakan offset dari pemutaran awal hingga akhir sumber audio. Jika durasi aktual sumber audio kurang dari nilai ini, pemutaran akan berakhir pada waktu tersebut. Jika clipBegin lebih besar dari atau sama dengan clipEnd , tidak ada audio yang disisipkan. |
speed |
tidak | 100% | Rasio pemutaran output rasio relatif terhadap rasio input normal yang dinyatakan dalam persentase. Formatnya adalah Bilangan Nyata positif diikuti dengan %. Rentang yang didukung saat ini adalah [50% (lambat - kecepatan setengah), 200% (cepat - kecepatan ganda)]. Nilai di luar rentang tersebut dapat (atau tidak) disesuaikan agar berada di dalamnya. |
repeatCount |
tidak | 1, atau 10 jika repeatDur ditetapkan |
Bilangan Riil yang menentukan berapa kali audio disisipkan (setelah dipotong, jika ada, oleh clipBegin dan/atau clipEnd ). Pengulangan pecahan tidak didukung, sehingga nilainya akan dibulatkan ke bilangan bulat terdekat. Nol bukanlah nilai yang valid sehingga diperlakukan sebagai tidak ditentukan dan memiliki nilai default dalam kasus tersebut. |
repeatDur |
tidak | tak terhingga | TimeDesignation yang merupakan batas durasi audio yang dimasukkan setelah sumber diproses untuk atribut clipBegin , clipEnd , repeatCount , dan speed (bukan durasi pemutaran normal). Jika durasi audio yang diproses kurang dari nilai ini, pemutaran akan berakhir pada saat itu. |
soundLevel |
tidak | +0dB | Sesuaikan level suara audio menurut soundLevel desibel. Rentang maksimum adalah +/-40 dB, tetapi rentang yang sebenarnya mungkin lebih sedikit, dan kualitas output mungkin tidak memberikan hasil yang baik selama keseluruhan rentang. |
Berikut adalah setelan audio yang saat ini didukung:
- Format: MP3 (MPEG v2)
- 24 ribu sampel per detik
- 24K ~ 96K bit per detik, kecepatan tetap
- Format: Opus di Ogg
- 24 ribu sampel per detik (super-wideband)
- 24K - 96K bit per detik, kecepatan tetap
- Format (tidak digunakan lagi): WAV (RIFF)
- PCM ditandatangani 16-bit kecil, endian kecil
- 24 ribu sampel per detik
- Untuk semua format:
- Channel tunggal lebih disarankan, tetapi stereo dapat diterima.
- Durasi maksimum 240 detik. Jika Anda ingin memutar audio dengan durasi yang lebih lama, pertimbangkan untuk menerapkan respons media.
- Batas ukuran file 5 megabyte.
- URL sumber harus menggunakan protokol HTTPS.
- UserAgent kami saat mengambil audio adalah "Google-Speech-Actions".
Konten elemen <audio>
bersifat opsional dan digunakan jika file audio tidak dapat diputar atau jika perangkat output tidak mendukung audio. Konten dapat menyertakan elemen <desc>
, yang dalam hal ini konten teks elemen tersebut digunakan untuk ditampilkan. Untuk mengetahui informasi selengkapnya, lihat bagian Audio yang Direkam di Checklist Respons.
URL src
juga harus berupa URL https (Google Cloud Storage dapat menghosting file audio di URL https).
Untuk mempelajari lebih lanjut respons media, lihat bagian respons media di panduan Respons.
Untuk mempelajari elemen audio
lebih lanjut, lihat spesifikasi W3.
Contoh
<speak> <audio src="cat_purr_close.ogg"> <desc>a cat purring</desc> PURR (sound didn't load) </audio> </speak>
<p>,<s>
Elemen paragraf dan kalimat.
Untuk mempelajari elemen p
dan s
lebih lanjut, lihat spesifikasi W3.
Contoh
<p><s>This is sentence one.</s><s>This is sentence two.</s></p>
Praktik terbaik
- Gunakan tag <s>...</s> untuk menggabungkan kalimat lengkap, khususnya jika tag tersebut berisi elemen SSML yang mengubah prosody (yaitu, <audio>, <break>, <emphasis>, <par>, <prosody>, <say-as>, <seq>, dan <sub>).
- Jika jeda dalam ucapan dimaksudkan cukup panjang sehingga Anda dapat mendengarnya, gunakan tag <s>...</s> dan letakkan jeda di antara kalimat.
<sub>
Tunjukkan bahwa teks dalam nilai atribut alias menggantikan teks yang terkandung dalam pengucapan.
Anda juga dapat menggunakan elemen sub
untuk memberikan pengucapan sederhana dari kata yang sulit dibaca. Contoh terakhir di bawah ini menunjukkan kasus penggunaan ini dalam bahasa Jepang.
Untuk mempelajari elemen sub
lebih lanjut, lihat spesifikasi W3.
Contoh
<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="にっぽんばし">日本橋</sub>
<mark>
Elemen kosong yang menempatkan penanda ke dalam urutan teks atau tag. Ini dapat digunakan untuk mereferensikan lokasi tertentu dalam urutan atau untuk menyisipkan penanda ke dalam aliran output untuk notifikasi asinkron.
Untuk mempelajari elemen mark
lebih lanjut, lihat spesifikasi W3.
Contoh
<speak> Go from <mark name="here"/> here, to <mark name="there"/> there! </speak>
<prosody>
Digunakan untuk menyesuaikan tinggi nada, kecepatan bicara, dan volume teks yang terdapat pada elemen. Saat ini, atribut rate
, pitch
, dan volume
didukung.
Atribut rate
dan volume
dapat ditetapkan sesuai dengan spesifikasi W3. Ada tiga opsi untuk menetapkan nilai atribut pitch
:
Atribut | Deskripsi |
---|---|
name |
ID string untuk setiap tanda. |
Opsi | Deskripsi |
---|---|
Kerabat | Tentukan nilai relatif (misalnya, "rendah", "sedang", "tinggi", dll.) dengan "media" adalah saran lagu default. |
Semiton | Meningkatkan atau mengurangi tinggi nada dengan semiton "N" menggunakan "+Nst" atau "-Nst". Perhatikan bahwa "+/-" dan "st" wajib diisi. |
Persentase | Meningkatkan atau menurunkan saran lagu sebesar "N" persen dengan menggunakan "+N%" atau "-N%". Perhatikan bahwa "%" diperlukan tetapi "+/-" bersifat opsional. |
Untuk mempelajari elemen prosody
lebih lanjut, lihat spesifikasi W3.
Contoh
Contoh berikut menggunakan elemen <prosody>
untuk berbicara secara perlahan pada 2 seminada yang lebih rendah dari biasanya:
<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>
<emphasis>
Digunakan untuk menambahkan atau menghapus penekanan dari teks yang terkandung oleh elemen. Elemen <emphasis>
mengubah ucapan mirip dengan <prosody>
, tetapi tanpa perlu menetapkan atribut ucapan individual.
Elemen ini mendukung atribut "level" opsional dengan nilai yang valid berikut:
strong
moderate
none
reduced
Untuk mempelajari elemen emphasis
lebih lanjut, lihat spesifikasi W3.
Contoh
Contoh berikut menggunakan elemen <emphasis>
untuk membuat pengumuman:
<emphasis level="moderate">This is an important announcement</emphasis>
<par>
Penampung media paralel yang memungkinkan Anda memutar beberapa elemen media sekaligus. Satu-satunya konten yang diizinkan adalah satu atau beberapa elemen <par>
, <seq>
, dan <media>
. Urutan elemen <media>
tidak signifikan.
Kecuali jika elemen turunan menentukan waktu mulai yang berbeda, waktu mulai implisit untuk elemen tersebut sama dengan waktu mulai penampung <par>
. Jika elemen turunan memiliki nilai offset yang ditetapkan untuk atribut begin atau end, offset elemen tersebut akan bersifat relatif terhadap waktu mulai penampung <par>
. Untuk elemen <par>
root, atribut mulai diabaikan dan waktu mulai adalah ketika proses sintesis ucapan SSML mulai menghasilkan output untuk elemen <par>
root (yaitu, waktu efektif "nol").
Contoh
<speak> <par> <media xml:id="question" begin="0.5s"> <speak>Who invented the Internet?</speak> </media> <media xml:id="answer" begin="question.end+2.0s"> <speak>The Internet was invented by cats.</speak> </media> <media begin="answer.end-0.2s" soundLevel="-6dB"> <audio src="https://actions.google.com/.../cartoon_boing.ogg"/> </media> <media repeatCount="3" soundLevel="+2.28dB" fadeInDur="2s" fadeOutDur="0.2s"> <audio src="https://actions.google.com/.../cat_purr_close.ogg"/> </media> </par> </speak>
<seq>
Penampung media berurutan yang memungkinkan Anda memutar elemen media satu per satu. Satu-satunya konten yang diizinkan adalah satu atau beberapa elemen <seq>
, <par>
, dan <media>
. Urutan elemen media adalah urutan elemen-elemen tersebut dirender.
Atribut begin dan end dari elemen turunan dapat ditetapkan untuk mengimbangi nilai (lihat Spesifikasi Waktu di bawah). Nilai offset elemen turunan tersebut akan relatif terhadap akhir elemen sebelumnya dalam urutan atau, dalam kasus elemen pertama dalam urutan, relatif terhadap awal penampung <seq>
-nya.
Contoh
<speak> <seq> <media begin="0.5s"> <speak>Who invented the Internet?</speak> </media> <media begin="2.0s"> <speak>The Internet was invented by cats.</speak> </media> <media soundLevel="-6dB"> <audio src="https://actions.google.com/.../cartoon_boing.ogg"/> </media> <media repeatCount="3" soundLevel="+2.28dB" fadeInDur="2s" fadeOutDur="0.2s"> <audio src="https://actions.google.com/.../cat_purr_close.ogg"/> </media> </seq> </speak>
<media>
Mewakili lapisan media dalam elemen <par>
atau <seq>
. Konten elemen <media>
yang diizinkan adalah elemen <speak>
atau <audio>
SSML. Tabel berikut menjelaskan atribut yang valid untuk elemen <media>
.
Atribut
Atribut | Wajib | Default | Nilai |
---|---|---|---|
xml:id | tidak | tanpa nilai | ID XML unik untuk elemen ini. Entitas yang dienkode tidak didukung. Nilai ID yang diizinkan cocok dengan ekspresi reguler "([-_#]|\p{L}|\p{D})+" . Lihat XML-ID untuk informasi selengkapnya. |
mulai | tidak | 0 | Waktu mulai untuk penampung media ini. Diabaikan jika ini adalah elemen penampung media root (diperlakukan sama dengan default "0"). Lihat bagian Spesifikasi waktu di bawah untuk nilai string yang valid. |
end | tidak | tanpa nilai | Spesifikasi untuk waktu berakhir penampung media ini. Lihat bagian Spesifikasi waktu di bawah untuk nilai string yang valid. |
pengulangan | tidak | 1 | Bilangan Nyata yang menentukan frekuensi penyisipan media. Pengulangan pecahan tidak didukung, sehingga nilai akan dibulatkan ke bilangan bulat terdekat. Nol bukanlah nilai yang valid sehingga diperlakukan sebagai tidak ditentukan dan memiliki nilai default dalam kasus tersebut. |
pengulangan | tidak | tanpa nilai | TimeDesignation yang merupakan batas durasi media yang disisipkan. Jika durasi media kurang dari nilai ini, pemutaran akan berakhir pada waktu tersebut. |
suaraLevel | tidak | +0dB | Sesuaikan level suara audio sebesar soundLevel desibel. Rentang maksimum adalah +/-40 dB, tetapi rentang yang sebenarnya mungkin lebih sedikit, dan kualitas output mungkin tidak memberikan hasil yang baik selama keseluruhan rentang. |
samar | tidak | 0 dtk | TimeDesignation tempat media akan memudar dari diam ke soundLevel yang ditentukan secara opsional. Jika durasi media kurang dari nilai ini, fade-in akan berhenti di akhir pemutaran dan tingkat suara tidak akan mencapai tingkat suara yang ditentukan. |
pudarkan | tidak | 0 dtk | TimeDesignation tempat media akan memudar dari soundLevel yang ditentukan secara opsional hingga senyap. Jika durasi media kurang dari nilai ini, tingkat suara disetel ke nilai yang lebih rendah untuk memastikan kesenyapan tercapai di akhir pemutaran. |
Spesifikasi waktu
Spesifikasi waktu, yang digunakan untuk nilai atribut `begin` dan `end` dari elemen <media>
dan penampung media (elemen <par>
dan <seq>
), adalah nilai offset (misalnya +2.5s
) atau nilai syncbase (misalnya, foo_id.end-250ms
).
- Nilai offset - Nilai offset waktu adalah nilai Penghitungan Waktu SMIL yang memungkinkan nilai yang cocok dengan ekspresi reguler:
"\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"
String digit pertama adalah keseluruhan bagian dari bilangan desimal dan string digit kedua adalah bagian pecahan desimal. Tanda default (yaitu "(+|-)?") adalah "+". Nilai unit masing-masing sesuai dengan jam, menit, detik, dan milidetik. Nilai default untuk unit adalah "s" (detik).
- Nilai syncbase - Nilai syncbase adalah nilai sinkronisasi base SMIL yang memungkinkan nilai yang cocok dengan ekspresi reguler:
"([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"
Angka dan unit ditafsirkan dengan cara yang sama seperti nilai offset.
Simulator TTS
Konsol Actions menyertakan simulator TTS yang dapat Anda gunakan untuk menguji SSML dengan salah satu elemen di atas. Anda dapat menemukan simulator TTS di konsol di bagian Simulator > Audio. Ketik teks dan SSML di simulator, lalu klik Perbarui dan Dengarkan untuk mendengarkan output TTS.
Anda juga dapat mengklik tombol download untuk menyimpan file .mp3
dari output TTS.