O Gravity Text-to-Speech Module V2 é uma placa compacta de síntese de voz da DFRobot que permite aos desenvolvedores converter texto em fala audível em inglês ou chinês com facilidade. Equipado com um altifalante incorporado e suportando comunicações I2C e UART, o módulo oferece uma solução plug-and-play para projetos que necessitam de saída falada.
Neste tutorial, vamos mostrar tudo o que precisa para começar, desde a ligação dos fios e instalação da biblioteca até ao código de exemplo.
Peças Necessárias
Para este tutorial, só vai precisar do Gravity Text-to-Speech Module. Pode adquiri-lo na DFRobot, por exemplo. No entanto, certifique-se de obter a versão V2.x.

Gravity Text-to-Speech Module

Arduino Uno

USB Cable for Arduino UNO

Dupont Wire Set

Breadboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Hardware do Gravity Text-to-Speech Module
O Gravity Text-to-Speech Module V2 foi concebido para fornecer síntese de voz com requisitos mínimos de hardware externo. Suporta inglês e chinês e pode misturar ambas as línguas numa única saída. A placa inclui um altifalante incorporado, pelo que não é necessário amplificador ou altifalante externo para saída de voz básica.

A comunicação com um controlador anfitrião (como Arduino, ESP32, Raspberry Pi ou outras plataformas populares de microcontroladores) pode ser feita via I2C ou UART. A interface I2C do módulo tem um endereço fixo (0x40).
O módulo aceita uma tensão de alimentação entre 3,3 V e 5 V, tornando-o compatível com a maioria das placas de microcontroladores comuns. A corrente típica de operação é inferior a 50 mA, o que mantém o consumo de energia gerível para projetos alimentados por bateria.
On the software side, the module supports “text control identifiers” embedded inside the text string sent for synthesis. These identifiers allow dynamic configuration of voice parameters such as volume, speed, tone (intonation), and voice-type (speaker voice), giving developers some control over speech characteristics. For example, one can send something like “[v3]Hello [v8]world” to adjust volume mid-sentence.
Especificações Técnicas
A tabela seguinte resume as especificações técnicas do Gravity Text-to-Speech Module V2.0:
| Parâmetro | Especificação |
|---|---|
| Nome do Produto | Gravity: Text to Speech Module V2.0 (DFR0760) |
| Línguas Suportadas | Inglês e Chinês (suporta síntese em línguas mistas) |
| Interfaces de Comunicação | I2C (endereço 0x40), UART |
| Tensão de Alimentação | 3,3 V a 5,0 V |
| Corrente Típica de Operação | < 50 mA |
| Temperatura de Operação | –40 °C a +85 °C |
| Saída de Áudio | Altifalante integrado na placa |
| Configuração de Voz | Velocidade, volume, tom e tipo de voz ajustáveis via identificadores de controlo embutidos |
| Dimensões | Aproximadamente 42 mm × 32 mm |
| Tipo de Interface | Conector Gravity de 4 pinos (VCC, GND, SDA/RX, SCL/TX) |
| Melhorias na Versão do Módulo | Clareza de fala melhorada e redução de erros de pronúncia comparado com a V1 |
Instalar a Biblioteca DFRobot_SpeechSynthesis_V2
Antes de poder usar o Gravity Text-to-Speech Module, precisa primeiro de instalar a biblioteca DFRobot_SpeechSynthesis_V2 da DFRobot. Vá ao github repo e clique no botão verde “<> Code” e depois em “Download ZIP”:

Isto vai descarregar a biblioteca como um ficheiro zip chamado “DFRobot_SpeechSynthesis_V2-main.zip” para o seu computador.
De seguida, abra o seu Arduino IDE e vá a “Sketch -> Include Library -> Add .ZIP Library …” como mostrado abaixo:

Finalmente, selecione o ficheiro “DFRobot_SpeechSynthesis_V2-main.zip” quando solicitado e instale a biblioteca.
Ligar o Gravity Text-to-Speech Module ao Arduino
Ligar o Gravity Text-to-Speech Module a um Arduino ou ESP32 é fácil. Comece por ligar o terra do Arduino ao pino GND do módulo de voz. Depois ligue o pino VCC à saída de 3,3V ou 5V do Arduino. Por fim, ligue o SCL ao C/R e o SDA ao D/T conforme mostrado abaixo:

Note que também pode ligar o módulo de voz via a interface UART. Mas a comunicação I2C é mais rápida e mantém a interface serial livre.
Exemplo de Código
O exemplo de código seguinte faz o módulo dizer o texto “This is a test”. Também define parâmetros como volume, velocidade e tom da saída de voz. Dê uma vista rápida ao código completo primeiro e depois entramos nos detalhes.
#include "Wire.h"
#include "DFRobot_SpeechSynthesis_V2.h"
DFRobot_SpeechSynthesis_I2C ss;
void setup() {
ss.begin();
ss.setVolume(1);
ss.setSpeed(4);
ss.setTone(6);
ss.setEnglishPron(ss.eWord);
}
void loop() {
ss.speak("This is a test");
delay(10000);
}
Importações
No topo do programa, são incluídos dois ficheiros de cabeçalho para fornecer acesso às bibliotecas necessárias. A biblioteca Wire permite comunicação I2C em placas compatíveis com Arduino, enquanto a biblioteca DFRobot_SpeechSynthesis_V2 contém todas as funções necessárias para controlar o Gravity Text-to-Speech Module via I2C.
#include "Wire.h" #include "DFRobot_SpeechSynthesis_V2.h"
Incluir estas bibliotecas permite que o sketch inicialize o módulo, envie comandos e configure os parâmetros de fala.
Objetos
O código cria um objeto de síntese de voz chamado ss, que representa o módulo Text-to-Speech ligado via I2C. Este objeto fornece métodos como begin, setVolume, setSpeed, e speak.
DFRobot_SpeechSynthesis_I2C ss;
Instanciar este objeto permite que o sketch interaja com o hardware através de uma API simples e de alto nível.
Setup
A função setup é executada uma vez quando a placa é ligada ou reiniciada. Configura o módulo de voz e prepara-o para saída falada. A sequência de inicialização começa por chamar begin, que estabelece a comunicação e desperta o módulo.
ss.begin();
Após a inicialização, o programa configura várias propriedades da fala. A função setVolume ajusta o volume da voz sintetizada, onde valores mais baixos produzem saída mais baixa e valores mais altos produzem fala mais alta.
ss.setVolume(1);
De seguida, a função setSpeed modifica a velocidade com que o módulo fala. Um valor de velocidade mais alto resulta em fala mais rápida, enquanto um valor mais baixo a torna mais lenta.
ss.setSpeed(4);
O código define então o tom, que afeta a altura e entoação da voz falada. Ajustar o tom permite afinar o quão aguda ou grave a voz soa. Níveis mais baixos também soam mais robóticos.
ss.setTone(6);
Finalmente, o programa configura o modo de pronúncia em inglês. A biblioteca oferece diferentes estratégias de pronúncia, e selecionar ss.eWord instrui o módulo a usar regras de pronúncia ao nível das palavras.
ss.setEnglishPron(ss.eWord);
Depois de aplicadas estas definições, o módulo está totalmente configurado e pronto para sintetizar fala.
Loop
A função loop é executada continuamente e dispara a saída de voz em intervalos regulares. Cada vez que o loop corre, a função speak envia uma string de texto para o módulo, que a converte em fala audível.
ss.speak("This is a test");
Como a reprodução da fala não deve ser repetida continuamente, o programa inclui um atraso para pausar a execução por dez segundos. Isto garante que a mensagem é falada apenas uma vez por ciclo.
delay(10000);
O loop repete-se indefinidamente, fazendo com que o módulo fale a mesma frase a cada dez segundos até que a placa seja reiniciada ou desligada.
Conclusões
Neste tutorial aprendeu a ligar o Gravity Text-to-Speech Module a um Arduino UNO. Ao contrário dos serviços de Text-to-Speech baseados na cloud como o ElevenLabs, este realiza toda a síntese localmente no dispositivo, o que significa que não requer ligação à internet, evita custos de API e oferece respostas imediatas com baixa latência.
O módulo suporta inglês e chinês, pode misturar línguas sem problemas e permite ajuste em tempo real do volume, velocidade, tom e pronúncia através de códigos de controlo simples. As suas interfaces I2C e UART facilitam a integração com Arduino, ESP32 e microcontroladores similares.
Por outro lado, a qualidade da fala e do som não é tão boa como a do ElevenLabs, por exemplo. Além disso, o número de vozes é limitado e a voz em inglês tem um sotaque chinês distinto. No entanto, se precisar de uma solução offline e não exigir fala com som natural, o Gravity Text-to-Speech Module é uma opção.
Para soluções de reconhecimento de voz e speech-to-text, dê uma vista de olhos aos nossos Getting started with Gravity Voice Recognition Module, o Using the Voice Recognition Module V3 with Arduino e os Voice control with XIAO-ESP32-S3-Sense and Edge Impulse tutoriais.
Boas experiências a criar ; )

