Speech Synthesis Markup Language (SSML)

SSML là ngôn ngữ đánh dấu cho phép người dùng chỉ định cách chuyển văn bản đầu vào thành giọng nói tổng hợp bằng cách sử dụng công nghệ Text-To-Speech (TTS). SSML cho phép người dùng tinh chỉnh khoảng ngắt nghỉ giữa các câu nói, cách phát âm, tốc độ nói và hơn thế nữa.

EM&AI Text-To-Speech cung cấp đa dạng tùy chọn SSML như: thời gian (ngày, giờ, tháng), đơn vị đo, số la mã, từ tiếng Anh,...

Những phần sau sẽ trình bày chi tiết cách sử dụng các loại thẻ SSML và khi nào các loại thẻ là bắt buộc hoặc tùy chọn.

Mẫu | Example

Tab Example cho thấy cách các thẻ SSML được sử dụng để chỉ định cách chuyển văn bản đầu vào thành giọng nói tổng hợp.

Dưới đây là ví dụ về 1 đoạn SSML

<audio>https://www2.cs.uic.edu/~i101/SoundFiles/CantinaBand3.wav</audio> tôi sẽ gặp <english>messi</english> vào ngày <date>15/2/2020</date> . <break>3</break>  chào mừng bạn đến với tổng đài tự động.

Ngắt nghỉ | <break>

Sử dụng thẻ <break> để thêm khoảng nghỉ, tạm dừng giữa các từ hoặc giữa các câu. Ví dụ thêm khoảng ngừng giữa các câu ngăn cách bởi dấu chấm hoặc dấu phẩy.

Cấu trúc

<break> số giây </break>

Ví dụ dưới đây cho thấy cách sử dụng thẻ <break> để thêm khoảng nghỉ giữa các câu, từ.

Đây là tài liệu hướng dẫn.  <break>1</break> Hãy đọc kỹ trước khi sử dụng

Đoạn ghi âm | <audio>

Thẻ <audio> cho phép chèn URL của đoạn âm thanh ngắn mà EM&AI TTS có thể phát khi đưa ra phản hồi âm thanh.

Cấu trúc

<audio>đường dẫn URL</audio>

Ví dụ

<audio>https://www2.cs.uic.edu/~i101/SoundFiles/CantinaBand3.wav</audio>

Âm thanh được chèn vào SSML phải đáp ứng các yêu cầu sau:

  • Định dạng file âm thanh là WAV

  • Đường dẫn Audio URL ở dạng HTTPS có thể truy cập Internet.

Chữ số la mã | <roman>

Thẻ <roman> dùng cho các chữ số la mã.

Cấu trúc

<roman>chữ la mã</roman>

Ví dụ

Thế kỷ thứ  <roman>XII</roman>

Hệ thống trả về kết quả giọng nói là "Thế kỷ thứ mười hai"

Đơn vị đo lường | <measure>

Thẻ <measure> được dùng cho các ký tự chỉ đơn vị đo lường thuộc hệ đơn vị quốc tế.

Bao gồm các đơn vị cơ bản như:

  • Độ dài (m,inch)

  • Khối lượng (g)

  • Thời gian (s)

  • Cường độ dòng điện (A)

  • Nhiệt độ nhiệt động học (mol)

  • Dung tích (l)

Một số đơn vị dẫn xuất khác:

  • Diện tích (m2)

  • Thể tích (m3)

  • Tần số (Hz)

  • Lực (N)

  • Công suất (W)

  • Áp suất (Pa)

  • Nhiệt độ Celsius (oC)

  • Hiệu điện thế (V)

Cấu trúc

<measure>đơn vị đo</measure>
<measure>số + đơn vị đo</measure> //* ở trường hợp này, số và đơn vị đo viết liền nhau, không có dấu cách

Ví dụ:

 Trong vòng bán kính <measure>5km</measure>là một cụm các trung tâm thương mại.  

Hệ thống trả về kết quả giọng nói là "Trong vòng bán kính năm ki lô mét là một cụm các trung tâm thương mại"

Ngày tháng | <date>

Thẻ <date> được dùng cho văn bản ở định dạng thời gian (ngày, tháng, năm)

Cấu trúc

 <date>ngày tháng năm</date>

Ngày tháng năm theo định dạng:

  • ngày/tháng/năm (dd/mm/yyyy)

  • ngày/tháng (dd/mm)

  • tháng/năm (mm/yyyy)

Ví dụ:

Hôm nay, Thứ 3 ngày <date> 10/06 </date>. 

Hệ thống trả về kết quả giọng nói là "Hôm nay thứ ba ngày mười tháng sáu"

Thời gian | <time>

Thẻ <time> được dùng cho văn bản ở định dạng thời gian (giờ,phút,giây).

Cấu trúc

 <time>thời gian</date>

Thời gian theo định dạng:

  • giờ:phút:giây (hh:mm:ss)

  • giờ:phút (hh:mm)

Ví dụ:

Bây giờ là <time>11:30</time> 

Hệ thống trả về kết quả giọng nói là "Bây giờ là mười một giờ ba mươi phút"

Tiếng Anh | <english>

Thẻ <english> được dùng để đọc các từ hoặc ký tự Tiếng Anh.

Lưu ý: Mỗi thẻ <english>nhập 1 từ hoặc 1 ký tự Tiếng Anh duy nhất để đảm bảo cách đọc đúng nhất.

Cấu trúc

 <english>từ, ký tự tiếng anh</english>

Ví dụ:

Vui lòng liên hệ đến <english>hotline</hotline> này! 

Hệ thống trả về kết quả giọng nói là "Vui lòng liên hệ đến hót lai này!"

Số nguyên | <int>

Thẻ <int> được dùng cho số nguyên dương. Văn bản được nói dưới dạng số đếm

Cấu trúc

 <int>số nguyên</int>

Ví dụ:

<int>12345</int> 

Hệ thống trả về kết quả giọng nói là "mười hai ngàn ba trăm bốn mươi lăm"

Số thập phân | <float>

Thẻ <float> được dùng cho số ở dạng thập phân.

Cấu trúc

 <float>số thực</float>

Ví dụ:

<float>675.789</float> 

Hệ thống trả về kết quả giọng nói là "sáu trăm bảy mươi lăm chấm bảy tám chín"

Phân số | <fraction>

Thẻ <fraction> được dùng cho số ở dạng phân số.

Cấu trúc

 <fraction>x/y</fraction>

Ví dụ:

<fraction>2/3</fraction> cơ thể người là nước

Hệ thống trả về kết quả giọng nói là "hai trên ba cơ thể người là nước"

Tỉ số | <ratio>

Thẻ <ratio> được dùng cho định dạng tỉ số

Cấu trúc

 <ratio>x-y</ratio>

Ví dụ:

 tỉ số là <ratio>3-0</ratio>

Hệ thống trả về kết quả giọng nói là "tỉ số là ba không"

Ký tự | <letter>

Văn bản được đọc thành từng ký tự theo cách phát âm ký tự tiếng Việt.

Cấu trúc

 <letter>chữ cái, chữ số</letter>

Ví dụ:

 đội tuyển <letter>U23</letter> Việt Nam

Hệ thống trả về kết quả giọng nói là "đội tuyển u hai mươi ba việt nam"

Chữ số | <digit>

Văn bản được nói dưới dạng một chuỗi các chữ số riêng lẻ. Ví dụ như cách đọc của số điện thoại 0905112113 (không chín không năm một một hai một một ba)

Cấu trúc

 <digit>chữ số</digit>

Ví dụ:

<digit>12345</digit>

Hệ thống trả về kết quả giọng nói là "một hai ba bốn năm"

Thời lượng | <duration>

Thẻ <duration> được dùng cho định dạng của khoảng giá trị nào đó.

Cấu trúc

 <duration>thời lượng</duration>

Ví dụ:

 trong vòng <duration>2-3</duration> ngày

Hệ thống trả về kết quả giọng nói là "trong vòng hai ba ngày"

Last updated