Raspberry Pi falante: conheça o Text to Speech Deixe um comentário

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 SpeechPara instalar tal biblioteca / interface para API do Google Text to Speech, execute o seguinte comando no terminal Linux de sua Raspberry PI:

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:

 

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:

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:

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. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *