Nesta dica eu descrevo uma maneira "Tosca" de fazer o seu computador realmente falar em português nativamente, sem qualquer emulação ou coisa do tipo.
Se interessou? O resultado não vai ser assim tão espetacular, pois o processo vai ser realizado pela linha de comando, além de ser um pouco lento perto, por exemplo, do programa
festival falando em inglês. Mas mesmo assim já é um começo.
Primeiro precisamos baixar alguns arquivos e instalar.
Os arquivos são os seguintes:
Rawplay:
http://ufpr.dl.sourceforge.net/sourceforge/rawrec/rawrec-0.9.991.tar.gz
Mbrola:
http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
Banco de Voz em português:
http://tcts.fpms.ac.be/synthesis/mbrola/dba/br3/br3-000119.zip
TTS em Português:
http://tcts.fpms.ac.be/synthesis/mbrola/tts/Portuguese/port_tts.zip
Agora, instalando tudo isso aí. Não, não é obrigatório ser root para realizar este processo. Tudo pode ser feito como usuário comum.
Entre na pasta que fez os downloads e descompacte o arquivo rawrec-0.9.991.tar.gz:
$ tar zxvf rawrec-0.9.991.tar.gz
$ cd rawrec-0.9.991/src
$ make
$ cp rawrec ../../rawplay
$ cd ../../
Descompactando o arquivo mbr301h.zip:
$ unzip mbr301h.zip
$ mv mbrola-linux-i386 mbrola
Descompactando o Banco de Voz em português:
$ unzip br3-000119.zip
Descompactando o script que juntará tudo aí em cima:
$ unzip port_tts.zip
Agora temos que editar o script ttp_p.pl para colocar o local exato de cada arquivo:
$ vim ttp_p.pl
(ou outro editor de sua escolha)
Vá até a linha 12 (:12), que iremos modificar. Modifique ela para ficar assim:
my $mbrola_cmd = "| ./mbrola -e ./br3/br3 - -.raw | ./rawplay -s 9960";
Salve o arquivo (:x!) e dê permissão de execução a ele:
$ chmod +x ttp_p.pl
Bem, agora vamos testar pra ver se funcionou. Dê o seguinte comando:
$ echo "O rato roeu a roupa do rei de roma" | ./ttp_p.pl
Se você ouvir uma voz robótica saindo do auto-falante do seu computador, não se assuste: Não é um fantasma nem o Stephen Hawking, é o seu computador falando com você. ;)
Como disse acima, fazer tudo isso pode ser chato. Aí há várias soluções. Uma dela é fazer o seguinte:
$ cat << FIM | ./ttp_p.pl
Aí você pode digitar as frases, e quando digitar a label FIM a frase será sintetizada e falada.
Você pode também criar um script em shell, que seria mais ou menos assim:
#!/bin/bash
# script 1
echo "Digite o que você quer que o seu computador fale:"
read expressao
echo "$expressão" | ./ttp_p.pl > /dev/null 2> /dev/null
Ou ainda:
#!/bin/bash
# script 2
if [ ! -z "$*" ]; then
echo "$*" | ./ttp_p.pl > /dev/null 2> /dev/null
else
echo "Uso: $0 <Frase a ser falada>"
fi
Bem, aí a imaginação é sua. E há várias formas de fazer isso.
Lembrando que, do jeito que esse processo foi feito, é obrigatoriamente necessário estar no diretório onde estão os arquivos, para que funcione.
Mas se você quiser que tudo isso aconteça de forma mais dinâmica, onde qualquer usuário possa executar, estando em qualquer diretório, faça o seguinte:
Crie uma pasta comum para todos os usuários:
# mkdir /usr/lib/mbrola
(poderia ser qualquer outra pasta)
Entre nesta pasta e faça aquele processo descrito acima (as descompactações, etc) nesse diretório.
Entre em rawrec-0.9.991/src e dê "make && make install" e volte para /usr/lib/mbrola.
Edite o arquivo ttp_p.pl, localizando a linha 12, deixando-as assim:
my $mbrola_cmd = "| /usr/lib/mbrola/mbrola -e /usr/lib/mbrola/br3/br3 - -.raw | rawplay -s 9960";
Localize também a linha 211, deixando-as assim:
my ($defcfg,$defstyle) = readcfg("/usr/lib/mbrola/portuguese.dat");
E a linha 215, deixando-a assim:
open(RULES,"/usr/lib/mbrola/port_rules");
Salve o arquivo e crie um script chamado falar (poderia ser qualquer outro nome) numa pasta qualquer da sua variável PATH. No caso, usarei /usr/bin. O conteúdo do arquivo é bem parecido com o script 2 citado acima:
#!/bin/bash
# script 3
if [ ! -z "$*" ]; then
echo "$*" | /usr/lib/mbrola/ttp_p.pl > /dev/null 2> /dev/null
else
echo "Uso: falar <Frase a ser falada>"
fi
Salve o arquivo e dê permissão de execução a ele:
# chmod a+x /usr/bin/falar
Sei que essa não é a finalidade dessa tecnologia, mas você pode usar esse recurso para várias coisas idiotas, tais como colocar uma mensagem filosófica (falar $(fortune)) para ser falada quando você logar no sistema, dentre outras inutilidades, mas isso eu não descrevo nessa dica. Quem sabe numa outra.
Créditos
Projeto Mbrola:
Banco de voz em português:
- Denis R.Costa: dcosta - at - ams.com.br
TTS em português:
- Luis Alves: luis.alves - at - engineer.com
- Eduardo Reis: eduardo.reis - at - engineer.com
Projeto Rawplay:
Muito obrigado e até a próxima.
Brasil TTS - A VOZ DO LINUX EM PORTUGUÊS
É um conjunto de sintetizadores de voz, em português do Brasil, que lê telas para portadores de deficiência visual. Transforma texto em áudio, permitindo que pessoas cegas ou com baixa visão tenham acesso ao conteúdo exibido na tela. Embora o principal público-alvo de sistemas de conversão texto-fala – como o Brasil TTS – seja formado por pessoas com deficiência visual, esse tipo de programa pode ser usado por pessoas com dislexia e outras dificuldades de leitura, pessoas com deficiência severa de fala, bem como por crianças pré-alfabetizadas. Além de ser uma ferramenta de tecnologia assistiva - Acessibilidade no Linux - sintetizadores de voz podem ter ainda aplicações pedagógicas e de entretenimento.
Está sob a égide da licença: GPLv3
Acessem o GitHUB do projeto:
https://github.com/felipefacundes/brasiltts/">
https://github.com/felipefacundes/brasiltts/
O nascimento do projeto surgiu, justamente, para descomplicar o processo de instalação e configuração em qualquer distribuição Linux, vejam como é super simples:
Para ArchLinux:
git clone
https://github.com/felipefacundes/brasiltts
cd brasiltts
chmod +x INSTALL.sh
yes s | sh INSTALL.sh
orca -s
Escolha a voz, na guia "Voz" do Orca. E, tudo certo.
Também há suporte para outras distribuições acessem, o GitHUB, pois o guia de intalação é bem detalhado e simples no README
Site:
https://brasiltts.wordpress.com/
Blog:
https://brasiltts.blogspot.com/
O projeto conta com quatro vozes, três já incorporadas no projeto principal, já acima descrito. E também pode ser instalados individualmente.
Um dos projetos da Brasil TTS é a Guglina TTS
Que usa a API do Google, a famosa voz da Internet no seu Linux.
http://guglinatts.sourceforge.io/
https://github.com/felipefacundes/guglinatts
Há uma informação no site do projeto, que flui melhor a sintetização de voz no sistema, tendo apenas uma das vozes de sua preferência instalado, ao invés de todas.
Todas às quatro vozes, para uma instalação individual:
https://github.com/felipefacundes/guglinatts
https://github.com/felipefacundes/angelotts
https://github.com/felipefacundes/maricotatts
https://github.com/felipefacundes/nordestinotts