A plataforma Actions on Google é compatível com vários recursos Beta de SSML, além dos Elementos SSML padrão do Actions on Google.
Resumo dos recursos Beta de SSML compatíveis:
<phoneme>
: personalize a pronúncia de palavras específicas.<say-as interpret-as="duration">
: especifica durações.<voice>
: alterna entre vozes na mesma solicitação.<lang>
: use vários idiomas na mesma solicitação.- Pontos de tempo: use a tag
<mark>
para retornar o horário de um determinado horário. ponto em sua transcrição.
<phoneme>
É possível usar a tag <phoneme>
para produzir pronúncias personalizadas de palavras in-line. O Actions on Google aceita
IPA e
alfabetos fonéticos X-SAMPA. Consulte a
página de fonemas para uma lista de
idiomas e fonemas.
Cada aplicação da tag <phoneme>
direciona a pronúncia de uma única palavra:
<phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme> <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>
Marcadores de acento
Há até três níveis de acento que podem ser colocados em uma transcrição:
- Estresse primário: indicado com
ˈ
no IPA e"
em X-SAMPA. - Estresse secundário: indicado com
ˌ
no IPA e%
em X-SAMPA. - Não acentuado: não é indicado com um símbolo (em uma das notação).
Alguns idiomas podem ter menos de três níveis ou não indicar colocação de acento.. Consulte a página de fonemas para ver os níveis de estresse disponíveis para seu idioma. Os marcadores de estresse são colocados no início de cada sílaba estressada. Por exemplo, no inglês dos EUA:
Exemplo de palavra | IPA | X-SAMPA |
---|---|---|
água | ˈwɑːtɚ |
"wA:t@` |
underwater | ˌʌndɚˈwɑːtɚ |
%Vnd@"wA:t@ |
Transcrições amplas e restritas
Como regra geral, mantenha a transcrição mais abrangente e fonética.
Por exemplo, em inglês americano, transcreva t
intervocálico (em vez de usar uma
toque):
Example word | IPA | X-SAMPA |
---|---|---|
manteiga | ˈbʌtɚ em vez de ˈbʌɾɚ |
"bVt@` em vez de "bV4@` |
Há alguns casos em que o uso da representação fonética torna os resultados do TTS não artificiais, por exemplo, se a sequência de fonemas é anatomicamente difícil de pronunciar.
Um exemplo disso é a assimilação de falas para s
em inglês. Nesse caso, a assimilação deve ser refletida na transcrição:
Example word | IPA | X-SAMPA |
---|---|---|
gatos | ˈkæts |
"k{ts |
cães | ˈdɑːgz em vez de ˈdɑːgs |
"dA:gz em vez de "dA:gs |
Redução
Cada sílaba precisa conter uma (e apenas uma) vogal. Isso significa que você precisa evitar consonâncias silábicas e, em vez disso, transcrevê-las com uma vogal reduzida. Exemplo:
Example word | IPA | X-SAMPA |
---|---|---|
kitten | ˈkɪtən em vez de ˈkɪtn |
"kIt@n em vez de "kitn |
kettle | ˈkɛtəl em vez de ˈkɛtl |
"kEt@l em vez de "kEtl |
Silabação
Também é possível especificar limites simétricos usando .
. Cada sílaba deve
contêm uma (e apenas uma) vogal. Exemplo:
Example word | IPA | X-SAMPA |
---|---|---|
readability | ˌɹiː.də.ˈbɪ.lə.tiː |
%r\i:.d@."bI.l@.ti: |
Durações
A plataforma Actions on Google é compatível com <say-as interpret-as="duration">
para
leituras de durações. Por exemplo, o exemplo a seguir seria verbalizado como "cinco
horas e trinta minutos":
<say-as interpret-as="duration" format="h:m">5:30</say-as>
A string de formato suporta os seguintes valores:
Abreviatura | Valor |
---|---|
h | hora |
m | minuto |
s | segundos |
ms | milésimos de segundo |
<voice>
A tag <voice>
permite usar mais de uma voz em uma única solicitação SSML. No exemplo a seguir, a voz padrão é uma voz masculina em inglês.
Todas as palavras serão sintetizadas nessa voz, exceto "qu'est-ce qui t'amène ici", que será verbalizada em francês usando uma voz feminina em vez do idioma padrão (inglês) e gênero (masculino).
<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>
Como alternativa, use uma tag <voice>
para especificar uma voz individual (a
voice name no
página de vozes e idiomas compatíveis)
em vez de especificar um language
e/ou 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>
Quando você usa a tag <voice>
, o Actions on Google espera receber
um name
(o
Nome da voz que você
quer usar) ou uma combinação dos seguintes atributos. Os três
atributos são opcionais, mas você deve fornecer pelo menos um se você não fornecer um
name
:
gender
: um demale
,female
ouneutral
.variant
: usada como desempatador nos casos em que há várias possibilidades de qual voz usar com base em sua configuração.language
: o idioma pretendido. Somente um idioma pode ser especificado em uma tag<voice>
. Especifique seu idioma no formato BCP-47. Você pode encontrar o código BCP-47 para seu idioma na coluna código de idioma na página Vozes e idiomas compatíveis.
Também é possível controlar a prioridade relativa de cada um dos atributos gender
, variant
e language
usando duas tags extras: required
e ordering
.
required
: se um atributo é designado comorequired
e não está configurado. corretamente, a solicitação falhará.ordering
: todos os atributos listados após uma tagordering
são considerados preferidos, e não obrigatórios. O SSML considera atributos preferidos na ordem em que estão listados após a tagordering
. Se algum atributo preferencial estiver configurado incorretamente, o Actions on Google ainda pode retornar uma voz válida, mas com a configuração incorreta.
Exemplos de configurações usando as tags required
e 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>
É possível usar <lang>
para incluir texto em vários idiomas na mesma solicitação SSML. Todos os idiomas serão sintetizados na mesma voz, a menos que você use a tag <voice>
para mudar a voz explicitamente. A string xml:lang
precisa conter
o idioma de destino no formato BCP-47 (esse valor é listado como "código de idioma" no
as vozes compatíveis
tabela). No exemplo a seguir, "chat" será verbalizada em francês em vez de
o idioma padrão (inglês):
<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>
A plataforma Actions on Google é compatível com a tag <lang>
da melhor maneira possível. Nem todas
as combinações de idiomas produzem os mesmos resultados de qualidade quando especificadas no mesmo
solicitação SSML. Em alguns casos, uma combinação de linguagem pode produzir um efeito que seja detectável, mas sutil ou percebido como negativo. Problemas conhecidos:
- O japonês com caracteres Kanji não é compatível com a tag
<lang>
. A entrada é transliterado e lido como caracteres chineses. - Idiomas semíticos como árabe, hebraico e persa não são aceitos pelo
a tag
<lang>
e resultará em silêncio. Se você quiser usar algum desses idiomas, recomendamos usar a tag<voice>
ao mudar para uma voz que fala o idioma desejado (se disponível).