Skip to main content
Sintesis suara

SSML

Gunakan SSML (Speech Synthesis Markup Language) untuk menyesuaikan karakteristik ucapan seperti kecepatan, jeda, dan pelafalan.

Ikhtisar

SSML (Speech Synthesis Markup Language) adalah bahasa markup berbasis XML untuk sintesis ucapan. Sisipkan tag SSML dalam teks Anda guna mengatur laju ucapan, intonasi, jeda, dan volume, atau menambahkan musik latar serta efek suara agar menghasilkan output audio yang lebih kaya. Kasus penggunaan umum meliputi:
  • Audiobook: atur jeda dan laju ucapan secara presisi serta tambahkan musik latar untuk pengalaman mendengarkan yang imersif
  • Layanan pelanggan cerdas: gunakan tag <say-as> untuk memastikan pembacaan akurat nomor telepon, tanggal, dan informasi serupa
  • Penyiaran multibahasa: gunakan tag <phoneme> untuk menentukan pelafalan tepat kata-kata asing
  • Pendidikan daring: ubah rumus LaTeX menjadi ucapan alami dengan fitur pembacaan rumus
Kedua fitur tersebut tersedia untuk keluarga model CosyVoice. Untuk panduan pemilihan model, lihat Sintesis suara.

SSML

Batasan

  • Model: SSML hanya didukung oleh cosyvoice-v3.5-flash, cosyvoice-v3.5-plus, cosyvoice-v3-flash, cosyvoice-v3-plus, dan cosyvoice-v2.
  • Voice: Hanya voice hasil kloning dan voice preset yang ditandai kompatibel dengan SSML di Daftar Voice CosyVoice yang didukung.
  • API: SSML didukung melalui API berikut:
    • Java SDK (versi 2.20.3 atau lebih baru): panggilan non-streaming dan streaming unidireksional
    • Python SDK (versi 1.23.4 atau lebih baru): panggilan non-streaming dan streaming unidireksional
    • WebSocket API: atur parameter enable_ssml ke true, dan kirim satu event continue-task

Mulai cepat

Contoh berikut menggunakan SSML untuk mengatur laju ucapan selama sintesis. Sebelum menjalankan kode, lengkapi prasyarat berikut:
  1. Dapatkan Kunci API
  2. Instal DashScope SDK (Python 1.23.4 atau lebih baru, Java 2.20.3 atau lebih baru). Untuk detailnya, lihat 安装SDK.
Model cosyvoice-v3.5-plus dan cosyvoice-v3.5-flash saat ini hanya tersedia di wilayah Beijing dan dirancang khusus untuk skenario kloning suara (tidak tersedia voice preset). Sebelum menggunakan model ini, buat voice target dengan mengikuti petunjuk di Kloning suara.
  • Java SDK
  • Python SDK
  • WebSocket API
import com.alibaba.dashscope.audio.ttsv2.SpeechSynthesisParam;
import com.alibaba.dashscope.audio.ttsv2.SpeechSynthesizer;
import com.alibaba.dashscope.utils.Constants;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

/**
 * Deskripsi fitur SSML:
 *     1. Hanya panggilan non-streaming dan panggilan streaming unidireksional yang mendukung fitur SSML
 *     2. Hanya voice hasil kloning dari model cosyvoice-v3-flash, cosyvoice-v3-plus, dan cosyvoice-v2, serta voice sistem yang ditandai mendukung SSML dalam daftar voice, yang mendukung fitur SSML (misalnya, voice longanyang dari model cosyvoice-v3-flash)
 */
public class Main {
    private static String model = "cosyvoice-v3-flash";
    private static String voice = "longanyang";

    public static void main(String[] args) {
        // URL wilayah Singapura. Ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
        Constants.baseWebsocketApiUrl = "wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference";
        streamAudioDataToSpeaker();
        System.exit(0);
    }

