Cartesia Hebrew TTS (Locución en hebreo con Cartesia)
La voz en sí suena natural de fábrica. Casi todos los fallos son de pronunciación: el hebreo sin vocales deja que el modelo adivine las vocales, el género y cómo leer los dígitos. Por eso el trabajo consiste en preparar el texto y verificar el resultado.
Los scripts están en scripts/ junto a este archivo. Ejecútalos con node (20 o superior), desde la carpeta donde debe ir el resultado. Los datos personales residen en ~/.cartesia-tts: las claves (.env), la voz y configuración predeterminadas (config.json) y la lista de pronunciación (lexicon.json). Al actualizar la habilidad nunca se toca esa carpeta.
Primera ejecución
Habla con el usuario en su idioma, con palabras sencillas, y espera después de cada paso.
-
Ejecuta
node scripts/doctor.mjs. Es gratuito. Muestra READY, o qué corregir. -
Claves: si falta alguna, ejecuta
node scripts/doctor.mjs --keys. Abre el archivo de claves en un editor de texto, donde el usuario pegará:CARTESIA_API_KEY, de play.cartesia.ai (API keys). Una cuenta gratuita funciona.GEMINI_API_KEY, de aistudio.google.com (la misma clave del Día 1 del curso).
Nunca le pidas al usuario que pegue una clave en el chat, y nunca imprimas una clave.
-
Voz: pregunta si quiere clonar su propia voz (ver "Clonar una voz") o usar una voz predeterminada por ahora (
node scripts/voices.mjs --language he, luego--set-default <id>). -
Ejecuta
doctor.mjsde nuevo hasta que diga READY, luego haz una línea de prueba corta mediante "Hacer una locución" para que pueda escucharla.
Hacer una locución
-
Guarda el original como
<nombre>.original.txt, sin modificar. -
Prepara el guion. Lee
references/hebrew-rules.md, luego guarda<nombre>.txtcon:- números, horas y precios como palabras habladas con el género correcto
- niqqud completo en palabras ambiguas, incluyendo letras prefijas, y todo lo demás sin marcar
- nombres en inglés con letras inglesas, y puntuación limpia
Cambia cómo se escriben las palabras, no lo que dicen. Si una reformulación realmente ayuda, como reemplazar una hora formal, indícalo en tu resumen.
-
Genera y verifica:
node scripts/speak.mjs <nombre>.txt <nombre>.wav --checkAñade
--emotion none,--speed 1.0o--voice <id>si se solicita. Usa un nombre de salida.mp3para MP3. También escribe<nombre>.wav.sent.txt(el texto exacto enviado) y<nombre>.wav.check.json(el informe). El código de salida 2 significa que la verificación encontró errores. -
Corrige solo lo que falló. La verificación puede marcar una palabra que se dijo correctamente, así que primero compara
heard_ascon la lectura que pretendías, e ignora el informe para esa palabra si coinciden. Para cada error real, corrígelo en<nombre>.txty regenera. Por orden de preferencia: añade o corrige el niqqud completo, luego reescribe la palabra, luego sustitúyela por un sinónimo. Detente después de 3 rondas e informa lo que queda, porque más reintentos rara vez ayudan y cada uno usa créditos. -
Recuerda las correcciones reales. Si una palabra necesitó una corrección y siempre significa lo mismo, agrégala a
~/.cartesia-tts/lexicon.json(crea el archivo si es necesario), que se aplica automáticamente en cada ejecución:[{ "text": "גוללים", "say": "גּוֹלְלִים" }]La coincidencia es sobre la palabra completa exacta, así que añade formas con prefijos como entradas separadas. Omite homógrafos como ספר, ya que la lectura correcta depende de la oración y un reemplazo fijo rompería otros usos.
-
Informa: la ruta del audio, el resultado de la verificación, las palabras que cambiaste y un recordatorio para que escuche.
La verificación detecta mejor las palabras incorrectas que los matices de pronunciación. En las pruebas, dio puntuaciones idénticas y perfectas a tres tomas de reel diferentes. Un PASS significa que no se detectaron errores, y el oído del usuario hace la decisión final. Cuando te pidan comparar tomas por sensación, proporciona las tomas en lugar de elegir según las puntuaciones.
Genera una toma a la vez, porque Cartesia limita las solicitudes concurrentes según el plan.
Verificar una toma existente
node scripts/check.mjs <audio> <script.txt> --json report.json
Clonar una voz
node scripts/clone.mjs <clip> --name "Nombre de la voz" --language he --set-default
Clona solo la voz del usuario, o una voz cuyo dueño haya dado permiso explícito. Si es la voz de otra persona y el permiso no está claro, detente y pregunta. Omite --set-default para probar un clon primero, luego pásalo a speak.mjs con --voice <id>. Aconseja sobre el clip antes de subirlo, ya que el clon lo copia fielmente:
- 30 a 60 segundos (Sonic 3.6 aprende de hasta 60), un solo hablante, una habitación silenciosa, menos de 16 MB
- habla de forma natural, no como un locutor
- graba en el estado de ánimo deseado para la voz, porque un clip alegre dará una voz alegre en todo lo que diga
Los Pro Voice Clones necesitan 30+ minutos de audio y un plan superior. Mejoran el parecido, no la pronunciación, por lo que no corregirán palabras mal leídas. Detalles: https://docs.cartesia.ai/build-with-cartesia/capability-guides/clone-voices-pro
Costos
Sonic usa 1 crédito por carácter, aproximadamente de 750 a 800 créditos por minuto de audio. El plan gratuito de Cartesia incluye 20,000 créditos al mes y clonación de voz instantánea, para evaluación y uso personal. El uso comercial requiere un plan de pago, desde $5 al mes. Detalles actuales: https://www.cartesia.ai/pricing. La verificación de Gemini se ejecuta con la clave Gemini del usuario.