¿Qué hace voz-característica?
Haz que tu agente de IA suene como un compañero real — uno que suspira, ríe, duda y habla con sentimiento genuino.
Credenciales
| Variable | Obligatoria | Descripción |
|---|---|---|
NOIZ_API_KEY | Sí si usas el backend Noiz | Clave API de developers.noiz.ai. No es necesaria si usas el backend local Kokoro. |
El script guarda una copia normalizada de la clave en ~/.noiz_api_key (modo 600) para mayor comodidad. Para configurarla:
bash skills/characteristic-voice/scripts/speak.sh config --set-api-key TU_CLAVE
Requisitos previos
El script speak.sh incluido necesita curl y python3 en tiempo de ejecución. Según el backend y las funciones que uses, también puedes necesitar:
| Herramienta | Cuándo se necesita | Sugerencia de instalación |
|---|---|---|
curl, python3 | Siempre (script principal) | Generalmente preinstalados |
kokoro-tts | Backend Kokoro (local/sin conexión) | uv tool install kokoro-tts |
yt-dlp | Descargar audio de referencia para clonación de voz | github.com/yt-dlp/yt-dlp |
ffmpeg | Recortar fragmentos de audio de referencia | ffmpeg.org |
rg (ripgrep) | Buscar en archivos de subtítulos | github.com/BurntSushi/ripgrep |
Ninguna de estas herramientas es instalada por la habilidad en sí — debes aprovisionarlas manualmente en tu entorno.
Privacidad y transmisión de datos
- Backend Noiz: Al usar el backend Noiz, el texto que hablas y cualquier audio de referencia que proporciones se envían a
https://noiz.ai/v1. Si proporcionas--ref-audio, ese archivo de audio se sube para la clonación de voz. - Backend Kokoro: Funciona completamente en local — ningún dato sale de tu máquina.
- Elige el backend Kokoro (
--backend kokoro) si deseas un procesamiento totalmente sin conexión.
Desencadenantes
- decir como
- hablar como
- sonar como
- voz de compañero
- consuélame
- anímame
- suena más humano
Los dos trucos
- Rellenos no léxicos — añade pequeñas expresiones humanas (hmm, jaja, aww, jeje) en pausas naturales para que el habla se sienta viva.
- Ajuste emocional — modifica calidez, alegría, tristeza, ternura para que coincida con el momento.
Paleta de sonidos de relleno
| Sonido | Sensación | Úsalo para |
|---|---|---|
| hmm... | Pensamiento, reconocimiento suave | Consuelo, reflexión |
| ah... | Realización, sorpresa suave | Descubrimientos, transiciones |
| uh... | Vacilación, empatía | Momentos cuidadosos |
| je / jeje | Juguetón, travieso | Bromas, momentos ligeros |
| jaja | Risa | Alegría, humor |
| aww | Ternura, simpatía | Consuelo profundo |
| ¿oh? / ¡oh! | Sorpresa, atención | Reaccionar a noticias |
| pfft | Risa contenida | Incredulidad juguetona |
| uf | Alivio | Después de la tensión |
| ~ (tilde) | Final melódico y alargado | Calidez, alegría |
Reglas: Máximo 2–4 rellenos por mensaje corto. Colócalos en pausas naturales — inicio de frase, cambios de pensamiento. Usa ... después de los rellenos para un breve silencio, ~ al final de las palabras para calidez.
Preajustes
Buenas noches
Suave, cálido, ligeramente somnoliento. Ritmo pausado.
Buenos días
Cálido, alegre pero sin ser abrumador.
Consuelo
Suave, comprensivo, sin prisas. Deja espacio. No te apresures a "arreglar" las cosas.
Celebración
Emocionado, orgulloso, genuinamente feliz.
Charla casual
Relajado, juguetón, natural.
Usar la voz de un personaje
Cuando un usuario diga algo como "habla con la voz de Hermione" o "suena como Tony Stark", primero verifica si ya existe un archivo de audio de referencia en skills/characteristic-voice/. Si existe, úsalo directamente con --ref-audio.
Si no hay audio de referencia, puedes crear uno — pero lee primero las advertencias siguientes.
Preparar audio de referencia (configuración única)
Necesitas un fragmento corto (10–30 s) en formato WAV de la voz objetivo. Posibles fuentes:
- Audio proporcionado por el usuario — la opción más segura. Pide al usuario que proporcione su propia grabación.
- Fragmentos de dominio público / con licencia CC — busca material con licencia libre.
- Extracción de vídeo en línea — herramientas como
yt-dlpyffmpegpueden descargar y recortar audio. Ejemplo de flujo de trabajo:
yt-dlp "URL" --write-auto-sub --sub-lang en --skip-download -o tmp/clip
rg -n "línea objetivo" tmp/clip.en.vtt
yt-dlp "URL" -x --audio-format wav --download-sections "*00:00:00-00:00:25" -o tmp/clip
ffmpeg -i tmp/clip.wav -ss 00:00:02 -to 00:00:20 skills/characteristic-voice/personaje.wav
Advertencia de derechos de autor y privacidad: Descargar y reutilizar la voz de alguien de medios protegidos por derechos de autor (películas, TV, YouTube) puede infringir leyes de derechos de autor o derechos de personalidad según tu jurisdicción. No subas grabaciones de voz privadas ni material para el que no tengas permiso de uso. El audio de referencia se envía a
https://noiz.ai/v1para la clonación de voz cuando se usa el backend Noiz. Si esto es un problema, considera usar el backend Kokoro local.
Usar audio de referencia
bash skills/characteristic-voice/scripts/speak.sh \
--preset buenasnoches -t "Hmm... descansa bien~ Dulces sueños." \
--ref-audio skills/characteristic-voice/personaje.wav -o noche.wav
La opción --ref-audio sube el archivo al backend Noiz para la clonación de voz (requiere NOIZ_API_KEY).
Uso
Esta habilidad proporciona speak.sh, un envoltorio sobre la habilidad tts con preajustes amigables para el acompañamiento.
# Usar un preajuste (configura emoción + velocidad automáticamente)
bash skills/characteristic-voice/scripts/speak.sh \
--preset buenasnoches -t "Hmm... descansa bien~ Dulces sueños." -o noche.wav
# Sobrescritura de emoción personalizada
bash skills/characteristic-voice/scripts/speak.sh \
-t "Aww... estoy aquí." --emo '{"Ternura":0.9}' --speed 0.75 -o consuelo.wav
# Con backend y voz específicos
bash skills/characteristic-voice/scripts/speak.sh \
--preset mañana -t "Buenos días~" --voice-id voz_abc --backend noiz -o mañana.mp3 --format mp3
Ejecuta bash skills/characteristic-voice/scripts/speak.sh --help para todas las opciones.
Guía de escritura para el agente
- Empieza suave — comienza con un relleno ("hmm...", "oh~"), no con contenido.
- Refleja la energía — sé suave cuando estén bajos, acompáñalos cuando estén animados.
- Sé breve — 1–3 frases, como un mensaje de voz de un amigo.
- Termina con calidez — cierra con conexión ("estoy aquí", "hasta mañana~").
- No des lecciones — escucha y mantente presente; sin consejos no solicitados.