Si quieres que Discord hable texto en voz alta — ya seas un streamer enrutando el chat de Twitch a un canal de voz, un usuario que prefiere escribir, o un desarrollador construyendo una herramienta de narración personalizada — un bot text to speech para Discord es la solución correcta. Esta guía cubre todas las opciones prácticas disponibles en 2026: los bots alojados que puedes agregar con un solo clic, el comando TTS nativo de Discord, y un recorrido paso a paso para construir un bot personalizado con Discord.js y la API de ElevenLabs.
TL;DR
- El comando /tts nativo de Discord es del lado del cliente — reproduce audio a través de los altavoces del oyente, no a través del canal de voz.
- Streamcord TTS es la opción alojada más popular para streamers que quieren que el chat de Twitch se lea en canales de voz de Discord.
- Voicemod TTS proporciona voces especiales y de personajes a través de un bot administrado.
- Un bot Discord.js + ElevenLabs personalizado te da la mejor calidad de voz y control total, con un tiempo de construcción de menos de una hora.
- Los hotkeys para activar comandos TTS se pueden mapear a través de la configuración de atajos de Discord o mediante herramientas externas como AutoHotkey.
- VoxBooster se combina con bots TTS para flujos de trabajo híbridos donde deseas tanto narración de chat sintetizada como una voz en vivo modificada.
Por Qué Existen los Bots TTS y Qué Hacen Realmente
El comando /tts integrado de Discord se malinterpreta con frecuencia. Cuando escribes /tts hola, el cliente de escritorio de Discord lee ese texto en voz alta a través de tus altavoces usando el motor TTS local del sistema operativo. Otros usuarios en el canal no lo escuchan a través del canal de voz — solo lo escuchan si también tienen su propio TTS de Discord activado y su cliente lee el mensaje localmente.
Un bot TTS para Discord funciona de forma diferente. El bot es un proceso del lado del servidor con su propia conexión al canal de voz. Cuando se activa, sintetiza voz a partir de texto y transmite el audio resultante al interior del canal de voz. Todos en ese canal de voz lo escuchan, de la misma manera que escucharían a otro participante hablar. Esa distinción — local del cliente versus difusión del canal — es la razón por la que existen los bots para este caso de uso.
Escenarios comunes donde esto importa:
- Configuración de streaming: Estás en vivo en Twitch y quieres que los mensajes del chat de los espectadores se lean en voz alta en la llamada de voz de Discord que compartes con co-streamers.
- Accesibilidad: Un miembro del servidor no puede o prefiere no usar micrófono; el bot TTS les permite participar en discusiones de voz escribiendo.
- Anuncios: Un bot lee alertas de moderación, asignaciones de roles o mensajes programados en un canal sin un operador humano.
- Narración personalizada: Los desarrolladores construyen bots que narran eventos de juegos, puntuaciones o alertas en tiempo real usando voces de IA de alta calidad.
Opción 1: El Comando Nativo /tts de Discord
Antes de buscar un bot, verifica si el comando integrado de Discord cubre tus necesidades.
Cómo habilitarlo: En tu servidor, ve a Configuración del Servidor → Resumen → Habilitar Text-To-Speech. En la configuración Avanzada de tu canal, establece Permitir que cualquiera publique mensajes TTS (o restringe a roles específicos).
Cómo usarlo: En cualquier canal de texto con TTS habilitado, escribe /tts [tu mensaje]. Discord lee el mensaje en voz alta a través de los altavoces del receptor usando su motor TTS del SO.
Limitaciones:
- El audio va a los altavoces locales, no a la transmisión del canal de voz.
- La calidad de voz depende del motor TTS del SO del oyente (Microsoft David, Zira, etc. en Windows).
- Cada oyente debe tener TTS activado en Configuración → Accesibilidad → Permitir reproducción y uso del comando /tts.
Mejor para: Uso rápido de accesibilidad, o situaciones donde cada usuario solo necesita escuchar texto leído localmente — no para streaming o anuncios de grupo.
Opción 2: Bot TTS de Voicemod
Voicemod, conocido principalmente por su cambiador de voz de escritorio, opera un bot de Discord que lleva su biblioteca de voces a la funcionalidad de text-to-speech.
Qué ofrece:
- Una biblioteca de voces de personajes y especiales (robótica, caricatura, profunda y más).
- Interfaz simple de slash command:
/tts [voz] [mensaje]. - Sin subida de modelo de voz personalizado — estás limitado a la biblioteca de presets de Voicemod.
- Nivel gratuito disponible; las voces premium requieren una suscripción de Voicemod.
Configuración:
- Visita la página del bot de Discord de Voicemod y haz clic en Agregar al Servidor.
- Autoriza el bot con permisos de Conectar, Hablar y Leer Mensajes.
- Únete a un canal de voz en tu servidor.
- Usa
/ttsseguido del nombre de voz elegido y el texto del mensaje.
Limitaciones: La selección de voz está limitada a la biblioteca de Voicemod. Si necesitas una voz humana de sonido natural o una persona personalizada, esto no lo cubrirá.
Opción 3: Streamcord TTS para Streamers
Streamcord es el bot TTS de Discord preferido para streamers que quieren que los mensajes del chat de Twitch se lean en voz alta en un canal de voz de Discord. Conecta Twitch y Discord de forma nativa.
Qué ofrece:
- Conecta tu canal de Twitch a un canal de voz de Discord.
- Lee los mensajes del chat de Twitch en voz alta con voz, velocidad y tono configurables.
- Soporta TTS solo para suscriptores, cantos de puntos de canal como activadores TTS y filtrado de mensajes.
- Configuración mediante slash command y panel de control.
Configuración:
- Ve a streamcord.io y haz clic en Agregar a Discord.
- Autoriza en tu servidor con los permisos requeridos.
- Usa
/tts setupy sigue las instrucciones para vincular tu canal de Twitch y seleccionar un canal de voz de Discord objetivo. - Configura los ajustes de voz en streamcord.io/dashboard.
Enrutamiento del canal de voz: Streamcord se une al canal de voz que especificas durante la configuración. Puedes cambiar el canal objetivo a través del panel sin volver a invitar al bot. Para que te siga entre canales, usa el comando /tts move.
Configuración de hotkeys para Streamcord: Streamcord en sí no tiene un sistema de hotkeys de escritorio dedicado. Los streamers típicamente vinculan una tecla Push-to-Talk en Discord para su propio micrófono, luego usan un atajo de teclado separado en OBS o StreamDeck para activar comandos de chat. Para un control más granular, los scripts de AutoHotkey pueden enviar comandos /tts mediante atajos de teclado simulando entrada de Discord.
Opción 4: Bot Personalizado con Discord.js + API de ElevenLabs
Para la mayor calidad de voz y control completo sobre el comportamiento, construye tu propio bot TTS de Discord usando Discord.js v14 y la API de ElevenLabs. Esto te da acceso a las voces de calidad estudio de ElevenLabs, clonación de voz, síntesis multilingüe y ajuste de parámetros por solicitud.
Prerrequisitos
- Node.js 18+
- Una aplicación Discord y token de bot (discord.com/developers)
- Una clave API de ElevenLabs (elevenlabs.io)
- FFmpeg instalado y en tu PATH (requerido por @discordjs/voice para codificación de audio)
Paso 1: Inicializar el Proyecto
mkdir discord-tts-bot && cd discord-tts-bot
npm init -y
npm install discord.js @discordjs/voice @discordjs/opus elevenlabs libsodium-wrappers ffmpeg-static
Paso 2: Registrar el Slash Command
Crea deploy-commands.js:
const { REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [
new SlashCommandBuilder()
.setName('tts')
.setDescription('Habla texto en tu canal de voz')
.addStringOption(opt =>
opt.setName('text').setDescription('Texto a hablar').setRequired(true)
)
].map(cmd => cmd.toJSON());
const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN);
(async () => {
await rest.put(
Routes.applicationGuildCommands(process.env.CLIENT_ID, process.env.GUILD_ID),
{ body: commands }
);
console.log('Comandos registrados');
})();
Ejecuta node deploy-commands.js una vez para registrar el slash command /tts en tu servidor.
Paso 3: Construir el Bot
Crea index.js:
const { Client, GatewayIntentBits } = require('discord.js');
const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus } = require('@discordjs/voice');
const { ElevenLabsClient } = require('elevenlabs');
const { Readable } = require('stream');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates] });
const eleven = new ElevenLabsClient({ apiKey: process.env.ELEVENLABS_API_KEY });
const VOICE_ID = 'your-elevenlabs-voice-id';
client.on('interactionCreate', async interaction => {
if (!interaction.isChatInputCommand() || interaction.commandName !== 'tts') return;
const text = interaction.options.getString('text');
const voiceChannel = interaction.member?.voice?.channel;
if (!voiceChannel) {
return interaction.reply({ content: 'Únete a un canal de voz primero.', ephemeral: true });
}
await interaction.deferReply({ ephemeral: true });
const audioStream = await eleven.textToSpeech.convertAsStream(VOICE_ID, {
text,
model_id: 'eleven_multilingual_v2',
voice_settings: { stability: 0.5, similarity_boost: 0.75 }
});
const connection = joinVoiceChannel({
channelId: voiceChannel.id,
guildId: interaction.guildId,
adapterCreator: interaction.guild.voiceAdapterCreator,
});
const player = createAudioPlayer();
const resource = createAudioResource(Readable.from(audioStream));
player.play(resource);
connection.subscribe(player);
player.on(AudioPlayerStatus.Idle, () => connection.destroy());
await interaction.editReply({ content: 'Hablando.' });
});
client.login(process.env.DISCORD_TOKEN);
Elegir un Modelo de Voz
ElevenLabs ofrece varios modelos en 2026:
| Modelo | Latencia | Calidad | Idiomas |
|---|---|---|---|
| eleven_turbo_v2_5 | ~250ms | Buena | 32 |
| eleven_multilingual_v2 | ~400ms | Excelente | 29 |
| eleven_flash_v2_5 | ~75ms | Buena | 32 |
Para uso en Discord en tiempo real, eleven_flash_v2_5 minimiza el retraso entre el comando y la voz. Para narración con prioridad de calidad, eleven_multilingual_v2 es la mejor opción.
Enrutamiento del Canal de Voz: Patrones Prácticos
Independientemente del bot que uses, el enrutamiento del canal de voz sigue los mismos patrones básicos.
Patrón seguir-al-usuario: El bot se une al canal de voz en el que se encuentra el usuario que invoca el comando. Este es el predeterminado para la mayoría de los bots y la implementación en el ejemplo de Discord.js anterior.
Patrón de canal fijo: Designas un ID de canal específico en la configuración del bot. El bot siempre habla en ese canal independientemente de dónde esté el usuario que invoca. Mejor para bots de anuncios o salas TTS dedicadas.
Patrón multi-canal: Una configuración más compleja donde diferentes canales de texto se mapean a diferentes canales de voz. En Discord.js, lo implementas con un objeto de mapeo de canales.
Patrón de seguimiento dinámico: El bot monitorea eventos voiceStateUpdate y se mueve para seguir a un usuario designado entre canales de voz. Útil para streamers que frecuentemente cambian de sala durante una sesión.
Configuración de Hotkeys para Comandos TTS
La mayoría de los bots TTS se activan mediante slash commands, no hotkeys. Pero puedes crear flujos de trabajo efectivos con hotkeys con algunos enfoques.
Atajos integrados de Discord: Ve a Configuración de Discord → Atajos de Teclado. No puedes vincular comandos de texto arbitrarios aquí — solo acciones de Discord como push-to-talk, silenciar, etc.
AutoHotkey (Windows): Puedes mapear un hotkey para escribir un comando /tts [mensaje preestablecido] y presionar Enter en la ventana de Discord:
^F1:: ; Ctrl+F1
WinActivate, Discord
Send, /tts Tu mensaje preestablecido aquí{Enter}
return
StreamDeck: Si usas un Elgato StreamDeck, la acción “Text” puede enviar pulsaciones de teclas a cualquier ventana activa. Configura un botón de StreamDeck para enfocar la entrada de texto de Discord y escribir tu comando /tts.
Palabras clave del bot: Para bots personalizados, puedes implementar un activador de prefijo en un canal de texto en lugar de un slash command — cualquier mensaje en un canal designado que comience con un prefijo configurado se envía automáticamente a TTS.
Flujos de Trabajo Híbridos: Bots TTS + Modificador de Voz en Vivo
Un bot TTS maneja síntesis de voz desde texto. No toca tu micrófono. Esto significa que los bots TTS y los modificadores de voz en vivo como VoxBooster coexisten sin conflicto en el mismo canal de voz.
Una configuración híbrida práctica para streamers:
- Streamcord TTS lee los mensajes de tu chat de Twitch en voz alta en el canal de voz de Discord que comparten tus co-streamers.
- VoxBooster modifica tu voz de micrófono en vivo en tiempo real — ya sea supresión de ruido, un efecto de tono o una persona de voz clonada.
- Tus co-streamers escuchan ambos: el bot TTS hablando mensajes de espectadores, y tu voz en vivo modificada.
Las dos transmisiones de audio son independientes. El bot TTS genera audio desde su propia conexión. Tu audio de micrófono pasa por el dispositivo virtual de VoxBooster antes de llegar a Discord. Discord los mezcla de la misma manera que mezcla a cualquier dos participantes en un canal.
Este enfoque híbrido es particularmente efectivo para creadores de contenido que quieren un entorno de audio más rico sin requerir que espectadores o co-streamers instalen nada más allá de Discord.
Solución de Problemas Comunes
El bot se une pero no produce audio: Verifica que FFmpeg esté en tu PATH y que @discordjs/opus se haya instalado correctamente. Ejecuta ffmpeg -version en una terminal para verificar.
El comando TTS tiene latencia alta: La latencia de la API de ElevenLabs depende del modelo elegido y la longitud del texto de entrada. Cambia a eleven_flash_v2_5 para menor latencia. Para mensajes de más de ~200 caracteres, considera dividir el texto antes de enviarlo.
El bot se desconecta a mitad de la reproducción: Esto suele ser un timeout de la conexión de voz. Agrega un manejador connection.on('error') y reconéctate en caso de fallo.
Streamcord TTS no lee todos los mensajes: Streamcord filtra ciertos tipos de mensajes por defecto. Verifica tu panel de Streamcord en Filtros para permitir mensajes de no-suscriptores.
El comando /tts de Discord no funciona: Confirma que TTS esté habilitado en la configuración de tu servidor y que el canal específico permita TTS. Los usuarios individuales también necesitan la reproducción TTS habilitada en su propia configuración de Accesibilidad de Discord.
Resumen
En 2026, configurar un bot TTS para Discord toma desde dos minutos (Streamcord o Voicemod) hasta menos de una hora (Discord.js + ElevenLabs personalizado). La opción correcta depende de tus requisitos de calidad de voz, cuánta personalización necesitas y si estás construyendo para tu propio servidor o para una configuración de streaming en producción. El /tts nativo de Discord cubre la reproducción básica del lado del cliente sin ningún bot. Los bots alojados como Streamcord cubren el caso de uso del streamer con configuración mínima. Un bot Discord.js personalizado con ElevenLabs te da voces de IA de calidad estudio con control programático completo sobre cada aspecto del habla.
Para la configuración de audio de streaming más versátil, combina un bot TTS para narración de chat con VoxBooster para modificación de voz en vivo — dos herramientas, un canal de voz, cero conflictos.