Voz
voicev0.3.0Modo voz inline en el chat: dictado y conversación manos libres con espectro de voz en vivo y 3 motores seleccionables
Descripción
Habla con el chat sin abrir ningún modal: el composer se transforma en sitio en una superficie de voz con espectro reactivo, mientras el hilo de la conversación sigue visible. Dos experiencias sobre el mismo micrófono — dictado momentáneo (voz a texto para revisar antes de enviar) y modo voz interactivo manos libres (hablas, se envía solo, la IA responde en voz alta). Tres motores intercambiables desde ajustes: 'cascaded' (por defecto; usa el flujo nativo del chat, así que CONSERVA todas las tools, artifacts y KB y respeta el estado de Auto Tools del usuario), 'audio-native' (speech-to-speech en una llamada con gpt-audio, menor latencia, conversación pura sin tools) y 'elevenlabs-realtime' (dúplex de baja latencia con interrupción/barge-in vía Conversational AI). Soporta BYOK: cada usuario puede usar su propia clave de ElevenLabs (cifrada en reposo) o la del sistema.
Funcionalidades (6)
Tap en el micro: habla y el texto aparece en el input para revisar antes de enviar
Mantén pulsado: conversación manos libres con VAD por silencio; la IA responde en voz alta
Visualizador de voz reactivo en el propio composer (Web Audio), sin modales. Color distinto por turno
El motor por defecto hereda el estado de Auto Tools: artifacts, KB y herramientas siguen disponibles
cascaded · audio-native (gpt-audio, baja latencia) · elevenlabs-realtime (dúplex con barge-in)
Cada usuario puede usar su propia API key de ElevenLabs, cifrada con AES-256-GCM
Changelog
- Fase 3: motor ElevenLabs realtime (signed URL + WebSocket dúplex, barge-in)
- BYOK por usuario cifrado (secret-vault AES-256-GCM): endpoints /key y /realtime/session
- Gate de plan + BYOK obligatorio configurable para realtime
- UI de ajustes en superadmin (motor/voz/agente + gestión de clave BYOK)
- Fase 2: TTS de calidad vía ttsService (ElevenLabs/AIML) con espectro reactivo al audio real
- Motor audio-native (openai/gpt-audio) speech-to-speech en una llamada
- Endpoint /voices y /audio-chat (conversión webm→mp3 con ffmpeg-static)
- Fase 1: dictado (A) end-to-end (getUserMedia → /stt Whisper → input)
- Modo voz (B) cascaded con VAD por silencio + lectura speechSynthesis
- Espectro Web Audio, micro inline en el composer (anclaje de 1 línea en index.ejs)