El Gravity Text-to-Speech Module V2 es una placa compacta de síntesis de voz de DFRobot que permite a los desarrolladores convertir texto en habla audible fácilmente, en inglés o chino. Equipado con un altavoz integrado y compatible con comunicaciones I2C y UART, el módulo ofrece una solución plug-and-play para proyectos que requieren salida hablada.
En este tutorial, repasaremos todo lo que necesitas para empezar, desde el cableado y la instalación de la biblioteca hasta el código de ejemplo.
Piezas necesarias
Para este tutorial necesitarás el Gravity Text-to-Speech Module. Puedes conseguirlo en DFRobot, por ejemplo. Sin embargo, asegúrate de obtener la versión 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 del Gravity Text-to-Speech Module
El Gravity Text-to-Speech Module V2 está diseñado para ofrecer síntesis de voz con requisitos mínimos de hardware externo. Soporta inglés y chino, y puede mezclar ambos idiomas en una sola salida. La placa incluye un altavoz integrado, por lo que no se necesita amplificador ni altavoz externo para una salida básica de voz.

La comunicación con un controlador host (como Arduino, ESP32, Raspberry Pi u otras plataformas populares) puede hacerse vía I2C o UART. La interfaz I2C del módulo tiene una dirección fija (0x40).
El módulo acepta un voltaje de alimentación entre 3.3 V y 5 V, haciéndolo compatible con la mayoría de placas microcontroladoras comunes. La corriente típica de operación es inferior a 50 mA, manteniendo el consumo adecuado para proyectos con batería.
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.
Especificaciones técnicas
La siguiente tabla resume las especificaciones técnicas del Gravity Text-to-Speech Module V2.0:
| Parámetro | Especificación |
|---|---|
| Nombre del producto | Gravity: Text to Speech Module V2.0 (DFR0760) |
| Idiomas soportados | Inglés y chino (soporta síntesis en idiomas mezclados) |
| Interfaces de comunicación | I2C (dirección 0x40), UART |
| Voltaje de alimentación | 3.3 V a 5.0 V |
| Corriente típica de operación | < 50 mA |
| Temperatura de operación | –40 °C a +85 °C |
| Salida de audio | Altavoz integrado en la placa |
| Configuración de voz | Velocidad, volumen, tono y tipo de voz ajustables mediante identificadores de control integrados |
| Dimensiones | Aproximadamente 42 mm × 32 mm |
| Tipo de interfaz | Conector Gravity de 4 pines (VCC, GND, SDA/RX, SCL/TX) |
| Mejoras de la versión del módulo | Mayor claridad en la voz y reducción de errores de pronunciación comparado con la V1 |
Instalar la biblioteca DFRobot_SpeechSynthesis_V2
Antes de poder usar el Gravity Text-to-Speech Module, primero debes instalar la DFRobot_SpeechSynthesis_V2 biblioteca de DFRobot. Ve a github repo y haz clic en el botón verde «<> Code» y luego en «Download ZIP»:

Esto descargará la biblioteca como un archivo zip llamado «DFRobot_SpeechSynthesis_V2-main.zip» en tu ordenador.
Luego abre tu Arduino IDE y ve a «Sketch -> Include Library -> Add .ZIP Library …» como se muestra a continuación:

Finalmente, selecciona el archivo «DFRobot_SpeechSynthesis_V2-main.zip» cuando se te pida e instala la biblioteca.
Conectar el Gravity Text-to-Speech Module a Arduino
Conectar el Gravity Text-to-Speech Module a un Arduino o ESP32 es sencillo. Comienza conectando la tierra del Arduino con el pin GND del módulo de voz. Luego conecta el pin VCC a la salida de 3.3V o 5V del Arduino. Finalmente, conecta SCL a C/R y SDA a D/T como se muestra a continuación:

