Referência da linguagem de marcação de síntese de fala (SSML) (Beta)

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:

  1. Estresse primário: indicado com ˈ no IPA e " em X-SAMPA.
  2. Estresse secundário: indicado com ˌ no IPA e % em X-SAMPA.
  3. 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 de male, female ou neutral.
  • 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 como required e não está configurado. corretamente, a solicitação falhará.
  • ordering: todos os atributos listados após uma tag ordering são considerados preferidos, e não obrigatórios. O SSML considera atributos preferidos na ordem em que estão listados após a tag ordering. 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).