    public static void streamAudioDataToSpeaker() {
        SpeechSynthesisParam param =
                SpeechSynthesisParam.builder()
                        // Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
                        // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
                        .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                        .model(model)
                        .voice(voice)
                        .build();

        SpeechSynthesizer synthesizer = new SpeechSynthesizer(param, null);
        ByteBuffer audio = null;
        try {
            // Panggilan non-streaming, diblokir hingga audio dikembalikan
            // Karakter khusus perlu di-escape
            audio = synthesizer.call("<speak rate=\"2\">Laju bicara saya lebih cepat daripada orang biasa.</speak>");
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            // Tutup koneksi WebSocket ketika tugas selesai
            synthesizer.getDuplexApi().close(1000, "bye");
        }
        if (audio != null) {
            // Simpan data audio ke file lokal "output.mp3"
            File file = new File("output.mp3");
            try (FileOutputStream fos = new FileOutputStream(file)) {
                fos.write(audio.array());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

        // Transmisi teks pertama memerlukan pembentukan koneksi WebSocket, sehingga latensi paket pertama mencakup waktu penyiapan koneksi
        System.out.println(
                "[Metric] requestId: "
                        + synthesizer.getLastRequestId()
                        + ", latensi paket pertama (ms): "
                        + synthesizer.getFirstPackageDelay());
    }
}

Referensi tag

Implementasi SSML Alibaba Cloud didasarkan pada spesifikasi W3C SSML 1.0. Tidak semua tag standar didukung; layanan ini mengimplementasikan tag yang paling umum digunakan untuk skenario produksi.
  • Saat menggunakan SSML, semua konten teks harus diapit oleh tag <speak></speak>.
  • Beberapa tag <speak> dapat digunakan secara berurutan (misalnya, <speak></speak><speak></speak>), tetapi tidak mendukung penumpukan (misalnya, <speak><speak></speak></speak>).
  • Jika teks di dalam tag berisi karakter khusus XML, escape karakter tersebut sebagai berikut:
    • " (tanda kutip ganda) → &quot;
    • ' (tanda kutip tunggal/apostrof) → &apos;
    • & (ampersand) → &amp;
    • < (tanda kurang dari) → &lt;
    • > (tanda lebih dari) → &gt;

<speak>: elemen root

  • Deskripsi <speak> adalah elemen root untuk semua konten SSML. Semua teks harus diapit oleh tag <speak></speak>.
  • Sintaks
 <speak>Teks yang memerlukan pemrosesan SSML</speak>
  • Atribut
    AtributTipeWajibDeskripsi
    voiceStringTidakMenentukan voice.Atribut ini memiliki prioritas lebih tinggi daripada parameter voice dalam permintaan API.
    <speak voice="longcheng_v2">
      Saya adalah voice pria.
    </speak>
    
    rateStringTidakMenentukan laju ucapan. Atribut ini memiliki prioritas lebih tinggi daripada parameter speech_rate dalam permintaan API.
    • Nilai valid: angka desimal antara 0,5 dan 2 (inklusif)
    • Nilai default: 1
      • Nilai lebih besar dari 1 meningkatkan laju ucapan
      • Nilai kurang dari 1 menurunkan laju ucapan
    • Contoh:
    <speak rate="2">
      Laju ucapan saya lebih cepat daripada normal.
    </speak>
    
    pitchStringTidakMenentukan pitch. Atribut ini memiliki prioritas lebih tinggi daripada parameter pitch_rate dalam permintaan API.
    • Nilai valid: angka desimal antara 0,5 dan 2 (inklusif)
    • Nilai default: 1
      • Nilai lebih besar dari 1 meningkatkan pitch
      • Nilai kurang dari 1 menurunkan pitch
    • Contoh:
    <speak pitch="0.5">
      Namun, pitch saya lebih rendah daripada orang lain.
    </speak>
    
    volumeStringTidakMenentukan volume. Atribut ini memiliki prioritas lebih tinggi daripada parameter volume dalam permintaan API.
    • Nilai valid: bilangan bulat antara 0 dan 100 (inklusif)
    • Nilai default: 50
      • Nilai lebih besar dari 50 meningkatkan volume
      • Nilai kurang dari 50 menurunkan volume
    • Contoh:
    <speak volume="80">
      Volume saya juga sangat tinggi.
    </speak>
    
    effectStringTidakMenentukan efek audio.
    • Nilai valid:
      • robot: efek voice robot
      • lolita: efek voice lolita
      • lowpass: efek filter low-pass
      • echo: efek gema
      • eq: equalizer (lanjutan)
      • lpfilter: filter low-pass (lanjutan)
      • hpfilter: filter high-pass (lanjutan)
      • eq, lpfilter, dan hpfilter adalah jenis efek lanjutan. Gunakan parameter effectValue untuk menyesuaikan efek spesifik.
      • Setiap tag SSML hanya mendukung satu efek. Mengatur beberapa atribut effect secara bersamaan tidak diizinkan.
      • Mengaktifkan efek audio meningkatkan latensi sintesis.
    • Contoh:
    <speak effect="robot">
      Apakah Anda menyukai robot WALL-E?
    </speak>
    
    effectValueStringTidakMengonfigurasi perilaku spesifik efek audio (parameter effect). Berlaku untuk tiga jenis efek lanjutan: eq, lpfilter, dan hpfilter.
    • Nilai valid:
      • eq (equalizer): sistem mendukung 8 pita frekuensi secara default, sesuai dengan frekuensi berikut: ["40 Hz","100 Hz", "200 Hz", "400 Hz", "800 Hz", "1600 Hz", "4000 Hz", "12000 Hz"]. Setiap pita memiliki bandwidth 1,0q. Gunakan parameter effectValue untuk menentukan gain untuk setiap pita. Parameter ini adalah string 8 bilangan bulat berkisar antara -20 hingga 20, dipisahkan spasi. Nilai 0 berarti tidak ada penyesuaian gain untuk frekuensi tersebut. Contoh: effectValue="1 1 1 1 1 1 1 1"
      • lpfilter (filter low-pass): menentukan frekuensi cutoff. Nilai valid: bilangan bulat dalam rentang (0, target_sample_rate/2]. Contoh: effectValue="800".
      • hpfilter (filter high-pass): menentukan frekuensi cutoff. Nilai valid: bilangan bulat dalam rentang (0, target_sample_rate/2]. Contoh: effectValue="1200".
    • Contoh:
    <speak effect="eq" effectValue="1 -20 1 1 1 1 20 1">
      Apakah Anda menyukai robot WALL-E?
    </speak>
    
    <speak effect="lpfilter" effectValue="1200">
      Apakah Anda menyukai robot WALL-E?
    </speak>
    
    <speak effect="hpfilter" effectValue="1200">
      Apakah Anda menyukai robot WALL-E?
    </speak>
    
    bgmStringTidakMenambahkan musik latar ke ucapan yang disintesis. File audio harus disimpan di Alibaba Cloud OSS (lihat Unggah objek), dan bucket harus memiliki akses baca-publik minimal.Jika URL musik latar berisi karakter khusus XML (seperti &, <, >), escape karakter tersebut.
    • Persyaratan audio: Tidak ada batas atas ukuran file musik latar, tetapi file yang lebih besar memerlukan waktu unduh lebih lama. Jika ucapan yang disintesis lebih panjang daripada musik latar, musik akan diputar ulang secara otomatis.
      • Laju sampel: 16 kHz
      • Saluran: mono
      • Format: WAV Untuk mengonversi file non-WAV, gunakan ffmpeg:
    ffmpeg -i input_audio -acodec pcm_s16le -ac 1 -ar 16000 output.wav
    
    • Kedalaman bit: 16-bit
    • Contoh:
    <speak bgm="http://nls.alicdn.com/bgm/2.wav" backgroundMusicVolume="30" rate="-500" volume="40">
      <break time="2s"/>
      Pohon-pohon tua di tebing yang teduh diselimuti kabut
      <break time="700ms"/>
      Suara hujan masih terdengar di hutan bambu
      <break time="700ms"/>
      Saya tahu bahwa kapas berkontribusi pada rencana negara
      <break time="700ms"/>
      Pemandangan Mianzhou selalu menyedihkan
      <break time="2s"/>
    </speak>
    
    Anda bertanggung jawab atas hak cipta audio apa pun yang diunggah.
    backgroundMusicVolumeStringTidakMenentukan volume musik latar. Gunakan atribut ini bersama dengan atribut bgm.
  • Hubungan tag Tag <speak> dapat berisi teks dan tag anak berikut:
  • Contoh lain
    • Tanpa atribut
<speak>
  Teks yang memerlukan tag SSML
</speak>
  • Atribut gabungan (dipisahkan spasi)
<speak rate="200" pitch="-100" volume="80">
  Jadi ketika digabungkan, suara saya terdengar seperti ini.
</speak>

<break>: kontrol durasi jeda

  • Deskripsi Menyisipkan jeda diam selama sintesis ucapan untuk mensimulasikan jeda alami dalam percakapan. Mendukung satuan waktu detik (s) dan milidetik (ms).
  • Sintaks
# Tanpa atribut
<break/>
# Dengan atribut time
<break time="string"/>
  • Atribut
    Tag <break> tanpa atribut menjeda selama 1 detik secara default.
    AtributTipeWajibDeskripsi
    timeStringTidakMenentukan durasi jeda, dalam detik atau milidetik (misalnya, "2s" atau "50ms").
    • Nilai valid:
      • Dalam detik (s): bilangan bulat antara 1 dan 10 (inklusif)
      • Dalam milidetik (ms): bilangan bulat antara 50 dan 10000 (inklusif)
    • Contoh:
    <speak>
      Silakan tutup mata Anda dan beristirahat.<break time="500ms"/>Baiklah, silakan buka mata Anda.
    </speak>
    
    Saat beberapa tag <break> digunakan secara berurutan, total durasi jeda adalah jumlah semua durasi individual. Jika total melebihi 10 detik, hanya 10 detik pertama yang diterapkan.Misalnya, dalam SSML berikut, durasi kumulatif <break> adalah 15 detik. Karena ini melebihi batas 10 detik, jeda aktual dipotong menjadi 10 detik:
    <speak>
      Silakan tutup mata Anda dan beristirahat.<break time="5s"/><break time="5s"/><break time="5s"/>Baiklah, silakan buka mata Anda.
    </speak>
    
  • Hubungan tag <break> adalah elemen self-closing dan tidak dapat berisi elemen anak.

<sub>: ganti teks

  • Deskripsi Mengganti teks tertentu dengan konten yang lebih cocok untuk ucapan. Misalnya, membaca "W3C" sebagai "World Wide Web Consortium."
  • Sintaks
<sub alias="string"></sub>
  • Atribut
    AtributTypeWajibDeskripsi
    aliasStringYaMenentukan teks pengganti yang akan dibaca keras.Contoh:
     <speak>
       <sub alias="protokol jaringan">W3C</sub>
     </speak>
    
  • Hubungan tag Tag <sub> hanya dapat berisi teks biasa.

<phoneme>: tentukan pelafalan (pinyin/fonetik)

  • Deskripsi Memberikan kontrol tepat atas cara teks dilafalkan. Teks Tionghoa mendukung notasi pinyin, dan teks Inggris mendukung notasi fonetik CMU. Ini berguna untuk menghilangkan ambiguitas karakter polifonik dan menangani pelafalan bahasa asing.
  • Sintaks
<phoneme alphabet="string" ph="string">Teks</phoneme>
  • Atribut
    AtributTipeWajibDeskripsi
    alphabetStringYaMenentukan jenis pelafalan: pinyin (untuk Tionghoa) atau simbol fonetik (untuk Inggris).Nilai valid:
    phStringYaMenentukan notasi pinyin atau fonetik yang tepat. Aturan penggunaan:
    • Pisahkan pinyin untuk beberapa karakter dengan spasi. Jumlah entri pinyin harus sesuai dengan jumlah karakter.
    • Setiap entri pinyin terdiri dari pelafalan dan nomor nada. Nomor nada berkisar dari 1 hingga 5, di mana 5 mewakili nada netral.
    • Contoh:
    <speak>
      Bagaimana cara mengeja <phoneme alphabet="cmu" ph="S AY N">sin</phoneme>?
    </speak>
    
  • Hubungan tag Tag <phoneme> hanya dapat berisi teks biasa.

<soundEvent>: sisipkan suara eksternal (nada dering, suara kucing, dll.)

  • Deskripsi Menyisipkan file efek suara (seperti nada peringatan atau suara latar) pada titik tertentu dalam ucapan untuk memperkaya output audio.
  • Sintaks
 <soundEvent src="URL"/>
  • Atribut
    AtributTipeWajibDeskripsi
    srcStringYaMenentukan URL file audio eksternal.File audio harus disimpan di Alibaba Cloud OSS (lihat Unggah objek), dan bucket harus memiliki akses baca-publik minimal. Jika URL berisi karakter khusus XML (seperti &, <, >), escape karakter tersebut.
    • Persyaratan audio:
      • Laju sampel: 16 kHz
      • Saluran: mono
      • Format: WAV Untuk mengonversi file non-WAV, gunakan ffmpeg:
    ffmpeg -i input_audio -acodec pcm_s16le -ac 1 -ar 16000 output.wav
    
    • Ukuran file: maksimum 2 MB
    • Kedalaman bit: 16-bit
    • Contoh:
    <speak>
      Seekor kuda ketakutan<soundEvent src="http://nls.alicdn.com/sound-event/horse-neigh.wav"/>dan orang-orang tersebar untuk menghindarinya.
    </speak>
    
    Anda bertanggung jawab secara hukum atas hak cipta audio yang diunggah.
  • Hubungan tag <soundEvent> adalah elemen self-closing dan tidak dapat berisi elemen anak.

<say-as>: atur interpretasi teks (angka, tanggal, nomor telepon, dll.)

  • Deskripsi Menentukan jenis konten teks (seperti angka, tanggal, atau nomor telepon) sehingga sistem membacanya sesuai aturan yang sesuai untuk jenis tersebut.
  • Sintaks
 <say-as interpret-as="string">Teks</say-as>
  • Atribut

    Atribut

    Tipe

    Wajib

    Deskripsi

    interpret-as

    String

    Ya

    Menentukan jenis konten teks di dalam tag.

    Nilai valid:

    • cardinal: dibaca sebagai bilangan bulat atau desimal standar

    • digits: membaca setiap digit secara individual (misalnya, 123 dibaca sebagai "satu dua tiga")

    • telephone: membaca digit demi digit dalam format nomor telepon standar

    • name: membaca menggunakan aturan pelafalan nama standar

    • address: membaca menggunakan aturan pelafalan alamat standar

    • id: membaca menggunakan aturan pelafalan pengenal (nama akun, nama panggilan) standar

    • characters: membaca setiap karakter dalam teks secara individual

    • punctuation: membaca nama setiap tanda baca

    • date: membaca menggunakan aturan pelafalan tanggal standar

    • time: membaca menggunakan aturan pelafalan waktu standar

    • currency: membaca menggunakan aturan pelafalan jumlah moneter standar

    • measure: membaca menggunakan aturan pelafalan satuan ukuran standar

  • Rentang yang didukung untuk setiap jenis <say-as>
    • cardinal

      Format

      Contoh

      English output

      Catatan

      String digit

      145

      one hundred forty five

      Rentang integer: bilangan bulat positif dan negatif hingga 13 digit, [-999999999999,999999999999].

      Rentang desimal: tidak ada batas spesifik tempat desimal, tetapi disarankan 10 atau kurang.

      String digit diawali nol

      0145

      one hundred forty five

      Tanda minus + string digit

      -145

      minus hundred forty five

      String digit dengan koma memisahkan setiap 3 digit

      60,000

      sixty thousand

      Tanda minus + string digit dipisahkan koma

      -208,000

      minus two hundred eight thousand

      String digit + titik desimal + nol

      12.00

      twelve

      String digit + titik desimal + string digit

      12.34

      twelve point three four

      String digit dipisahkan koma + titik desimal + string digit

      1,000.1

      one thousand point one

      Tanda minus + string digit + titik desimal + string digit

      -12.34

      minus twelve point three four

      Tanda minus + string digit dipisahkan koma + titik desimal + string digit

      -1,000.1

      minus one thousand point one

      (String digit dipisahkan koma) + tanda hubung + (string digit dipisahkan koma)

      1-1,000

      one to one thousand

      Pembacaan default lainnya

      012.34

      twelve point three four

      Tidak ada

      1/2

      one half

      -3/4

      minus three quarters

      5.1/6

      five point one over six

      -3 1/2

      minus three and a half

      1,000.3^3

      one thousand point three to the power of three

      3e9.1

      three times ten to the power of nine point one

      23.10%

      twenty three point one percent

    • digits

      Format

      Contoh

      Output Inggris

      Catatan

      String digit

      12034

      one two zero three four

      Tidak ada batas spesifik panjang string digit, tetapi disarankan 20 digit atau kurang.

      Saat string digit dikelompokkan dengan spasi atau tanda hubung, jeda koma disisipkan antar grup. Maksimal 5 grup didukung.

      String digit + spasi/tanda hubung + string digit + spasi/tanda hubung + string digit + spasi/tanda hubung + string digit

      1-23-456 7890

      one, two three, four five six, seven eight nine zero

    • telephone

      Format

      Contoh

      Output Inggris

      Catatan

      String digit

      12034

      one two oh three four

      Tidak ada batas spesifik panjang string digit, tetapi disarankan 20 digit atau kurang.Saat string digit dikelompokkan dengan spasi atau tanda hubung, jeda koma disisipkan antar grup. Maksimal 5 grup didukung.

      String digit + spasi/tanda hubung + string digit + spasi/tanda hubung + string digit

      1-23-456 7890

      one, two three, four five six, seven eight nine oh

      Tanda plus + string digit + spasi/tanda hubung + string digit

      +43-211-0567

      plus four three, two one, oh five six seven

      Tanda kurung kiri + string digit + tanda kurung kanan + spasi + string digit + spasi/tanda hubung + string digit

      (21) 654-3210

      (two one) six five four, three two one oh

    • address Tag ini tidak didukung untuk teks Inggris.
    • id Untuk teks Inggris, tag ini berfungsi sama seperti tag characters.
    • characters

      Format

      Contoh

      Output Inggris

      Catatan

      String

      *b+3$.c-0'=α

      asterisk B plus three dollar dot C dash zero apostrophe equals alpha

      Mendukung karakter Tionghoa, huruf besar dan kecil, digit 0-9, dan beberapa karakter full-width dan half-width.

      Spasi dalam output menunjukkan jeda antar karakter, artinya setiap karakter dibaca secara individual.

      Jika teks di dalam tag berisi karakter khusus XML, escape karakter tersebut.

    • punctuation Untuk teks Inggris, tag ini berfungsi sama seperti tag characters.
    • date

      Format

      Contoh

      Output Inggris

      Catatan

      Empat digit/dua digit atau empat digit-dua digit

      2000/01

      two thousand, oh one

      Mencakup beberapa tahun.

      1900-01

      nineteen hundred, oh one

      2001-02

      twenty oh one, oh two

      2019-20

      twenty nineteen, twenty

      1998-99

      nineteen ninety eight, ninety nine

      1999-00

      nineteen ninety nine, oh oh

      Bilangan empat digit diawali 1 atau 2

      2000

      two thousand

      Tahun 4 digit.

      1900

      nineteen hundred

      1905

      nineteen oh five

      2021

      twenty one

      Hari - hari dalam minggu (tanda hubung)

      atau

      Hari - hari dalam minggu

      atau

      Hari & hari dalam minggu

      mon-wed

      monday to wednesday

      Jika teks dalam tag rentang hari dalam minggu berisi karakter XML khusus, escape karakter tersebut.

      tue~fri

      tuesday to friday

      sat&sun

      saturday and sunday

      DD-DD MMM, YYYY

      atau

      DD~DD MMM, YYYY

      atau

      DD&DD MMM, YYYY

      19-20 Jan, 2000

      the nineteen to the twentieth of january two thousand

      DD: Hari 2 digit. MMM: Singkatan bulan 3 huruf atau kata lengkap. YYYY: Tahun 4 digit diawali 1 atau 2.

      01 ~ 10 Jul, 2020

      the first to the tenth of july twenty

      05&06 Apr, 2009

      the fifth and the sixth of april two thousand nine

      MMM DD-DD

      atau

      MMM DD~DD

      atau

      MMM DD&DD

      Feb 01 - 03

      feburary the first to the third

      MMM: Singkatan bulan 3 huruf atau kata lengkap. DD: Hari 2 digit.

      Aug 10~20

      august the tenth to the twentieth

      Dec 11&12

      december the eleventh and the twelfth

      MMM-MMM

      atau

      MMM~MMM

      atau

      MMM&MMM

      Jan-Jun

      january to june

      MMM: Singkatan bulan 3 huruf atau kata lengkap.

      jul ~ dec

      july to december

      sep&oct

      september and october

      YYYY-YYYY

      atau

      YYYY~YYYY

      1990 - 2000

      nineteen ninety to two thousand

      YYYY: Tahun 4 digit diawali 1 atau 2.

      2001~2021

      two thousand one to twenty one

      WWW DD MMM YYYY

      Sun 20 Nov 2011

      sunday the twentieth of november twenty eleven

      WWW adalah singkatan 3 huruf atau nama lengkap hari dalam minggu. DD adalah hari 2 digit. MMM adalah singkatan 3 huruf atau nama lengkap bulan. MM adalah bulan 2 digit (atau singkatan 3 huruf atau nama lengkap bulan). YYYY adalah tahun 4 digit diawali 1 atau 2.

      WWW DD MMM

      Sun 20 Nov

      sunday the twentieth of november

      WWW MMM DD YYYY

      Sun Nov 20 2011

      sunday november the twentieth twenty eleven

      WWW MMM DD

      Sun Nov 20

      sunday november the twentieth

      WWW YYYY-MM-DD

      Sat 2010-10-01

      aturday october the first twenty ten

      WWW YYYY/MM/DD

      Sat 2010/10/01

      saturday october the first twenty ten

      WWW MM/DD/YYYY

      Sun 11/20/2011

      sunday november the twentieth twenty eleven

      MM/DD/YYYY

      11/20/2011

      november the twentieth twenty eleven

      YYYY

      1998

      nineteen ninety eight

      Pembacaan default lainnya

      10 Mar, 2001

      the tenth of march two thousand one

      Tidak ada

      10 Mar

      the tenth of march

      Mar 2001

      march two thousand one

      Fri. 10/Mar/2001

      friday the tenth of march two thousand one

      Mar 10th, 2001

      march the tenth two thousand one

      Mar 10

      march the tenth

      2001/03/10

      march the tenth two thousand one

      2001-03-10

      march the tenth two thousand one

      2000s

      two thousands

      2010's

      twenty tens

      1900's

      nineteen hundreds

      1990s

      nineteen nineties

    • time

      Format

      Contoh

      Output Inggris

      Catatan

      HH:MM AM atau PM

      09:00 AM

      nine A M

      HH: Jam 1 atau 2 digit. MM: Menit 2 digit. AM/PM: pagi/sore.

      09:03 PM

      nine oh three P M

      09:13 p.m.

      nine thirteen p m

      HH:MM

      21:00

      twenty one hundred

      HHMM

      100

      one oclock

      Titik waktu-Titik waktu

      8:00 am - 05:30 pm

      eight a m to five p m

      Mendukung format waktu umum dan rentang.

      7:05~10:15 AM

      seven oh five to ten fifteen A M

      09:00-13:00

      nine oclock to thirteen hundred

    • currency

      Format

      Contoh

      Output Inggris

      Catatan

      Angka + identifikasi mata uang

      1.00 RMB

      one yuan

      Format angka yang didukung: bilangan bulat, desimal, dan notasi internasional dipisahkan koma.

      Identifikasi mata uang yang didukung:

      CN¥ (yuan)

      CNY (yuan)

      RMB (yuan)

      AUD (dolar Australia)

      CAD (dolar Kanada)

      CHF (franc Swiss)

      DKK (krone Denmark)

      EUR (euro)

      GBP (pound sterling Inggris)

      HKD (dolar Hong Kong(China))

      JPY (yen Jepang)

      NOK (krone Norwegia)

      SEK (krona Swedia)

      SGD (dolar Singapura)

      USD (dolar Amerika Serikat)

      2.02 CNY

      two point zero two yuan

      1,000.23 CN¥

      one thousand point two three yuan

      1.01 SGD

      one singapore dollar and one cent

      2.01 CAD

      two canadian dollars and one cent

      3.1 HKD

      three hong kong dollars and ten cents

      1,000.00 EUR

      one thousand euros

      Identifikasi mata uang + angka

      US$ 1.00

      one US dollar

      Format angka yang didukung: bilangan bulat, desimal, dan notasi internasional dipisahkan koma.

      Identifikasi mata uang yang didukung:

      US$ (dolar AS)

      CA$ (dolar Kanada)

      AU$ (dolar Australia)

      SG$ (dolar Singapura)

      HK$ (dolar Hong Kong)

      C$ (dolar Kanada)

      A$ (dolar Australia)

      $ (dolar)

      £ (pound)

      € (euro)

      CN¥ (yuan)

      CNY (yuan)

      RMB (yuan)

      AUD (dolar Australia)

      CAD (dolar Kanada)

      CHF (franc Swiss)

      DKK (krone Denmark)

      EUR (euro)

      GBP (pound sterling Inggris)

      HKD (dolar Hong Kong(China))

      JPY (yen Jepang)

      NOK (krone Norwegia)

      SEK (krona Swedia)

      SGD (dolar Singapura)

      USD (dolar Amerika Serikat)

      $0.01

      one cent

      JPY 1.01

      one japanese yen and one sen

      £1.1

      one pound and ten pence

      €2.01

      two euros and one cent

      USD 1,000

      one thousand united states dollars

      Angka + klasifikasi + identifikasi mata uang

      atau

      Identifikasi mata uang + angka+Kuantifier

      1.23 Tn RMB

      one point two three trillion yuan

      Format klasifikasi yang didukung:

      thousand

      million

      billion

      trillion

      Mil (million)

      mil (million)

      Bil (billion)

      bil (billion)

      MM (million)

      Bn (billion)

      bn (billion)

      Tn (trillion)

      tn (trillion)

      K(thousand)

      k (thousand)

      M (million)

      m (million)

      $1.2 K

      one point two thousand dollars

    • measure

      Format

      Contoh

      Output Inggris

      Catatan

      Angka + satuan ukuran

      1.0 kg

      one kilogram

      Format angka yang didukung: bilangan bulat, desimal, dan notasi internasional dipisahkan koma.

      Mendukung singkatan satuan umum.

      1,234.01 km

      one thousand two hundred thirty four point zero one kilometres.

      Satuan ukuran

      mm2

      square millimetre

    • Tabel berikut menunjukkan cara simbol umum dibaca dengan <say-as>.

      Simbol

      Pelafalan Inggris

      !

      exclamation mark

      “

      double quote

      #

      pound

      $

      dollar

      %

      percent

      &

      and

      ‘

      left quote

      (

      left parenthesis

      )

      right parenthesis

      *

      asterisk

      +

      plus

      ,

      comma

      -

      dash

      .

      dot

      /

      slash

      :

      solon

      ;

      semicolon

      <

      less than

      =

      equals

      >

      greater than

      ?

      question mark

      @

      at

      [

      left bracket

      \

      back slash

      ]

      right bracket

      ^

      caret

      _

      underscore

      `

      back quote

      {

      left brace

      |

      vertical bar

      }

      right brace

      ~

      tilde

      !

      exclamation mark

      “

      left double quote

      ”

      right double qute

      ‘

      left quote

      ’

      right quote

      (

      left parenthesis

      )

      right parenthesis

      ,

      comma

      。

      full stop

      —

      em dash

      :

      colon

      ;

      semicolon

      ?

      question mark

      、

      enumeration comma

      …

      ellipsis

      ……

      ellipsis

      《

      left guillemet

      》

      right guillemet

      ¥

      yuan

      ≥

      greater than or equal to

      ≤

      less than or equal to

      ≠

      not equal

      ≈

      approximately equal

      ±

      plus or minus

      ×

      times

      π

      pi

      Α

      alpha

      Β

      beta

      Γ

      gamma

      Δ

      delta

      Ε

      epsilon

      Ζ

      zeta

      Θ

      theta

      Ι

      iota

      Κ

      kappa

      ∧

      lambda

      Μ

      mu

      Ν

      nu

      Ξ

      ksi

      Ο

      omicron

      ∏

      pi

      Ρ

      rho

      ∑

      sigma

      Τ

      tau

      Υ

      upsilon

      Φ

      phi

      Χ

      chi

      Ψ

      psi

      Ω

      omega

      α

      alpha

      β

      beta

      γ

      gamma

      δ

      delta

      ε

      epsilon

      ζ

      zeta

      η

      eta

      θ

      theta

      ι

      iota

      κ

      kappa

      λ

      lambda

      μ

      mu

      ν

      nu

      ξ

      ksi

      ο

      omicron

      π

      pi

      ρ

      rho

      σ

      sigma

      τ

      tau

      υ

      upsilon

      φ

      phi

      χ

      chi

      ψ

      psi

      ω

      omega

    • Tabel berikut menunjukkan cara satuan ukuran umum dibaca dengan <say-as>.

      Format

      Kategori

      Contoh Inggris

      Singkatan

      Panjang

      nm (nanometre), μm (micrometre), mm (millimetre), cm (centimetre), m (metre), km (kilometre), ft (foot), in (inch)

      Wilayah

      cm² (square centimetre), ㎡ (square metre), km2 (square kilometre), SqFt (square foot)

      Volume

      cm³ (cubic centimetre), m³ (cubic metre), km3 (cubic kilometre), mL (millilitre), L (millilitre), gal (gallon)

      Berat

      μg (microgram), mg (microgram), g (gram), kg (kilogram)

      Waktu

      min (minute), sec (second), ms (millisecond)

      Elektromagnetisme

      μA (microamp), mA (milliamp), Hz (hertz), kHz (kilohertz), MHz (megahertz), GHz (gigahertz), V (volt), kV (kilovolt), kWh (kilowatt hour)

      Suara

      dB (decibel)

      Tekanan atmosfer

      Pa (pascal), kPa (kilopascal), MPa (megapascal)

      Satuan umum lainnya

      Mendukung satuan di luar yang tercantum di atas, seperti tsp (teaspoon), rpm (revolutions per minute), KB (kilobyte), dan mmHg (millimetre of mercury).

  • Hubungan tag Tag <say-as> dapat berisi teks dan <vhml/>.
  • Contoh
    • cardinal
<speak>
  <say-as interpret-as="cardinal">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="cardinal">10234</say-as>
</speak>
  • digits
<speak>
  <say-as interpret-as="digits">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="digits">10234</say-as>
</speak>
  • telephone
<speak>
  <say-as interpret-as="telephone">12345</say-as>
</speak>
<speak>
  <say-as interpret-as="telephone">10234</say-as>
</speak>
  • name
<speak>
  Nama sebelumnya adalah <say-as interpret-as="name">Zeng Xiaofan</say-as>
</speak>
  • address
<speak>
  <say-as interpret-as="address">Fulu International, Gedung 1, Unit 3, Kamar 304</say-as>
</speak>
  • id
<speak>
  <say-as interpret-as="id">myid_1998</say-as>
</speak>
  • characters
<speak>
  <say-as interpret-as="characters">Huruf Yunani αβ</say-as>
</speak>
<speak>
  <say-as interpret-as="characters">*b+3.c$=α</say-as>
</speak>
  • punctuation
<speak>
  <say-as interpret-as="punctuation"> -./:;</say-as>
</speak>
  • date
<speak>
  <say-as interpret-as="date">1000-10-10</say-as>
</speak>
<speak>
  <say-as interpret-as="date">10-01-2020</say-as>
</speak>
  • time
<speak>
  <say-as interpret-as="time">5:00am</say-as>
</speak>
<speak>
  <say-as interpret-as="time">0500</say-as>
</speak>
  • currency
<speak>
  <say-as interpret-as="currency">13,000,000.00RMB</say-as>
</speak>
<speak>
  <say-as interpret-as="currency">$1,000.01</say-as>
</speak>
  • measure
<speak>
  <say-as interpret-as="measure">100m12cm6mm</say-as>
</speak>
<speak>
  <say-as interpret-as="measure">1,000.01kg</say-as>
</speak>
Rencana Token (Team Edition)
Model playground
Statistik dan Pemantauan
Asset Center
Dukungan layanan