Skip to content

jorgeb77/Qwen3-TTS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗣️ Qwen3-TTS - Text to Speech

Aplicación de escritorio para generación de voz sintetizada usando los modelos Qwen3-TTS y Qwen3-ASR de Alibaba. Soporta voces predefinidas en inglés, clonación de voz, voces permanentes creadas desde audio real y transcripción automática.


✨ Características

Voces Predefinidas (Inglés): Genera audio con las voces Ryan o Aiden ✅ Voces Diseñadas: Crea tu propia voz describiendo sus características en inglés — sin audio de referencia ✅ Clonación de Voz: Clona cualquier voz a partir de un audio de referencia (mínimo 3 segundos) ✅ Voces Clonadas Permanentes: Crea una voz permanente desde un audio real — queda guardada en "Mis Voces" y se puede usar sin necesitar el audio de referencia original ✅ Transcripción Automática (ASR): Transcribe el audio de referencia automáticamente con Qwen3-ASR-1.7B ✅ Idiomas: Español, Inglés y otros idiomas soportados por Qwen3-TTS / Qwen3-ASR ✅ GPU Acelerada: Usa CUDA para generación rápida en tarjetas NVIDIA ✅ Interfaz Intuitiva: Aplicación Windows con interfaz gráfica fácil de usar


💻 Requisitos del Sistema

Hardware Mínimo

Componente Mínimo Recomendado
RAM 16 GB 32 GB o más
GPU NVIDIA 6 GB VRAM 8 GB VRAM o más
Almacenamiento 10 GB libres 20 GB libres
CPU 4 núcleos 8 núcleos o más

Hardware Probado

  • RAM: 64 GB
  • GPU: NVIDIA RTX 5080 (16 GB VRAM)
  • Modelos: ~4 GB en VRAM por modelo TTS con bfloat16 → ~14 GB con todos los modelos activos

Software Requerido

  • Sistema Operativo: Windows 10/11 (64-bit)
  • Python: No requiere instalación — se usa Python 3.11 embeddable incluido en el proyecto
  • Controladores NVIDIA: Actualizados (driver 550+ recomendado)

Nota sobre CUDA: No es necesario tener CUDA instalado en el sistema. PyTorch incluye su propio runtime de CUDA. Solo se requiere el driver de NVIDIA actualizado.


📥 Instalación

Paso 1: Copiar la Aplicación

Copia la carpeta completa de la aplicación a la PC destino.

Tip de Portabilidad: Si ya tienes los modelos descargados (carpeta Models/), cópialos también para evitar descargarlos nuevamente (~7 GB).

La estructura debe ser:

Qwen3-TTS/
├── Qwen3TTS.exe             # Ejecutable principal
├── setup_venv.bat           # Script de instalacion (ejecutar una vez)
├── reinstall_pytorch.bat    # Script para reinstalar PyTorch si hay problemas
├── config.ini               # Configuracion (se crea automaticamente)
├── Python/
│   ├── qwen3_tts.py         # Script de generacion (modo directo)
│   ├── qwen3_tts_server.py  # Servidor con modelos en VRAM
│   └── embed/               # Python 3.11 embeddable (se crea con setup_venv.bat)
├── Models/                  # Modelos de IA (se descargan automaticamente aqui)
├── Audio/                   # Carpeta de salida de audios
├── VoiceProfiles/           # Perfiles de voces (JSON + archivos .pt de voces clonadas)
└── VoiceReferences/         # Audios de referencia para clonacion

Nota: La carpeta Python\embed\ y Models\ se crean automáticamente en el proceso de instalación.


Paso 2: Instalar Dependencias Python

Ejecuta una sola vez el script de instalación haciendo doble clic en:

setup_venv.bat

Este script realiza automáticamente:

  1. Descarga Python 3.11.9 embeddable (~25 MB) en Python\embed\ — sin instalarlo en el sistema
  2. Configura pip dentro del Python embeddable
  3. Instala PyTorch con soporte CUDA 12.8
  4. Instala qwen-tts, soundfile, librosa y flask
  5. Instala qwen-asr para transcripción automática de voz
  6. Actualiza config.ini para que la aplicación use el Python embeddable

Al terminar verás una confirmación con la versión de PyTorch y si CUDA está disponible.

¿Por qué Python embeddable? Es un ZIP con Python 3.11 que se extrae dentro de la carpeta del proyecto. No requiere instalar Python en el sistema, no modifica el PATH y no genera conflictos con otras versiones de Python instaladas.


Paso 3: Primera Ejecución

Importante: La aplicación usa cuatro modelos independientes que se descargan automáticamente bajo demanda:

Función Modelo Tamaño Cuándo se descarga
Voces Predefinidas (Ryan/Aiden) CustomVoice ~3.5 GB Primera generación con voces predefinidas
Voces Diseñadas (Mis Voces) VoiceDesign ~3.5 GB Primera generación con una voz diseñada
Clonación de Voz / Nueva Voz desde Audio Base ~3.5 GB Primera clonación o creación de voz permanente
Transcripción Automática ASR ~1.7 GB Primera vez que se usa "Obtener Transcripción"

Total si usas las cuatro funciones: ~12.2 GB de descarga

Los modelos se descargan desde HuggingFace solo la primera vez que usas cada función y quedan guardados permanentemente en la carpeta de la aplicación.

Ubicación de los modelos: Qwen3-TTS\Models\

Tiempo de descarga estimado:

  • Con conexión rápida (100 Mbps): 5-10 minutos por modelo
  • Con conexión media (50 Mbps): 10-15 minutos por modelo
  • Con conexión lenta (10 Mbps): 30-60 minutos por modelo

⚠️ Nota Importante: Descarga vs Carga del Modelo

Los modelos se descargan SOLO UNA VEZ desde internet y quedan guardados permanentemente en la carpeta de la aplicación:

Qwen3-TTS/Models/

Esta carpeta se crea automáticamente la primera vez que usas la aplicación.

Primera vez que usas cada modelo:

  1. Abres la aplicación
  2. Generas audio → DESCARGA desde internet (3.5 GB) + Carga en VRAM + Genera audio
  3. Cierras la aplicación → El modelo queda en disco, se libera la VRAM

Segunda vez en adelante:

  1. Abres la aplicación
  2. Generas audio → LEE desde tu disco (0 GB de internet) + Carga en VRAM + Genera audio
  3. Cierras la aplicación → El modelo sigue en disco, se libera la VRAM

Analogía: Es como un videojuego:

  • Lo instalas una vez (descarga)
  • Cada vez que lo abres, carga los recursos en memoria (VRAM)
  • Al cerrar, libera la memoria pero el juego sigue instalado

Resumen:

✅ Descarga desde internet: Solo la primera vez por modelo ✅ Los modelos quedan guardados permanentemente en disco ✅ Cada uso: Solo carga desde disco a VRAM (5-60 segundos) ❌ NO se vuelven a descargar de internet nunca más


🎮 Uso de la Aplicación

Pestaña: Voces Predefinidas (Inglés)

Para generar audio con voces predefinidas o con tus voces diseñadas:

  1. Selecciona la Voz del combo:
    • Ryan o Aiden → voces fijas del modelo (inglés)
    • Tus voces creadas → aparecen debajo, usan el modelo VoiceDesign
  2. (Opcional, solo voces fijas) Escribe una Instrucción de estilo (ej: "Speak with excitement")
  3. Escribe el texto en el idioma correspondiente a la voz seleccionada
  4. Haz clic en Generar Audio
  5. Usa Reproducir para escuchar el resultado
  6. Usa Guardar Como... para guardar el audio

Pestaña: Mis Voces

Gestiona dos tipos de voces personalizadas: diseñadas (descritas con texto) y clonadas (creadas desde un audio real).

La lista muestra todas tus voces con su tipo (Diseñada / Clonada), descripción e idioma. Todas aparecen automáticamente en el combo de selección de la pestaña Voces Predefinidas.


🎨 Nueva Voz Diseñada

Crea una voz describiendo sus características en texto, sin necesitar ningún audio:

  1. Haz clic en Nueva Voz Diseñada
  2. En el formulario:
    • Nombre: cómo llamarás a esta voz (ej: "Narradora", "Locutor Formal")
    • Idioma: idioma del texto que generarás con esta voz
    • Descripción de la voz (en inglés): describe las características de la voz
      • Ej: Female, 35 years old, warm and professional voice, neutral accent, moderate pace
      • Ej: Male, 45 years old, deep authoritative voice, slow and clear speech
  3. Haz clic en Aceptar para guardar

Nota: La descripción debe escribirse en inglés para mejores resultados. El texto que generes puede estar en cualquier idioma soportado.


🎤 Nueva Voz desde Audio

Crea una voz permanente a partir de un audio real. A diferencia de la Clonación de Voz, esta voz queda guardada en la aplicación y puede usarse en cualquier momento sin necesitar el audio de referencia original.

  1. Haz clic en Nueva Voz desde Audio
  2. En el formulario:
    • Nombre: cómo llamarás a esta voz
    • Idioma: idioma del texto que generarás con esta voz
    • Audio de Referencia: selecciona el archivo WAV/MP3/FLAC con la voz a capturar
    • Transcripción (opcional): escribe o transcribe automáticamente lo que dice el audio
      • Haz clic en Obtener con Qwen3-ASR para transcribir automáticamente
      • Proporcionar la transcripción mejora la calidad de la voz capturada
  3. Haz clic en Crear Voz
  4. La aplicación procesa el audio y extrae las características de la voz (~10-30 segundos)
  5. La voz aparece en la lista con tipo Clonada y queda lista para usar

¿Qué pasa internamente?

  • El modelo Base extrae un voice_clone_prompt del audio de referencia
  • Ese prompt se guarda en VoiceProfiles\{id}.pt (~pocos MB)
  • Al generar audio, carga el .pt desde disco — el audio original ya no es necesario

Ventaja frente a la Clonación de Voz directa:

Clonación de Voz (pestaña) Nueva Voz desde Audio (Mis Voces)
Requiere el audio de referencia cada vez El audio solo se usa una vez al crear la voz
No queda guardada como voz del sistema Queda permanentemente en "Mis Voces"
Ideal para uso ocasional Ideal para una voz que usarás frecuentemente

Pestaña: Clonación de Voz (Español/Inglés)

Para clonar una voz:

  1. Haz clic en Seleccionar Audio... y elige un archivo de referencia

    • El audio debe tener al menos 3 segundos de duración
    • Formatos soportados: WAV, MP3, FLAC
    • Mejor calidad con audio limpio sin ruido de fondo
  2. (Opcional) Obtén la Transcripción del audio de referencia:

    • Haz clic en Obtener Transcripción para transcribir automáticamente con Qwen3-ASR
    • O escríbela manualmente en el campo de transcripción
    • La primera vez descarga el modelo ASR (~1.7 GB)
    • Puedes marcar "Modo rápido" para omitir la transcripción completamente
  3. Selecciona el Idioma del texto a generar (Español o English)

  4. Escribe el texto que deseas sintetizar con la voz clonada

  5. Haz clic en Clonar Voz

  6. Espera a que se complete (la primera vez carga el modelo)

  7. Reproduce y guarda el resultado


🔤 Botón "Obtener Transcripción"

El botón Obtener Transcripción usa el modelo Qwen3-ASR-1.7B para transcribir automáticamente el audio de referencia seleccionado. El texto resultante se coloca directamente en el campo de transcripción para mejorar la calidad de la clonación.

Características de Qwen3-ASR:

✅ Reconoce 30 idiomas incluyendo Español e Inglés ✅ Detecta automáticamente el idioma si no se especifica ✅ Superior a Whisper-large-v3 en benchmarks multilingüe (WER 4.90 vs 5.27 en Fleurs) ✅ Velocidad ~2× más rápida que Whisper

Cómo funciona:

  1. Selecciona el audio de referencia con Seleccionar Audio...
  2. El botón Obtener Transcripción se activa automáticamente
  3. Haz clic — el modelo transcribe el audio en segundos
  4. El texto aparece en el campo de transcripción, listo para usar en la clonación

Primera vez:

  • Descarga el modelo Qwen3-ASR-1.7B (~1.7 GB desde HuggingFace)
  • Queda guardado en Qwen3-TTS\Models\ para usos posteriores
  • Los usos siguientes son instantáneos (modelo ya en disco)

Nota: El modelo ASR se carga en VRAM bajo demanda (~2 GB adicionales). Con RTX 5080 (16 GB) hay margen suficiente junto con los modelos TTS.


⚙️ Configuración Avanzada

Opciones del Modelo

Opción Descripción Valor por Defecto
Usar GPU (CUDA) Acelera la generación usando la GPU Activado
Usar BFloat16 Reduce uso de VRAM (recomendado) Activado
Flash Attention Mejora rendimiento (requiere instalación adicional) Activado*

*Flash Attention se desactiva automáticamente si no está instalado.

Parámetros de Generación

Parámetro Descripción Valor por Defecto
Max Tokens Límite de tokens a generar (8192 = ~11 min de audio) 8192
Temperatura Variabilidad de la generación (solo clonación) 0.9

🔧 Solución de Problemas

Error: "CUDA error: no kernel image is available"

Este error ocurre cuando PyTorch no tiene kernels compilados para la arquitectura de tu GPU. Ejecuta reinstall_pytorch.bat para reinstalar PyTorch con CUDA 12.8, compatible con GPUs modernas incluyendo la serie RTX 40xx (Ada Lovelace) y RTX 50xx (Blackwell).

Error: "No module named 'qwen_tts'" o "No module named 'qwen_asr'"

Ejecuta setup_venv.bat nuevamente para reinstalar las dependencias.

