Text to speech com Raspberry Pi

Existem inúmeras possibilidade de uso de text to speech com Raspberry, nem sei por onde começar, exceto pela configuração inicial no sistema e apresentação em vídeo.

Podemos fazer nossa aplicação gráfica e utilizar como auxiliar o recurso de text to speech com Raspberry utilizando o Festival ou PicoTTS para isso. Ou então, uma comunicação por RF, seja LoRa ou 2.4GHz com NRF24L01. Ou simplesmente enviar o texto por comando ssh. Podemos criar uma agenda de compromissos, falar as horas, ler twittes, ler mensagens do Telegram, monitorar status de serviços, fazer uma URA (Unidade de Resposta Audível com PBX Asterisk no Raspberry por esse artigo ou por esse) e mais uma vasta gama de coisas que podem ir de diversão à produto!

Vamos começar a diversão.

Pacotes para text to speech com Raspberry

Tem vários; vários mesmo. Nesse artigo vou discorrer sobre o Festival e PicoTTS, ambos de simples instalação e o segundo, de ótimo resultado!

Instale os pacotes:

sudo apt-get install festvox-don festlex-oald festival

Configurar a saída de áudio para HDMI

Se estiver utilizando o P2 para caixas de som (e estiver funcioando), deixe como está. Se desejar fazer o áudio sair pelo HDMI (por exemplo, conectado a uma TV), abra o programa e acesse raspi-config > Advanced Options > Audio > Force HDMI.

Text to speech com Raspberry - configurando áudio no HDMI

Eu não reiniciei o Raspberry e funcionou, portanto acredito não ser necessário, porém, entretanto e todavia, reinicie se não funcionar após os testes.

Pra finalizar essa parte, alguns cabos HDMI não dão suporte a CEC, áudio pelo HDMI etc. No pior dos casos, desconfie do cabo.

Executar text to speech com Raspberry

Hora de fazer o primeiro teste. No terminal, digite algo como:

echo "(message) this good tutorial was made by Dow bit all byte"| festival --tts

Esse “(message)” no começo é porque o processo está terminando antes da leitura. Por alguma razão, estendendo o texto conseguimos ouvir perfeitamente o restante.

Enviando comando por ssh sem se conectar ao Raspberry

Se quiser enviar remotamente o comando, pode optar por troca de chaves para não digitar a senha ou então seguir esse tutorial que escrevi há um bom tempo.

Para enviar pelo shell, basta executar:

ssh pi@devel2 echo "\(message\) this good tutorial was made by Dow bit all byte| festival --tts"

Pode fazer mesmo sem trocar chaves ou usar o tutorial supracitado. Assim que enviar o comando, será solicitada a senha. Em seguida, você ouvirá o áudio.

Text to Speech com Raspberry Pi e PicoTTS

O PicoTTS é a engine  do Android e o resultado é realmente espetacular!

Para instalar, faça:

sudo su
apt-get update
apt-get install libttspico-utils

Para reproduzir um texto em fala, utilize por exemplo:

pico2wave -w lookdave.wav "(message message) My name is Lisa and I am the best engine of tts available for Raspberry Pi. And I am free!" && aplay lookdave.wav

Tem duas vezes a palavra “message” mesmo. Não foi possível escapar disso. Mas se você assistir o vídeo, poderá ver a diferença entre as duas engines apresentadas nesse artigo.

Dica extra

Não tem muita relação com o artigo, mas aconteceu de o terminal entrar em descanso por estar muito tempo parado. Para religar o monitor sem precisar de teclado e mouse, execute esse comando por ssh, caso ocorra essa situação:

echo -ne "\033[9;0]" >/dev/tty1

Onde comprar Raspberry?

Nosso parceiro Curto Circuito tem vendido bastante, e consequentemente tem esgotado com frequência. Se tiver sorte, você poderá adquirir através desse link.

Os próximos tutoriais prometem, trarei boas surpresas!

Vídeo

O vídeo estará disponível em nosso canal DobitAoByteBrasil no Youtube, não deixe de assinar, clique no sininho para receber notificações e gratifique-nos com seu like!

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.