A plataforma Actions on Google é compatível com vários recursos SSML Beta, 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.- Timepoints: use a tag
<mark>
para retornar o ponto de tempo de um ponto especificado na transcrição.
<phoneme>
É possível usar a tag <phoneme>
para produzir pronúncias personalizadas de palavras in-line. O Actions on Google aceita os alfabetos fonéticos
IPA e
X-SAMPA (em inglês). Consulte a
página de fonemas (link em inglês) para ver uma lista de idiomas
e fonemas compatíveis.
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 principal: indicado com
ˈ
em IPA e"
em X-SAMPA. - Estresse secundário: indicado com
ˌ
em 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 (link em inglês) 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, no inglês americano, transcreva t
intervocálico (em vez de usar um 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 expressão de assimilação para s
em inglês. Nesse caso, a assimilação deve ser refletida na transcrição:
Example word | IPA | X-SAMPA |
---|---|---|
cats | ˈ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 de sílaba usando .
. Cada sílaba precisa conter 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 oferece suporte ao <say-as interpret-as="duration">
para ler as durações
corretamente. 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 | horas |
m | minutos |
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, você pode usar uma tag <voice>
para especificar uma voz individual (o
nome da voz na
página de vozes e idiomas compatíveis)
em vez de especificar uma 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 atributos abaixo. Todos os três
atributos são opcionais, mas você precisa fornecer pelo menos um se não fornecer um
name
.
gender
: um demale
,female
ouneutral
.variant
: usado como desempatador nos casos em que há várias possibilidades de qual voz usar com base na 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 for designado comorequired
e não for configurado corretamente, a solicitação vai falhar.ordering
: todos os atributos listados após uma tagordering
são considerados preferidos, e não obrigatórios. A SSML considera os atributos preferidos com base no melhor esforço, na ordem em que estão listados após a tagordering
. Se algum atributo preferencial for configurado incorretamente, o Actions on Google ainda poderá retornar uma voz válida, mas com a configuração incorreta descartada.
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 está listado como "código do idioma" na
tabela de vozes compatíveis. No exemplo a seguir, "chat" será verbalizado em francês, e não no 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 oferece suporte à tag <lang>
da melhor maneira possível. Nem todas
as combinações de idiomas produzem os mesmos resultados de qualidade se especificadas na mesma
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 é transliterada e lida como caracteres chineses. - Idiomas semíticos como árabe, hebraico e persa não têm suporte da
tag
<lang>
e resultam em silêncio. Se você quiser usar qualquer um desses idiomas, recomendamos usar a tag<voice>
para alternar para uma voz que fale o idioma desejado (se disponível).