Nền tảng Actions on Google hỗ trợ một số tính năng SSML Beta bên cạnh các phần tử SSML tiêu chuẩn của Actions on Google.
Tóm tắt các tính năng được hỗ trợ trong bản Beta SSML:
<phoneme>
: Tuỳ chỉnh cách phát âm của một số từ cụ thể.<say-as interpret-as="duration">
: Chỉ định thời lượng.<voice>
: Chuyển đổi giữa các giọng nói trong cùng một yêu cầu.<lang>
: Sử dụng nhiều ngôn ngữ trong cùng một yêu cầu.- Điểm thời gian: Sử dụng thẻ
<mark>
để trả về thời điểm của một thời điểm đã chỉ định trong bản chép lời.
<phoneme>
Bạn có thể dùng thẻ <phoneme>
để tạo cách phát âm tuỳ chỉnh các từ cùng dòng. Actions on Google chấp nhận bảng chữ cái ngữ âm IPA và X-SAMPA. Xem trang điện thoại để biết danh sách các ngôn ngữ và âm vị được hỗ trợ.
Mỗi ứng dụng của thẻ <phoneme>
sẽ hướng dẫn cách phát âm một từ:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Dấu căng thẳng
Có tối đa 3 mức độ căng thẳng trong bản chép lời:
- Ứng suất chính: Được biểu thị bằng
ˈ
trong IPA và"
trong X-SAMPA. - Ứng suất phụ: Được biểu thị bằng
ˌ
trong IPA và%
trong X-SAMPA. - Không nhấn mạnh: Không được biểu thị bằng ký hiệu (trong cả hai ký hiệu).
Một số ngôn ngữ có thể có ít hơn 3 cấp độ hoặc hoàn toàn không biểu thị vị trí nhấn mạnh. Hãy xem trang điện thoại để biết các mức độ căng thẳng dành cho ngôn ngữ của bạn. Các điểm đánh dấu căng thẳng được đặt ở đầu mỗi âm tiết được nhấn mạnh. Ví dụ: bằng tiếng Anh Mỹ:
Từ ví dụ | IPA | X-SAMPA |
---|---|---|
nước | ˈwɑːtɚ |
"wA:t@` |
dưới nước | ˌʌndɚˈwɑːtɚ |
%Vnd@"wA:t@ |
Bản chép lời rộng so với hẹp
Theo nguyên tắc chung, bản chép lời của bạn nên có phạm vi rộng và âm điệu hơn.
Ví dụ: trong tiếng Anh (Mỹ), hãy chép lời t
xen kẽ (thay vì dùng một thao tác nhấn):
Từ ví dụ | IPA | X-SAMPA |
---|---|---|
bơ | ˈbʌtɚ thay vì ˈbʌɾɚ |
"bVt@` thay vì "bV4@` |
Có một số trường hợp việc sử dụng cách thể hiện âm điệu làm cho kết quả TTS nghe có vẻ không tự nhiên (ví dụ: nếu trình tự các âm vị khó phát âm).
Một ví dụ cho vấn đề này là lồng tiếng đồng hoá cho s
bằng tiếng Anh. Trong trường hợp này, quá trình đồng hoá phải được phản ánh trong bản chép lời:
Từ ví dụ | IPA | X-SAMPA |
---|---|---|
mèo | ˈkæts |
"k{ts |
chó | ˈdɑːgz thay vì ˈdɑːgs |
"dA:gz thay vì "dA:gs |
Giảm
Mỗi âm tiết phải chứa một (và chỉ một) nguyên âm. Điều này có nghĩa là bạn nên tránh các phụ âm âm tiết mà thay vào đó hãy chép lời bằng một nguyên âm rút gọn. Ví dụ:
Từ ví dụ | IPA | X-SAMPA |
---|---|---|
mèo con | ˈkɪtən thay vì ˈkɪtn |
"kIt@n thay vì "kitn |
ấm đun nước | ˈkɛtəl thay vì ˈkɛtl |
"kEt@l thay vì "kEtl |
Âm tiết
Bạn có thể tuỳ ý chỉ định ranh giới âm tiết bằng cách sử dụng .
. Mỗi âm tiết phải chứa một (và chỉ một) nguyên âm. Ví dụ:
Từ ví dụ | IPA | X-SAMPA |
---|---|---|
dễ đọc | ˌɹiː.də.ˈbɪ.lə.tiː |
%r\i:.d@."bI.l@.ti: |
Thời lượng
Nền tảng Actions on Google hỗ trợ <say-as interpret-as="duration">
để đọc chính xác thời lượng. Ví dụ: ví dụ sau sẽ được đọc là "năm giờ ba mươi phút":
<say-as interpret-as="duration" format="h:m">5:30</say-as>
Chuỗi định dạng hỗ trợ các giá trị sau:
Từ viết tắt | Giá trị |
---|---|
giờ | giờ |
m | phút |
giây | giây |
ms | mili giây |
<voice>
Thẻ <voice>
cho phép bạn sử dụng nhiều giọng nói trong một yêu cầu SSML. Trong ví dụ sau, giọng nói mặc định là giọng nói tiếng Anh của nam.
Tất cả các từ sẽ được tổng hợp bằng giọng nói này, ngoại trừ "qu'est-ce qui t'amène
ici", sẽ được đọc bằng tiếng Pháp bằng giọng nữ thay vì ngôn ngữ mặc định (tiếng Anh) và giới tính (nam).
<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>
Ngoài ra, bạn có thể sử dụng thẻ <voice>
để chỉ định một giọng nói riêng (tên giọng nói trên trang giọng nói và ngôn ngữ được hỗ trợ) thay vì chỉ định language
và/hoặc 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>
Khi bạn sử dụng thẻ <voice>
, Actions on Google dự kiến sẽ nhận được name
(tên giọng nói mà bạn muốn sử dụng) hoặc tổ hợp các thuộc tính sau. Cả ba thuộc tính là không bắt buộc nhưng bạn phải cung cấp ít nhất một thuộc tính nếu không cung cấp name
.
gender
: Một trong sốmale
,female
hoặcneutral
.variant
: Dùng làm giải pháp quyết định trong trường hợp có nhiều khả năng sử dụng giọng nói dựa trên cấu hình của bạn.language
: Ngôn ngữ bạn muốn dùng. Bạn chỉ có thể chỉ định một ngôn ngữ trong một thẻ<voice>
nhất định. Chọn ngôn ngữ của bạn theo định dạng BCP-47. Bạn có thể tìm thấy mã BCP-47 cho ngôn ngữ của mình trong cột mã ngôn ngữ trên trang giọng nói và ngôn ngữ được hỗ trợ.
Bạn cũng có thể kiểm soát mức độ ưu tiên tương đối của từng thuộc tính gender
, variant
và language
bằng cách sử dụng 2 thẻ bổ sung: required
và ordering
.
required
: Nếu một thuộc tính được chỉ định làrequired
và không được định cấu hình đúng cách, thì yêu cầu sẽ không thành công.ordering
: Mọi thuộc tính liệt kê sau thẻordering
đều được coi là thuộc tính ưu tiên thay vì thuộc tính bắt buộc. SSML sẽ xem xét các thuộc tính ưu tiên theo thứ tự được liệt kê sau thẻordering
. Nếu có bất kỳ thuộc tính ưu tiên nào được định cấu hình không chính xác, Actions on Google vẫn có thể trả về một giọng nói hợp lệ nhưng cấu hình không chính xác bị loại bỏ.
Ví dụ về cấu hình sử dụng thẻ required
và 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>
Bạn có thể sử dụng <lang>
để đưa văn bản vào bằng nhiều ngôn ngữ trong cùng một yêu cầu SSML. Tất cả ngôn ngữ sẽ được tổng hợp theo cùng một giọng nói, trừ phi bạn sử dụng thẻ <voice>
để thay đổi rõ ràng giọng nói. Chuỗi xml:lang
phải chứa ngôn ngữ đích ở định dạng BCP-47 (giá trị này được liệt kê dưới dạng "mã ngôn ngữ" trong bảng các giọng nói được hỗ trợ). Trong ví dụ sau, "chat" sẽ được đọc bằng tiếng Pháp thay vì ngôn ngữ mặc định (tiếng Anh):
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
Nền tảng Actions on Google hỗ trợ thẻ <lang>
trên cơ sở tối đa có thể hỗ trợ thẻ này. Không phải mọi tổ hợp ngôn ngữ đều tạo ra kết quả chất lượng như nhau nếu được chỉ định trong cùng một yêu cầu SSML. Trong một số trường hợp, sự kết hợp ngôn ngữ có thể tạo ra hiệu ứng dễ phát hiện nhưng tinh tế hoặc bị coi là tiêu cực. Vấn đề đã biết:
- Thẻ
<lang>
không hỗ trợ tiếng Nhật có ký tự Kanji. Thông tin đầu vào được chuyển tự và đọc là các ký tự tiếng Trung. - Thẻ
<lang>
không hỗ trợ các ngôn ngữ tương tự như tiếng Ả Rập, Do Thái và Ba Tư nên sẽ gây ra sự im lặng. Nếu muốn sử dụng bất kỳ ngôn ngữ nào trong số này, bạn nên sử dụng thẻ<voice>
để chuyển sang giọng nói bằng ngôn ngữ bạn muốn (nếu có).