Ten en cuenta que también puedes conectar el módulo de voz vía la interfaz UART. Pero la comunicación I2C es más rápida y libera la interfaz Serial.
Ejemplo de código
El siguiente ejemplo de código hace que el módulo diga el texto «This is a test». También ajusta parámetros como volumen, velocidad y tono de la salida de voz. Echa un vistazo rápido al código completo primero y luego entraremos en detalles.
#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);
}
Importaciones
Al inicio del programa se incluyen dos archivos de cabecera para acceder a las bibliotecas necesarias. La biblioteca Wire habilita la comunicación I2C en placas compatibles con Arduino, mientras que la biblioteca DFRobot_SpeechSynthesis_V2 contiene todas las funciones para controlar el Gravity Text-to-Speech Module vía I2C.
#include "Wire.h" #include "DFRobot_SpeechSynthesis_V2.h"
Incluir estas bibliotecas permite que el sketch inicialice el módulo, envíe comandos y configure parámetros de voz.
Objetos
El código crea un objeto de síntesis de voz llamado ss, que representa el módulo de texto a voz conectado por I2C. Este objeto ofrece métodos como begin, setVolume, setSpeed y speak.
DFRobot_SpeechSynthesis_I2C ss;
Instanciar este objeto permite que el sketch interactúe con el hardware mediante una API simple y de alto nivel.
Setup
La función setup se ejecuta una vez al encender o resetear la placa. Configura el módulo de voz y lo prepara para la salida hablada. La secuencia de inicialización comienza llamando a begin, que establece la comunicación y despierta el módulo.
ss.begin();
Tras la inicialización, el programa configura varias propiedades de la voz. La función setVolume ajusta el volumen de la voz sintetizada, donde valores bajos producen salida más baja y valores altos una voz más fuerte.
ss.setVolume(1);
Luego, la función setSpeed modifica la velocidad de habla del módulo. Un valor más alto resulta en habla más rápida, mientras que un valor bajo la ralentiza.
ss.setSpeed(4);
El código luego ajusta el tono, que afecta la altura e entonación de la voz hablada. Ajustar el tono permite afinar qué tan aguda o grave suena la voz. Niveles bajos también suenan más robóticos.
ss.setTone(6);
Finalmente, el programa configura el modo de pronunciación en inglés. La biblioteca ofrece diferentes estrategias de pronunciación, y seleccionar ss.eWord indica al módulo usar reglas de pronunciación a nivel de palabra.
ss.setEnglishPron(ss.eWord);
Después de aplicar estos ajustes, el módulo está completamente configurado y listo para sintetizar voz.
Loop
La función loop se ejecuta continuamente y activa la salida de voz a intervalos regulares. Cada vez que se ejecuta el loop, la función speak envía una cadena de texto al módulo, que la convierte en voz audible.
ss.speak("This is a test");
Como la reproducción de voz no debe repetirse continuamente, el programa incluye un retardo que pausa la ejecución durante diez segundos. Esto asegura que el mensaje se pronuncie solo una vez por ciclo.
delay(10000);
El loop se repetirá indefinidamente, haciendo que el módulo hable la misma frase cada diez segundos hasta que la placa se reinicie o apague.
Conclusiones
En este tutorial aprendiste a conectar el Gravity Text-to-Speech Module con un Arduino UNO. A diferencia de servicios de texto a voz basados en la nube como ElevenLabs, realiza toda la síntesis localmente en el dispositivo, lo que significa que no requiere conexión a internet, evita costes de API y ofrece respuestas inmediatas y con baja latencia.
El módulo soporta inglés y chino, puede mezclar idiomas sin problemas y permite ajustar en tiempo real volumen, velocidad, tono y pronunciación mediante códigos de control simples. Sus interfaces I2C y UART facilitan la integración con Arduino, ESP32 y microcontroladores similares.
Por otro lado, la calidad de voz y sonido no es tan buena como ElevenLabs, por ejemplo. Además, el número de voces es limitado y la voz en inglés tiene un acento chino distintivo. Sin embargo, si necesitas una solución offline y no requieres voz natural, el Gravity Text-to-Speech Module es una opción.
Para soluciones de reconocimiento de voz y voz a texto, echa un vistazo a nuestros Getting started with Gravity Voice Recognition Module, el Using the Voice Recognition Module V3 with Arduino y los tutoriales Voice control with XIAO-ESP32-S3-Sense and Edge Impulse.
¡Feliz bricolaje ; )