Error: "CUDA not available"

  1. Verifica que tienes una GPU NVIDIA
  2. Actualiza los controladores de NVIDIA (driver 550 o superior recomendado)
  3. Ejecuta reinstall_pytorch.bat para reinstalar PyTorch

Error: "Python no encontrado"

Ejecuta setup_venv.bat para configurar el Python embeddable. Verifica que config.ini tenga PythonPath apuntando a Python\embed\python.exe.

La generación es muy lenta

Primera vez (con descarga):

  • Descarga del modelo: ~3.5 GB por modelo (puede tardar 5-60 minutos según conexión)
  • Solo ocurre una vez por modelo

Ejecuciones normales:

  • Carga del modelo en VRAM: 5-60 segundos (según si está en cache o no)
  • Generación de audio: 5-15 segundos por frase corta
  • Textos muy largos (varios párrafos): Varios minutos

Nota: Cada vez que ejecutas la aplicación, debe cargar el modelo en VRAM nuevamente (no hay servidor persistente).

El audio generado tiene mala calidad

✅ Usa audios de referencia de alta calidad (para clonación y voces desde audio) ✅ Asegúrate de que el audio de referencia tenga al menos 3 segundos ✅ Usa Obtener Transcripción para generar la transcripción automáticamente, o escríbela manualmente ✅ Evita ruido de fondo en el audio de referencia

Error al crear "Nueva Voz desde Audio"

  • Verifica que el servidor esté activo (barra de estado verde)
  • Comprueba que el archivo de audio existe y tiene al menos 3 segundos
  • El proceso puede tardar hasta 30 segundos — espera a que termine
  • Si el error persiste, reinicia la aplicación e inténtalo de nuevo

La voz clonada permanente no genera audio / "Prompt no encontrado"

  • El archivo .pt de la voz fue movido, eliminado o está en otra PC
  • Solución: elimina la voz desde Mis Voces y vuelve a crearla con Nueva Voz desde Audio
  • Al copiar la app a otra PC, incluye también la carpeta VoiceProfiles\ para conservar las voces clonadas

La transcripción automática no funciona o da error

  • Verifica que el servidor esté activo (barra de estado verde en la parte inferior)
  • Asegúrate de haber ejecutado setup_venv.bat para instalar qwen-asr
  • La primera vez puede tardar varios minutos mientras descarga el modelo (~1.7 GB)
  • Si el error persiste, reinicia la aplicación e inténtalo de nuevo

📋 Notas Técnicas

Modelos

La aplicación usa cuatro modelos independientes:

Modelo Uso Tamaño en Disco VRAM Ocupada Archivo HuggingFace
CustomVoice Voces predefinidas (Ryan, Aiden) ~3.5 GB ~4 GB Qwen3-TTS-12Hz-1.7B-CustomVoice
VoiceDesign Voces diseñadas por descripción (Mis Voces) ~3.5 GB ~4 GB Qwen3-TTS-12Hz-1.7B-VoiceDesign
Base Clonación de voz y Nueva Voz desde Audio ~3.5 GB ~4 GB Qwen3-TTS-12Hz-1.7B-Base
ASR Transcripción automática de voz ~1.7 GB ~2 GB Qwen3-ASR-1.7B

Funcionamiento

  • Servidor interno: Al abrir la aplicación se inicia un servidor Python local que precarga CustomVoice + Base en VRAM (~60 segundos). El modelo VoiceDesign se carga bajo demanda la primera vez que se usa una voz diseñada
  • Generación instantánea: Una vez cargados, las generaciones no tienen espera adicional de carga de modelo
  • Ubicación de modelos: Qwen3-TTS\Models\ (en la misma carpeta de la aplicación)
  • Voces diseñadas: Perfiles guardados en Qwen3-TTS\VoiceProfiles\profiles.json
  • Voces clonadas permanentes: Prompt guardado en Qwen3-TTS\VoiceProfiles\{id}.pt (pocos MB por voz). Al generar, se carga el .pt desde disco — el audio original no es necesario
  • Modelo ASR: Se carga bajo demanda al usar "Obtener Transcripción" (~2 GB VRAM adicionales)
  • Al cerrar la app: El servidor se detiene y la VRAM queda libre
  • Formato de salida: WAV 24000 Hz (24 kHz)
  • Portabilidad: Copia toda la carpeta Qwen3-TTS (incluido Models y VoiceProfiles) a otra PC — tanto los modelos como las voces clonadas se preservan

