Raspberry Pi falante: conheça o Text to Speech 7

O Text to Speech é, como o próprio nome sugere, transformar uma frase, palavra ou texto escrito em áudio. Trata-se de um recurso valioso em sistemas de automação, domótica e até mesmo acessibilidade (para deficientes visuais, por exemplo), afinal esta técnica pode tornar muito mais simples e intuitiva a interface com tais sistemas.

Este post irá abordar o uso deste recurso na Raspberry PI 3, utilizando linguagem Python. Ou seja, após ler este artigo, você poderá fazer seus projetos falarem. E o melhor: em muitas línguas diferentes!

Material necessário

Para reproduzir este projeto, você precisará de:

  • Uma placa Raspberry PI 3
  • Um fone de ouvido ou caixa de som de computador com conector P2

Assume-se neste tutorial que sua Raspberry PI está totalmente funcional, ou seja, com sistema operacional instalado e rodando (Raspbian) e conectividade à Internet funcionando.

Biblioteca de Text to Speech (gTTS) – instalação

Para fazer o Text to Speech, será usada a biblitoeca gTTS. Na verdade, esta biblioteca opera como uma interface Python para a API Text to Speech do Google, traduzindo algo escrito, para um áudio no formato mp3. Tal áudio, quando tocado, irá dizer exatamente o que havia no texto. Portanto, você irá dispor da mesma qualidade, voz e versatilidade do Text to Speech comum do Google em seus projetos. Google Text to Speech Para instalar tal biblioteca / interface para API do Google Text to Speech, execute o seguinte comando no terminal Linux de sua Raspberry PI:

sudo pip install gTTS

Além dela, para tocar o arquivo mp3 (com o áudio correspondente ao texto escrito), iremos utilizar o player mpg321. Tal player é muito leve e atende perfeitamente este projeto. Para instalá-lo, utilize o comando abaixo:

sudo apt-get install mpg321

 

Pontos de atenção com a biblioteca gTTS

Abaixo estão alguns pontos de atenção sobre o uso desta biblioteca:

  • Pelo fato da biblioteca ter como “retorno” um arquivo mp3 (com o áudio correspondente ao texto escrito), não é aconselhável salva-lo em memória Flash / cartão SD. O motivo é que, como qualquer memória Flash, o cartão SD tem um limite de ciclos de escrita. Portanto se o salvamento de arquivos for muito frequente no cartão SD, corre-se o risco de danifica-lo parcialmente.
    Para resolver este problema, utilizo aqui um artifício: salvar os áudios no diretório /tmp. A razão disso é que, na arquitetura Linux, este diretório é mapeado em memória RAM. Como a memória RAM não possui a limitação de ciclos de escrita presente na Flash, esta é uma alternativa ideal para a vida útil da placa como um todo. O único porém desta técnica é que, como a memória RAM é volátil, após o desligamento tudo em memória RAM é perdido (algo que não deve ser relevante para a maioria das situações, já que o arquivo normalmente será usado para “dizer” um texto em um único momento / situação).
  • Assim como na API Text to Speech do Google, aqui existe suporte a diversos idiomas. A lista completa dos idiomas suportados e seus correspondentes códigos de idioma a serem utilizados no script Python podem ser obtidos neste endereço: https://github.com/pndurette/gTTS

Text to Speech (gTTS) – fazendo sua Raspberry PI falar

Chegou a hora de fazer sua Raspberry PI falar! Para isso, copie o código-fonte a seguir e salve-o em um arquivo chamado ExemploGTTS.py na sua Raspberry:

from gtts import gTTS
import os

#em text, informe o texto a ser dito. Evite usar acentuacao.
AudioDoTexto = gTTS(text='A Raspberry PI agora fala!', lang='pt')  #pt eh o codigo de idioma correspondente ao Portugues. 
                                                                   #Aqui pode ser utilizado qualquer um dos codigos de idioma citados anteriormente neste post.
AudioDoTexto.save("/tmp/audio.mp3")
os.system("mpg321 /tmp/audio.mp3")

Para ouvir sua Raspberry PI falar, plugue o seu fone de ouvido ou caixa de som na saída de som da Raspberry PI e execute o seguinte comando:

python ExemploGTTS.py

Olha o projeto funcionando!

Observações

Abaixo estão algumas observações importantes no uso da biblioteca gTTS:

  • Devido a ser um pouco pesada, a importação da biblioteca pode demorar alguns segundos.
  • Por usar a API do Google Text to Speech, toda a parte de processamento do texto em áudio é feita on-line. Portanto, é necessário ter conectividade com a Internet para fazer o Text to Speech.
  • A velocidade de sua conexão Internet influencia no tempo de resposta (tempo entre solicitar o arquivo de áudio e obtê-lo).

Gostou do projeto Text to Speech com Raspberry Pi? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

7 Comentários

  1. Boa tarde, gostaria de saber se tem como utilizar a voz que existe no sistema operacional?

    1. Olá Martini,

      Até onde encontrei não há voz padrão no sistema operacional, mas existem outros mecanismo de Text To Speech (TTS) como o eSpeak: https://espeak.sourceforge.net/

      Abraços!
      Vinícius – Equipe MakerHero

      1. Agradeço Vinicius

  2. Muito bom! Estou sempre tentando aprender essas coisas,
    mas preciso melhorar o entendimento ainda. Facilitar passar
    nos testes

  3. Estou tendo um probleminha e que no python 3.6 que estou usando não reconhece o módulo, o que será que posso fazer para resolver ?

  4. Pedro, boa noite. Muito bom o material, sou iniciante nesta plataforma. Um forte abraço.

    1. André, muito obrigado pelo elogio!