Seu Linux falando português nativamente

Publicado por Leandro Santiago em 04/01/2007

[ Hits: 25.503 ]

Blog: http://leandrosan.wordpress.com

 


Seu Linux falando português nativamente



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.

Outras dicas deste autor

Criando programas com opções

Instalando programas no Linux sem ter poderes de root

Controlando o amarok pela linha-de-comando

Editando documentos em formato PDF com o Koffice

Acessando mais que 9 parâmetros em shell script

Leitura recomendada

Crunchbang ressuscitou! Link para download

trash-cli - use o comando rm a seu favor

GNU é o ca*****!

Flite - um sintetizador de voz pequeno e simples

Wallpapers para todos os gostos...

  

Comentários
[1] Comentário enviado por xxtiagoxx em 04/01/2007 - 15:06h

Muito legal esse programa

[2] Comentário enviado por imhotep em 06/01/2007 - 21:53h

Não testei, mas se for melhor que esses leitores que usamos hj...quem tem deficiência visual quase não entende, já que são configurados para o inglês...

[3] Comentário enviado por tsouza em 22/05/2007 - 10:38h

Fera.

Mto bom seu artigo, estou testando ele aqui, achei um erro no link do rawplay.
Ai vai o link correto
http://ufpr.dl.sourceforge.net/sourceforge/rawrec/rawrec-0.9.991.tar.gz

[4] Comentário enviado por skaterzera em 24/01/2008 - 17:29h

hehehe muito legal ;)

[5] Comentário enviado por Maion em 06/07/2009 - 07:54h

Muito bom!!! Obrigado!!! Gostei muito! ;)

[6] Comentário enviado por Mauro Sérgio em 12/10/2009 - 15:07h

Adorei seu artigo. Eu o testei como uma receita. E funcionou normalmente no Ubuntu.
Realmente parabéns Leandro Santiago.

[7] Comentário enviado por guimfonseca em 19/11/2010 - 11:10h

./rawplay: could not open /dev/dsp for writing: No such file or directory

Sistema: ubuntu 10.10

[8] Comentário enviado por rodrigosilva em 27/04/2013 - 16:26h

Para quem está com o problema:

could not open /dev/dsp for writing: No such file or directory

Utilize o comando padsp:

echo "O rato roeu a roupa do rei de roma" | padsp ./ttp_p.pl

[9] Comentário enviado por felipe.facundes em 10/04/2019 - 03:15h

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





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts