Nền tảng Actions on Google hỗ trợ một số tính năng SSML Beta bên cạnh Thao tác trên các phần tử SSML tiêu chuẩn của Google.
Tóm tắt các tính năng Beta SSML được hỗ trợ:
<phoneme>
: Tuỳ chỉnh cách phát âm của những 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ề điểm thời gian của một giá trị đã chỉ định trong bản chép lời.
<phoneme>
Bạn có thể sử dụng thẻ <phoneme>
để tạo cách phát âm tuỳ chỉnh của các từ
nội tuyến. Actions on Google chấp nhận
IPA và
Bảng chữ cái phiên âm X-SAMPA. Xem
trang âm thanh để xem danh sách các
ngôn ngữ và âm vị.
Mỗi ứng dụng của thẻ <phoneme>
chỉ dẫn cách phát âm một tên duy nhất
từ:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Các dấu hiệu căng thẳng
Có thể đặt ra tối đa ba mức độ căng thẳng trong bản chép lời:
- Ứng suất chính: Biểu thị bằng
ˈ
trong IPA và"
trong X-SAMPA. - Ứng suất phụ: Biểu thị bằng
ˌ
trong IPA và%
trong X-SAMPA. - Không căng thẳng: Không được biểu thị bằng biểu tượng (trong cả hai ký hiệu).
Một số ngôn ngữ có thể có ít hơn 3 cấp độ hoặc không biểu thị vị trí nhấn mạnh nào. Hãy xem trang âm thanh để biết các mức độ căng thẳng có sẵn cho ngôn ngữ của bạn. Các điểm đánh dấu căng thẳng được đặt ở bắt đầu mỗi âm tiết trọng âm. 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 bản chép lời hẹp
Theo nguyên tắc chung, hãy giữ cho bản chép lời có phạm vi rộng và ngữ âm hơn.
Ví dụ: trong tiếng Anh (Mỹ), hãy chép lời t
xen kẽ (thay vì sử dụng
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 trình bày ngữ âm làm cho TTS của bạn kết quả nghe có vẻ không tự nhiên (ví dụ: nếu chuỗi âm vị là khó phát âm về mặt giải phẫu).
Một ví dụ là việc lồng tiếng 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 phụ âm âm tiết và thay vào đó phiên âm chúng bằng nguyên âm được thu 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 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">
để
thời lượng đọc. Ví dụ: ví dụ sau đây sẽ được đọc thành "năm
30 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 |
s | 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 SSML
của bạn. Trong ví dụ sau, giọng nói mặc định là giọng Anh nam.
Tất cả các từ sẽ được tổng hợp bằng giọng này, ngoại trừ "qu'est-ce qui t'amène
ici", sẽ được đọc bằng tiếng Pháp thông qua 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ể dùng thẻ <voice>
để chỉ định một giọng nói riêng lẻ (
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 sẽ nhận được:
một name
(
tên giọng nói của bạn
muốn sử dụng) hoặc kết hợp các thuộc tính sau. Cả ba
là thuộc tính 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 bạn không cung cấp
name
.
gender
: Một trong sốmale
,female
hoặcneutral
.variant
: Được dùng làm yếu tố quyết định trong trường hợp có nhiều khả năng sử dụng giọng nói nào dựa trên cấu hình của bạn.language
: Ngôn ngữ bạn muốn dùng. Chỉ có thể chỉ định một ngôn ngữ trong một thẻ<voice>
được cung cấp. Chỉ định 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 bạn 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 hai thẻ bổ sung: required
và ordering
.
required
: Nếu một thuộc tính được chỉ định làrequired
và chưa đượ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 được liệt kê sau thẻordering
đều được xem là ưu tiên hơn là bắt buộc. SSML xem xét các thuộc tính được ưu tiên trên cơ sở nỗ lực tối đa theo thứ tự 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 có thể vẫn trả về giọng nói hợp lệ nhưng với cấu hình không chính xác bị bỏ qua.
Ví dụ về các 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>
để thêm văn bản bằng nhiều ngôn ngữ vào cùng một SSML
của bạn. Tất cả các ngôn ngữ sẽ được tổng hợp bằng 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ê là "mã ngôn ngữ" trong
các giọng nói được hỗ trợ
bảng). Trong ví dụ sau đây là "trò chuyện" 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 sẽ cố gắng hết sức để hỗ trợ thẻ <lang>
. Không phải tất cả
các tổ hợp ngôn ngữ sẽ 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, việc kết hợp ngôn ngữ có thể tạo ra hiệu ứng
dễ phát hiện nhưng khó phát hiện hoặc được coi là tiêu cực. Vấn đề đã biết:
- Thẻ
<lang>
không hỗ trợ tiếng Nhật có ký tự Kanji. Chiến lược phát hành đĩa đơn dữ liệu đầu vào được chuyển tự và đọc dưới dạng ký tự tiếng Trung. - Các ngôn ngữ của người Do Thái như tiếng Ả Rập, tiếng Do Thái và tiếng Ba Tư không được hỗ trợ bởi
thẻ
<lang>
và sẽ dẫn đến chế độ im lặng. Nếu bạn muốn sử dụng bất kỳ tiện ích nào trong số này bạn nên sử dụng thẻ<voice>
để chuyển sang giọng nói nói ngôn ngữ mong muốn của bạn (nếu có).