Builder de SSML (Speech)
Monte documentos SSML (Speech Synthesis Markup) compatíveis com Alexa, Google e Polly com tags break, prosody, emphasis, phoneme e voice.
SSML — a linguagem de marcação que faz vozes sintéticas soarem humanas
SSML (Speech Synthesis Markup Language) é um padrão W3C — versão 1.1 publicada em 2010 — para dizer a um motor de text-to-speech como ler uma string. Texto puro dá ao motor um único sinal (as palavras); SSML adiciona pausas, ênfase, altura, velocidade, fonemas, soletração, datas, valores monetários e substituições. É a diferença entre um bot de contact-center que lê "Dr. R. Silva" como "dê érre silva" e um que lê "doutor Reginaldo Silva, conta número A-um-dois-três".
Anatomia de um documento SSML
Todo documento é envolvido por um elemento raiz <speak>. Dentro, você mistura texto puro com tags que modificam a fala em volta:
<speak>
Bem-vindo à <emphasis level="strong">Amazon</emphasis>.
Aguarde <break time="500ms"/> enquanto conecto você.
<prosody rate="slow" pitch="+2st">Devagar e agudo.</prosody>
Seu número de conta é <say-as interpret-as="characters">A123</say-as>.
</speak>
As tags que você vai usar de verdade
<break time="500ms"/>— insere pausa; aceitams,sou forçaweak|medium|strong|x-strong.<emphasis level="strong">— enfatiza uma palavra. A maioria dos motores aceitastrong,moderate,reduced.<prosody rate="slow" pitch="+2st" volume="loud">— controle fino de velocidade, altura (semitons ou %) e volume.<say-as interpret-as="characters|digits|date|time|currency|telephone">— força interpretação. "A123" lê "A-um-dois-três" comcharacters; "2025-12-31" lê como data comdate.<phoneme alphabet="ipa" ph="ˈnaɪki">Nike</phoneme>— pronúncia customizada em IPA ou X-SAMPA.<sub alias="Doutor">Dr.</sub>— substitui a forma falada. Universal entre provedores.
Motores e provedores
O suporte a SSML não é uniforme. O Amazon Polly implementa o subset mais completo mais extensões (<amazon:effect>, estilo "newscaster", sons de respiração). O Google Cloud Text-to-Speech (Wavenet, Neural2, Studio) é mais estrito e rejeita marcação inválida. O Microsoft Azure Speech usa um namespace levemente diferente e adiciona <mstts:express-as style="cheerful"> para estilos emocionais. IBM Watson e Amazon Connect (produto de URA) também consomem SSML. Para português brasileiro, as melhores vozes neurais são Camila e Vitória da Polly, pt-BR-Wavenet-C da Google, Francisca da Azure. O VoiceOver da Apple traz Felipe e Luciana no macOS/iOS.
Onde SSML vale o esforço
- URA de contact-center — números de conta, valores e datas precisam de
say-aspra evitar leituras constrangedoras. - Audiolivros e podcasts — síntese de formato longo com pacing e ênfase deliberados.
- Assistentes de voz — o SDK de Alexa Skills exige SSML pra qualquer resposta não-trivial; Google Actions aceita.
- Acessibilidade — leitores de tela honram algumas dicas SSML embutidas via ARIA ou
aria-label.
Perguntas frequentes
SSML é portável entre provedores? Parcialmente. O core W3C (break, emphasis, prosody, say-as, sub, phoneme) funciona em quase todo lugar. Extensões específicas do provedor (amazon:effect, mstts:express-as) não. Teste no motor alvo antes de subir pra produção.
Existem vozes neurais para português brasileiro? Sim. A Camila da Polly (neural) é a escolha de fato da indústria para BR-PT natural. A Google tem pt-BR-Neural2-A a pt-BR-Neural2-C. A Azure oferece Francisca e Antônio. Todas custam cerca de US$ 16 por 1 M caracteres na versão neural, ~US$ 4 na standard.
Quantas tags devo usar? Menos do que você imagina. Os motores são bons em prosódia default; tagueamento em excesso produz resultado robótico. Use say-as onde houver ambiguidade, break para batidas deliberadas, e pare por aí. Resista à tentação de microgerenciar cada palavra com prosody.
O que é um lexicon PLS? Pronunciation Lexicon Specification — um arquivo XML separado que mapeia formas escritas para grafia fonética. Útil para nomes de marca e jargão que você reusa em vários documentos SSML (defina "Nike" uma vez, referencie em todo lugar).
Ferramentas Relacionadas
Builder de arquivo .netrc
Monta um arquivo ~/.netrc (curl, ftp, git credential) com múltiplas entradas 'machine HOST', login, password e account opcional, mais entrada 'default' única. Avisa sobre passwords com '#' ou espaço (que quebram o parser) e relembra chmod 600.
WebFinger JRD Builder (RFC 7033)
Monta um documento JRD (JSON Resource Descriptor) para resposta WebFinger (.well-known/webfinger) com subject acct:, aliases, properties e links (rel, type, href) — usado por Mastodon/ActivityPub.
Builder de Tópicos MQTT
Construtor de tópicos MQTT com wildcards + e #, valida hierarquia e sugere padrões (sparkplug B, homie 4).