Formatação¶
Esta seção tem por objetivo informar ao usuário do CPqD Texto Fala as regras de formatação de texto assumidas pelo software, bem como os recursos de controle da fala sintetizada disponíveis através do texto de entrada. Os comentários aqui inseridos são genéricos tanto para o idioma do português do Brasil, quanto ao espanhol latino-americano, porém os exemplos citados estão baseados no português do Brasil.
Restrições do Texto de Entrada¶
Conjunto de caracteres¶
O CPqD Texto Fala está preparado para interpretar arquivos e buffers de texto puro, sem cabeçalhos ou caracteres de formatação.
Caso o texto a sintetizar seja produzido através de programas de processamento de texto, o formato selecionado para gravação do texto em disco deve ser o de texto puro (geralmente com extensão “txt”); não devem ser usados formatos que incluam informações de formatação, tais como “doc”, “docx”, “rtf”, “odt”, “sxw”, “pdf”, “ps” e outros.
Além disso, o texto deve estar codificado em um dos padrões reconhecidos pelo CPqD Texto Fala:
- ISO-8859-15, geralmente empregado pelo Windows e por algumas versões de Unix/Linux;
- UTF-8 (apenas para os caracteres representados na tabela ISO-8859-15), comum em sistemas Unix/Linux e muitas vezes encontrado também em sistemas Windows;
Caracteres fora desses padrões serão ignorados.
Limite de tamanho do texto¶
O texto de entrada ao CPqD Texto Fala deve ter, como máximo, 1.024.000 caracteres. Caso esse limite seja excedido, um erro será retornado pelo programa informando que o texto é muito longo. Para sintetizar textos maiores que esse limite, a aplicação que usa o CPqD Texto Fala deve quebrar o texto de entrada em blocos menores que não ultrapassem 1.024.000 caracteres cada um.
Formatação do Texto de Entrada¶
Tratamento de pontuação¶
A correta pontuação do texto de entrada é essencial para a qualidade da fala sintetizada, tendo influência - sobretudo - na inserção de pausas e na entonação da fala. Os seguintes caracteres de pontuação são reconhecidos pelo CPqD Texto Fala: “.” (ponto), “,” (vírgula), “;” (ponto e vírgula), “:” (dois pontos), “!” (ponto de exclamação), “?” (ponto de interrogação), “(” (abre parênteses), “)” (fecha parênteses), “[” (abre colchetes), “]” (fecha colchetes), “{” (abre chaves) e “}” (fecha chaves). Caracteres de aspas e apóstrofo serão ignorados.
O ponto pode ser um terminador de sentença, parte de uma abreviação ou um separador de algarismos. O Léxico de Abreviações será consultado antes que um ponto seja considerado terminador de sentença, para saber se não forma parte de uma abreviação.
Caso a última palavra de um parágrafo seja uma abreviação terminada por ponto, é necessário inserir um ponto adicional separado por espaço para que o sistema reconheça o final de parágrafo. Por exemplo: o texto “Estudam dança, canto, capoeira etc. Os cursos são gratuitos.”, no qual o ponto após “etc” desempenha ao mesmo tempo papel de terminador de sentença e indicador de abreviação, deve ser grafado: “Estudam dança, canto, capoeira etc. . Os cursos são gratuitos.”
Tratamento do traço (“-”)¶
Se o traço fizer parte de um padrão específico, será tratado conforme descrito na seção correspondente deste documento. Caso contrário, o CPqD Texto Fala identificará se o mesmo deve ser verbalizado ou não. Nos casos que o traço faz parte de uma quantia ou um número negativo, por exemplo “-18” (“menos dezoito”), ele será convertido para a palavra “menos”. Caso ocorra no interior de uma sequência de símbolos sem padrão especifico, por exemplo “#-/%” (“numeral traço barra por cento”) ou “$&-01” (“cifrão ê comercial traço zero hum”), será convertido na palavra “traço”.
Tratamento do caractere de fim de parágrafo¶
O caractere de fim de parágrafo enter age como um terminador de sentença. Caso não haja um caractere de pontuação antes do fim de parágrafo, com as configurações Text.SSML desabilitada e Text.BreakLine habilitada no arquivo de configuração do CPqD Texto Fala (tts.conf), um ponto final é automaticamente inserido pelo sistema.
Para tratamento com SSML (Text.SSML habilitada), recomendamos o uso das tags <s> e <p> (SSML), caso a pontuação final não esteja explícita no texto.
Tratamento de expressões contendo números¶
- Números genéricos
Números inteiros ou decimais podem conter, além de algarismos, o “.” (ponto) e a “,” (vírgula). O ponto é usado como separador de grupos de 3 algarismos. Caso haja uma quantidade de algarismos diferente de 3 entre dois pontos, o número será pronunciado algarismo a algarismo e os pontos serão lidos explicitamente (a exceção é o grupo de dígitos mais à esquerda do número, que pode conter 1, 2 ou 3 algarismos).
A vírgula indica a separação entre a parte inteira e a parte fracionária do número. Caso seja utilizado ponto ao invés de vírgula, este será lido explicitamente. Por exemplo, o número “120.0” será verbalizado “cento e vinte ponto zero”.
Números iniciados pelo algarismo “0” (zero) serão pronunciados algarismo a algarismo; por exemplo, ‘0123’ será lido “zero hum dois três”.
A seguir encontram-se alguns exemplos do tratamento efetuado para números:
- “2023343” ou “2.023.343” será lido “dois milhões vinte e três mil trezentos e quarenta e três”.
- “1912” ou “1.912” será lido “mil novecentos e doze”.
- “123 343 567” será lido “cento e vinte e três trezentos e quarenta e três quinhentos e sessenta e sete”.
- “012” será lido “zero um dois”.
- “36,55” será lido “trinta e seis vírgula cinquenta e cinco”.
- “1.025,2” será lido “mil e vinte e cinco vírgula dois”.
- “10,1,245” será lido “dez , hum , duzentos e quarenta e cinco”.
Caso a detecção automática de gênero esteja ativa (ver embaixo Tags de Programação), a concordância dos números pode ser feita no feminino, conforme a palavra que sucede o número. Por exemplo:
- “1 carro” será lido “um carro”, mas “1 casa” será lido “uma casa”.
- “200.000 carros” será lido “duzentos mil carros”, mas “200.000 casas” será lido “duzentas mil casas”.
Embora as regras de detecção de gênero funcionem corretamente para a maioria das palavras, eventuais erros de concordância podem ocorrer. Uma possível solução para este problema é desabilitar a detecção automática de gênero, o que pode ser feito pela inserção da tag say-as “no-gender” no texto de entrada (ver Tags de Programação). Outra opção é criar uma exceção às regras de detecção de gênero (neste caso, favor contactar o CPqD).
- Números ordinais
Números ordinais femininos devem ser indicados adicionando a letra “a” ou o supraíndice “ª” após o último algarismo; para os masculinos, deve adicionar-se a letra “o” ou o supraíndice “º”. Por exemplo, “25ª” ou “25a” será lido “vigésima quinta”; “25o” ou “25º” será lido “vigésimo quinto”.
- Horários e durações
Horários e durações devem ser indicados usando letras “h”, “hr”, “hrs” ou “hs”, ou pelo símbolo “:” (dois pontos). Por exemplo, “5h00”, “5:00”, “5h”, “5 hr”, “5 hs” ou “5hrs” será lido “cinco horas”, “5:45” ou “5h45” será lido “cinco horas e quarenta e cinco minutos”.
No caso que os segundos estejam presentes, eles também serão verbalizados. Por exemplo, “5:45:12” será lido “cinco horas, quarenta e cinco minutos e doze segundos”.
Unidades de tempo indicados pelas letras “h”, “hr”, “hrs” ou “hs” podem ser opcionalmente seguidas por “m”, “min”, “mn”, “mm‘, “s”, “seg”, “sec” ou “ss”. Por exemplo, “5h15m”, “5hs15mn” ou “5hr15min” será lido “cinco horas e quinze minutos”.
Além desses formatos, os minutos podem ser representados por apóstrofo e os segundos por aspas. Por exemplo: “5‘12’” será lido “cinco minutos e doze segundos”.
Horários com “AM” e “PM” serão lidos acrescentando “á ême” ou “pê ême”, respectivamente. Por exemplo: “5:00 PM” será lido “cinco horas pê ême” e “8:15am” será lido “oito horas e quinze minutos á ême”.
Durações de tempo escritas isoladamente só serão interpretadas corretamente se forem usados os formatos “h”, “hr”, “hrs”, “hs”, “mn” ou “min”. Por exemplo, “5mn”, “5min”, “5 mn” ou “5 min” será lido “cinco minutos”. O formato “5h45m” também é aceito, mas “5m” não; neste último caso, “m” será interpretado como a unidade de medida “metro” (ver Unidades de medida mais à frente nesta seção).
Durações em segundos serão interpretadas corretamente se acompanhadas de minutos e/ou horas. Por exemplo: “7h21m7s” será lido “7 horas, 21 minutos e 7 segundos”; “2min18seg” será lido “2 minutos e 18 segundos”; e “5hr45ss” será lido “cinco horas e quarenta e cinco segundos”.
- Datas
Datas devem ser especificadas por três grupos de dígitos separados por barra ou por traço, sendo possível utilizar excepcionalmente palavras ou abreviações dos meses no lugar apropriado. Esta condição também se aplica a casos em que apenas dois grupos de dígitos componham a data.
Em casos onde a sequência de caracteres é formada por apenas dois grupos de números e um separador, será feita a expansão elemento a elemento devido à ambiguidade entre o texto ser uma data ou uma outra expressão. Se a sequência de caracteres contiver números fora da faixa de datas possíveis (considerando meses com 30 ou 31 dias e anos bissextos), a sequência será expandida elemento a elemento.
Nos casos onde letras sejam utilizadas no lugar do mês ou no uso de datas irônicas, como “30/Fev”, o texto será interpretado como uma data. Alguns exemplos:
- “16/03/1994” ou “16/3/1994” será lido “dezesseis de março de mil novecentos e noventa e quatro”.
- “05/10/94” ou “5/Out/94” será lido “cinco de outubro de noventa e quatro”.
- “16/mar” ou “16/março” será lido “dezesseis de março”.
- “07/15” e “07-15” serão lidos “zero sete barra quinze” e “zero sete traço quinze” respectivamente.
- “29/02/1996” será lido “vinte e nove de fevereiro de mil novecentos e noventa e seis”.
- “29/Fev/1997” será lido “vinte e nove de fevereiro de mil novecentos e noventa e sete”.
- “30/Fev/1999” será lido “trinta de fevereiro de mil novecentos e noventa e nove”, pois como o mês está escrito com letras, é considerada uma data irônica.
- “30/02/1999” será lido “trinta barra zero dois barra mil novecentos e noventa e nove”, pois essa não é uma data válida.
- Quantias monetárias
O CPqD Texto Fala interpreta valores monetários em reais, dólares, euros e libras. Valores precedidos por “R$” serão convertidos para “reais”, precedidos por “$”, “£” e “€” serão convertidos para “dólares”, “euros” e “libras”, respectivamente. Adicionalmente, códigos ISO utilizados para moedas serão interpretados como tais. Os plurais e o gênero também serão considerados. Em casos que existam mais de dois dígitos após a vírgula, a parte fracionária será soletrada. Alguns exemplos:
- “R$20” ou “R$ 20” ou “R$20,00” ou “BRL 20,00” será lido “vinte reais”.
- “R$20,10” ou “R$ 20,10” será lido “vinte reais , e dez centavos”.
- “R$0,10” ou “R$ 0,10” será lido “dez centavos”.
- “-R$ 20” ou “-R$20,00” será lido “menos vinte reais”.
- “US$20” ou “US$ 20” ou “US$20,00” ou “USD 20,00” será lido “vinte dólares”.
- “US$20,10” ou “US$ 20,10” será lido “vinte dólares , e dez centavos”.
- “US$0,10” ou “US$ 0,10” será lido “dez centavos de dólar”.
Quando os símbolos monetários não precedem um número, eles serão lidos por extenso. Por exemplo, “$” será lido “cifrão” e “R$” será lido “reais”.
- Unidades de medida
O CPqD Texto Fala é capaz de interpretar algumas unidades de medida. As unidades são interpretadas como tal somente quando sucedem um conjunto de dígitos, podendo ser ou não precedidas por caracteres de espaçamento. Algumas unidades são sensíveis à caixa das letras. As unidades são automaticamente ajustadas para singular ou plural, conforme o caso. Algumas medidas são consideradas menos ambíguas e podem ser expandidas mesmo sem um número na frente dela. Neste caso, a forma plural é assumida. Exemplos:
- “1 km/h” ou “1km/h” é lido “hum quilômetro por hora”
- “3 cm” ou “3cm” é lido “três centímetros”
- “90 m²” é lido “noventa metros quadrados”
- “km/h” é lido “quilômetros por hora”
- “mmHg” é lido “milímetros de mercúrio”.
- Temperaturas
Temperaturas são indicadas pelo símbolo “°” (grau) após um número e precedendo uma abreviação de temperatura. As abreviações de temperatura aceitas pelo CPqD Texto Fala são: “C” (celsius), “F” (Fahrenheit), “K” (Kelvin), “R” (Reamur) ou “Ra” (Ranquine). Formas em plural são reconhecidas pelo sistema. Exemplos:
- “4°F” ou “4° F” ou “4 ° F” será lido “quatro graus fahrenheit”
- “1°C” ou “1° C” ou “1 ° C” será lido “um grau celsius”
- Direções geográficas
Direções geográficas são indicadas pelo símbolo “°” (grau) após um número e precedendo uma abreviação de direção. As abreviações de direção aceitas pelo CPqD Texto Fala são: “N” (norte), “S” (sul), “L” (leste), “E” (leste), “W” (oeste) ou “O” (oeste). Formas em plural são reconhecidas pelo sistema. Exemplos:
- “1°N” ou “1° N” ou “1 ° N” será lido “um grau norte”
- “4°S” ou “4° S” ou “4 ° S” será lido “quatro graus sul”
- E-mails e URLs
Endereços de e-mail e URLs são tratados quando caracteres indicativos, como “@” e “.”, são incluídos em uma sequência de caracteres sem espaços. Exemplos:
- maria@cpqd.com.br é convertido para “maria , arroba cê pê quê dê , ponto com , ponto bê érre”
- www.google.com/home.html é convertido para “dábliu dábliu dábliu ponto google , ponto com, barra home, ponto agá tê ême éle”
Páginas conhecidas da web com pronúncias excepcionais para o português brasileiro são tratadas como exceções fonéticas. Caso seja necessário incluir alguma página específica, favor entrar em contato com o CPqD.
- Números de telefone
Números de telefone nos formatos especificados abaixo são tratados de forma que pares de algarismos sejam falados juntos e grupos maiores sejam soletrados (adicionalmente, introduze-se uma pausa entre grupos de algarismos separados por espaços, traços e, em alguns casos, parênteses). Por exemplo, um DDD normalmente será verbalizado como um número único (“11” será convertido para “onze”), enquanto os outros grupos de números serão soletrados criando pausas rítmicas. Os formatos telefônicos aceitos são:
- (99) 9999 9999
- (99) 9 9999 9999
- (99) 9999-9999
- (99) 99999-9999
- 0xx99 9999-9999
- (+99) 99999-9999
- (+99 99) 99999-9999
- (99) 99999-9999
- 0xx99 9999-9999
- 0800 999-9999
- 0300 999-9999
- 9999-9999
Desta forma, o número telefônico “(16) 9 8294 0316” será lido “dezesseis, nove , oito dois nove quatro , zero três hum seis”.
Se a sequência de números não estiver em um dos formatos especificados, não será interpretada como número telefônico e será lida de forma diferente. Por exemplo “(9) 99-9999-999” será convertida para “nove , noventa e nove , nove mil novecentos e noventa e nove , novecentos e noventa e nove”.
- Números e Tipos de Documentos
Os seguintes formatos de números serão interpretados como CPF, RG e RNE (Registro Nacional de Estrangeiro) respectivamente:
- CPF: 999.999.999-99
- RG: 99.999.999-9
- RNE: A999999-9
Estes números serão divididos em grupos segundo os delimitadores padrão desses documentos, e nesses pontos será inserida uma pausa. No caso do CPF, os últimos dois dígitos serão verbalizados como um número só. Por exemplo “748.496.209-80” será convertido para “sete quatro oito , quatro nove seis , dois zero nove traço oitenta”. Se a sequência de números não estiver em um dos formatos especificados, ela não será interpretada como um número de documento. Por exemplo “A9999999-9” será lido “a nove milhões novecentos e noventa e nove mil novecentos e noventa e nove traço nove”.
- Diretórios
Diretórios comuns no padrão Linux serão interpretados de forma a não serem confundidos com outras sequências de letras, números e símbolos. Por exemplo: “/usr/bruno” será lido “barra user barra bruno”. A Tabela 1 lista os elementos tratados na leitura de diretórios e a forma como são verbalizados.
Tabela 1: Elementos tratados na leitura de diretórios pelo CPqD Texto Fala
Palavra Verbalização usr user mnt mount etc ê tê cê tmp temp ~/ home cd ~ home / barra
- Outras combinações de dígitos
Para outras combinações de dígitos, a leitura é elemento a elemento normalmente separados por espaços. Por exemplo “120 1999 10” é lido “cento e vinte mil novecentos e noventa e nove dez”.
O gênero do número é modificado sempre que for possível identificar o género do substantivo após o número. Por exemplo “2 casas” é convertido para “duas casas”.
Tags de Programação¶
O CPqD Texto Fala disponibiliza tags com o objetivo de controlar a forma como as palavras são vocalizadas, provendo facilidades tais como: leitura em modo soletrado, tratamento diferenciado para números, inserção de pausas e modificação do ritmo da fala, além de switches para modificar a maneira de verbalizar gênero, frações, abreviações dos estados brasileiros e datas, entre outros. Isto é feito através do recurso SSML (Speech Synthesis Markup Language). Para detalhes e uso deste recurso, ver a seção Interpretador SSML.
Abreviações, Siglas e o Léxico de Abreviações¶
Tratamento de siglas¶
O CPqD Texto Fala considera como siglas as palavras que contém somente consoantes e, neste caso, soletra as mesmas.
Também são soletradas, em geral, palavras que incluam símbolos não alfabéticos. O Apêndice 1 contém uma tabela com a forma em que o CPqD Texto Fala lê os caracteres no modo soletrado.
Siglas que não sejam automaticamente reconhecidas como tal, podem ser soletradas usando a tag SSML say-as com o atributo spell. Outra opção é incluí-las no léxico de abreviações, indicando explicitamente como devem ser lidas.
Tratamento de abreviações¶
Abreviações são especificadas em um léxico padrão (Léxico de Abreviações), que o sistema lê durante sua inicialização. Quando um termo contido neste léxico é encontrado no texto de entrada, ele é substituído pela sua forma expandida. Por exemplo, a palavra “av” encontra-se definida no léxico como “avenida”, portanto, será lida desta forma sempre que ocorrer no texto de entrada.
Caso queira uma adequação específica do Léxico de Abreviações para sua aplicação, consulte o CPqD. Existe um outro léxico de abreviações editável pelo usuário, que pode ou não estar presente no sistema conforme sua configuração; este Léxico do Usuário está descrito mais abaixo.
Nota
As entradas presentes no Léxico do Usuário têm precedência em relação às entradas presentes no Léxico Padrão.
Perceba que uma mesma abreviação pode ter significados diferentes em função do contexto. Por exemplo, em “S. Paulo” a abreviação “s.” significa “são”, enquanto em “Conjunto 13, S. 17” a mesma abreviação significa “sala”. Ambiguidades podem ocorrer, inclusive, dentro de um mesmo contexto semântico: por exemplo, em “S. André” a abreviação “s.” significa “santo” ao invés de “são”. O CPqD Texto Fala permite definir apenas uma expansão para cada abreviação, não sendo possível diferenciar contextos semânticos. Caso haja ambiguidade, a aplicação deve optar pela expansão mais frequente ou que cause menor efeito colateral ou, ainda, realizar ela própria a expansão que considerar mais conveniente antes de entregar o texto ao CPqD Texto Fala.
A tabela seguinte especifica alguns exemplos de abreviações reconhecidas pelo CPqD Texto Fala. Havendo necessidade de adequação de abreviações, favor contactar o CPqD.
Tabela 2 - Abreviações reconhecidas pelo CPqD Texto Fala
Símbolo Expansão +/- mais ou menos &c et cétera pag. página pág. página av* avenida pags. páginas págs. páginas pp. páginas depto* departamento prof* professor profs* professores profa* professora profas professoras profª professora dra doutora drª doutora nº número vol. volume tts t t s eua estados unidos américa lga. lagoa al. alameda art. artigo c.p. caixa postal ed. edição e.m.e.f.e.i. emefei e.m.e.i. emei eq. equação cp* caixa postal dr. doutor dr.a doutora dr.ª doutora cód. código sta. santa sto. santo abr.* abril côn. cônego méd. médico abrev. abreviação pto. ponto pts. pontos suj. sujeito ago* agosto fev* fevereiro dep. deputado pça* praça tels. telefones alm. almirante s.a. sociedade anônima eh é sr senhor etc et cétera sra senhora srª senhora ex. exemplo p.ex. por exemplo srta* senhorita srtª* senhorita fig* figura vc você jr* júnior vcs vocês ltda.* limitada vl vila pct por cento prof.a professora prof.ª professora sr.a senhora sr.ª senhora srt.a senhorita srt.ª senhorita universit universitário mín* mínimo máx* máximo esq. esquerdo mons. monsenhor a/c aos cuidados
caixa estr. estrada mto muito deps. deputados temp. temperatura aprox* aproximadamente obs. observação univ. universidade rod. rodovia hj hoje dptos* departamentos bco. banco sarg. sargento brig. brigadeiro c/. com pgto* pagamento jd. jardim vs. versus
* a abreviação também pode terminar com ponto
Léxico do usuário - Arquivo USER.DAT¶
Além do léxico de abreviações padrão, existe um léxico editável pelo usuário. Trata-se do arquivo “user.dat” que é opcional e deve estar localizado no diretório de instalação do CPqD Texto Fala.
Na sua forma mais simples, as entradas deste arquivo consistem da abreviação seguida da sua forma expandida.
É possível especificar para qual idioma as substituições valem colocando os marcadores [LANGUAGE: PTBR] para o português do Brasil e [LANGUAGE:ES] para o espanhol latino-americano, antes das entradas correspondentes. Caso os marcadores não sejam utilizados, ou as entradas estejam antes do primeiro marcador usado, a substituição valerá para todos os idiomas disponíveis.
Exemplo:
[etc] [etcétera]
[LANGUAGE:PTBR]
[cx] [caixa]
[bd] [base de dados]
[LANGUAGE:ES]
[ej] [ejemplo]
[srl] [sociedad de responsabilidad limitada]
Abreviações especificadas como acima podem ou não ser seguidas de ponto no texto de entrada; caso o ponto exista, ele é mantido na expansão da abreviação. Por exemplo, a sentença “acesso do cx à bd. com erro.” será expandida para “acesso do caixa à base de dados. com erro.”, com o ponto mantido após a expansão “base de dados”.
Caso se deseje que o ponto da abreviação não seja mantido no texto expandido, deve-se usar a opção “/p” após a definição da abreviação e incluir o ponto na definição da mesma. Quando a opção “/p” é especificada, mas o ponto não é incluído na definição da abreviação, esta somente é reconhecida se o ponto não estiver presente no texto de entrada.
Exemplos:
[LANGUAGE:PTBR]
[tx.] [transmissor] /p
[tx] [taxa] /p
Neste caso, a sentença “um tx. de alta tx de transferência.” será expandida para “um transmissor de alta taxa de transferência.”
Caso uma abreviação especificada com a opção “/p” e terminada por ponto ocorra em final de sentença, é necessário incluir um ponto final adicional para indicar o término da sentença, separado do ponto da abreviação por um espaço. Exemplo: “ligue o tx. .” será expandido para “ligue o transmissor.”
Caso se queira tratar uma dada abreviação com e sem a presença do ponto, é necessário incluir as duas formas de tratamento no léxico, em linhas independentes.
Por padrão, não há distinção entre letras maiúsculas e minúsculas nas abreviações especificadas no léxico do usuário. Caso se deseje fazer essa distinção, a opção “/c” deve ser empregada.
Exemplos:
[LANGUAGE:PTBR]
[ap] [apartamento] /c
[Ap] [aparecida] /c
Neste caso, a sentença “maria Ap mora no ap dez” será expandida para “maria aparecida mora no apartamento dez”. Se desejado, as opções “/c” e “/p” podem ser usadas em conjunto para uma mesma abreviação, bastando especificar ambas em sequência, separadas por um espaço.
Na expansão de abreviações especificadas no léxico, somente devem ser usados caracteres alfabéticos e os caracteres de traço e espaço. Não são permitidos dígitos ou símbolos especiais.
Deve-se ter bastante cuidado com a inserção de entradas no arquivo user.dat, já que podem produzir-se efeitos colaterais impensados pelo usuário. Por exemplo, a inclusão de “PM” para ser substituído por “Policia Militar”, fará que o texto de entrada “recebi a mensagem às 9:00 PM” seja substituído por “recebi a mensagem às nove horas polícia militar”, significado totalmente diferente do esperado.
Uma entrada no arquivo user.dat consiste dos seguintes elementos: o termo a ser substituído entre colchetes, um tab, a substituição entre colchetes, um espaço e os parâmetros opcionais. Uma palavra isolada pode ser substituída por múltiplas palavras e vice-versa.
Exemplos:
[LANGUAGE:PTBR]
[dr] [doutor] /p
[sr] [senhor]
[sa] [sociedade anônima]
[New York] [nova iorque]
[LANGUAGE:ES]
[ej] [ejemplo]
[srl] [sociedad de responsabilidad limitada]
[bd] [base de datos]
[of course] [claro]
Parâmetros opcionais:
/c: usado para levar em conta a caixa das letras; o padrão (sem /c) é não diferenciar maiúsculas de minúsculas (ver explicação dada anteriormente).
/p: usado para consumir ou não o ponto que segue a abreviação (ver explicação dada anteriormente).
Rótulos ou Marcadores
- [LANGUAGE:PTBR]
- Incluir antes das substituições que devem valer para o português do Brasil.
- [LANGUAGE:ES]
- Incluir antes das substituições que devem valer para o espanhol da latino-americano.
Entradas para todos os idiomas: incluí-las antes dos rótulos.
É possível, ainda, criar sessões específicas no arquivo user.dat, contendo tabelas de substituição cujo uso pode ser habilitado ou desabilitado por meio do uso das tags SSML lexicon e lookup no texto de entrada. Mais detalhes a respeito do uso desse recurso podem ser encontrados em Interpretador SSML.