Uso de VRAM

  • Al iniciar: CustomVoice + Base se precargan simultáneamente (~8 GB con BFloat16)
  • VoiceDesign carga bajo demanda al usar la pestaña "Mis Voces" (~4 GB adicionales)
  • ASR carga bajo demanda al usar "Obtener Transcripción" (~2 GB adicionales)
  • Con BFloat16 activo (TTS): ~4 GB × 3 modelos TTS + ~2 GB ASR = ~14 GB máximo (todos activos)
  • Sin BFloat16: ~8 GB por modelo TTS × 3 = ~26 GB (no recomendado)
  • La RTX 5080 (16 GB VRAM) soporta los 4 modelos simultáneamente con margen cómodo

Compatibilidad de GPUs

Arquitectura Ejemplos CUDA requerido
Turing (RTX 20xx) RTX 2060, 2070, 2080 cu121 o superior
Ampere (RTX 30xx) RTX 3060, 3070, 3080, 3090 cu121 o superior
Ada Lovelace (RTX 40xx) RTX 4060, 4070, 4080, 4090 cu121 o superior
Blackwell (RTX 50xx) RTX 5070, 5080, 5090 cu128 requerido

El setup_venv.bat instala PyTorch cu128, compatible con todas las arquitecturas de la tabla.


🚀 Ventajas de los Modelos en Carpeta Local

La aplicación guarda los modelos en Qwen3-TTS\Models\ en lugar del cache del sistema. Esto ofrece:

Ventaja Descripción
🚀 Portabilidad Copia toda la carpeta a otra PC sin re-descargar los modelos
💾 Respaldo fácil Haz backup de la carpeta completa con modelos incluidos
🎯 Control total Sabes exactamente dónde están y cuánto espacio ocupan
🔧 Múltiples instalaciones Puedes tener varias copias independientes con sus propios modelos
🧹 Sin contaminar cache No usa el cache de HuggingFace del sistema
📦 Instalación completa Todo en un solo lugar, fácil de mover o eliminar

Ejemplo de uso portátil:

  1. Descarga los modelos una vez (~12 GB)
  2. Crea tus voces clonadas permanentes
  3. Copia la carpeta Qwen3-TTS completa a un USB (incluye Models\ y VoiceProfiles\)
  4. En otra PC ejecuta setup_venv.bat y luego la app — modelos y voces clonadas disponibles sin re-descargar

🎤 Voces Disponibles

Voces predefinidas (modelo CustomVoice)

Voz Género Idioma Descripción
Ryan Masculino Inglés Voz dinámica con ritmo fuerte
Aiden Masculino Inglés Voz americana clara y neutral

Voces diseñadas (modelo VoiceDesign)

Crea voces ilimitadas desde la pestaña Mis Voces describiendo sus características en inglés. Ejemplos de descripciones:

Tipo de voz Descripción de ejemplo
Narradora profesional Female, 35 years old, warm and clear voice, neutral accent, steady pace
Locutor de radio Male, 45 years old, deep resonant voice, energetic and confident, fast pace
Voz de niña Young female, 10 years old, bright and cheerful voice, playful tone
Anciano sabio Male, 70 years old, slow and deliberate speech, gravelly voice, wise tone

Las voces diseñadas aparecen automáticamente en el combo de selección junto a Ryan y Aiden, y soportan cualquier idioma.

Clonación de voz (modelo Base)

Para clonar cualquier voz real, usa la pestaña Clonación de Voz con un audio de referencia.

Voces clonadas permanentes (modelo Base)

Crea voces permanentes desde audio real usando Nueva Voz desde Audio en la pestaña Mis Voces. La voz queda guardada en el sistema y puede usarse como cualquier otra voz sin el audio de referencia.

Característica Detalle
Audio de referencia Solo necesario al crear la voz (una vez)
Archivo guardado VoiceProfiles\{id}.pt (~pocos MB)
Idiomas Cualquiera soportado por Qwen3-TTS
Generación Tan rápida como clonación directa
Portabilidad Copia VoiceProfiles\ para llevarte las voces a otra PC

🏆 Créditos

  • Modelos TTS: Qwen3-TTS por Alibaba — CustomVoice, VoiceDesign y Base
  • Modelo ASR: Qwen3-ASR por Alibaba — Qwen3-ASR-1.7B
  • Interfaz: Desarrollada con Delphi 13.1 Florence y DevExpress VCL

📄 Licencia

Esta aplicación es para uso personal y educativo. Los modelos Qwen3-TTS y Qwen3-ASR tienen sus propias licencias que deben ser respetadas.


Desarrollado con ❤️ en Delphi 13.1 Florence

About

Aplicación de escritorio para generación de voz sintetizada usando los modelos Qwen3-TTS y Qwen3-ASR de Alibaba.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors