Speech Synthesis Markup Language (SSML)
Last updated
Last updated
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.
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
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
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ừ.
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
Ví dụ
Â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.
Thẻ <roman>
dùng cho các chữ số la mã.
Cấu trúc
Ví dụ
Hệ thống trả về kết quả giọng nói là "Thế kỷ thứ mười hai"
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
Ví dụ:
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"
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
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ệ 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ẻ <time>
được dùng cho văn bản ở định dạng thời gian (giờ,phút,giây).
Cấu trúc
Thời gian theo định dạng:
giờ:phút:giây (hh:mm:ss)
giờ:phút (hh:mm)
Ví dụ:
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"
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
Ví dụ:
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!"
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
Ví dụ:
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"
Thẻ <float>
được dùng cho số ở dạng thập phân.
Cấu trúc
Ví dụ:
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"
Thẻ <fraction>
được dùng cho số ở dạng phân số.
Cấu trúc
Ví dụ:
Hệ thống trả về kết quả giọng nói là "hai trên ba cơ thể người là nước"
Thẻ <ratio>
được dùng cho định dạng tỉ số
Cấu trúc
Ví dụ:
Hệ thống trả về kết quả giọng nói là "tỉ số là ba không"
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
Ví dụ:
Hệ thống trả về kết quả giọng nói là "đội tuyển u hai mươi ba việt nam"
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
Ví dụ:
Hệ thống trả về kết quả giọng nói là "một hai ba bốn năm"
Thẻ <duration>
được dùng cho định dạng của khoảng giá trị nào đó.
Cấu trúc
Ví dụ:
Hệ thống trả về kết quả giọng nói là "trong vòng hai ba ngày"