Voz y telefonía
Entrada y salida de voz en tiempo real. Cuatro canales cubren la matriz: llamadas entrantes, activación por micrófono local, síntesis de voz saliente y conversación en tiempo real de calidad SIP.
ClawdTalk (SIP en tiempo real)
Voz SIP full-duplex con tecnología de Telnyx. El agente habla mediante una llamada telefónica real (entrante o saliente). Admite barge-in, uso de herramientas a mitad de turno y aprovisionamiento de números regionales.
allowed_destinations
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/clawdtalk y establece el campo channels.clawdtalk.<alias>.allowed_destinations.
zerocode
En el panel Config, configure el campo channels.clawdtalk.<alias>.allowed_destinations.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.allowed_destinations <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__allowed_destinations=
api_key*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abra /config/channels/clawdtalk y configure el campo channels.clawdtalk.<alias>.api_key.
zerocode
En el panel Config, establece el campo channels.clawdtalk.<alias>.api_key.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.api_key <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__api_key=
connection_id*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/clawdtalk y configura el campo channels.clawdtalk.<alias>.connection_id.
zerocode
En el panel Config, establece el campo channels.clawdtalk.<alias>.connection_id.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.connection_id <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__connection_id=
excluded_tools
Herramientas excluidas de la especificación de herramientas de este canal. Cuando se establece, estas herramientas no se exponen al modelo al responder a través de este canal.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/clawdtalk y configura el campo channels.clawdtalk.<alias>.excluded_tools.
zerocode
En el panel Config, establece el campo channels.clawdtalk.<alias>.excluded_tools.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.excluded_tools <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__excluded_tools=
from_number*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/clawdtalk y configura el campo channels.clawdtalk.<alias>.from_number.
zerocode
En el panel Config, establece el campo channels.clawdtalk.<alias>.from_number.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.from_number <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__from_number=
webhook_secret
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/clawdtalk y establece el campo channels.clawdtalk.<alias>.webhook_secret.
zerocode
En el panel de Config, configure el campo channels.clawdtalk.<alias>.webhook_secret.
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.webhook_secret <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__clawdtalk__<alias>__webhook_secret=
api_key (Telnyx) y webhook_secret son secretos:
channels.clawdtalk.<alias>.api_keyes un secreto. Se almacena cifrado, nunca en texto plano enconfig.toml. Configúralo mediante una de estas opciones, que cifran al escribir:
Panel de control del gateway
Abre /config/channels/clawdtalk y configura allí el campo channels.clawdtalk.<alias>.api_key.
zerocode
En el panel de Config, establece el campo channels.clawdtalk.<alias>.api_key (la entrada está enmascarada).
zeroclaw config
zeroclaw config set channels.clawdtalk.<alias>.api_key # solicita entrada enmascarada, almacena cifrado
Combinar con: un proveedor de modelo telnyx para el cerebro y asegúrese de que su cuenta de Telnyx tenga una conexión SIP con la URL de webhook correcta apuntando a la puerta de enlace de ZeroClaw.
Llamada de voz (Twilio / Telnyx / Plivo)
Voz de operadora tradicional: el agente contesta, transcribe al llamante y responde con TTS. Mayor latencia que ClawdTalk, pero funciona con cualquier número de teléfono normal y no requiere aprovisionamiento de troncal SIP. Las llamadas salientes utilizan from_number y requieren la aprobación del operador cuando require_outbound_approval está activado.
account_id*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.account_id.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.account_id.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.account_id <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__account_id=
auth_token*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abra /config/channels/voice_call y configure el campo channels.voice_call.<alias>.auth_token.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.auth_token.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.auth_token <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__auth_token=
excluded_tools
Herramientas excluidas de la especificación de herramientas de este canal. Cuando se establece, estas herramientas no se exponen al modelo al responder a través de este canal.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.excluded_tools.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.excluded_tools.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.excluded_tools <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__excluded_tools=
from_number*
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.from_number.
zerocode
En el panel Config, configure el campo channels.voice_call.<alias>.from_number.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.from_number <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__from_number=
max_call_duration_secs
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.max_call_duration_secs.
zerocode
En el panel Config, configura el campo channels.voice_call.<alias>.max_call_duration_secs.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.max_call_duration_secs <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__max_call_duration_secs=
model_provider
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.model_provider.
zerocode
En el panel Config, configure el campo channels.voice_call.<alias>.model_provider.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.model_provider <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__model_provider=
require_outbound_approval
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.require_outbound_approval.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.require_outbound_approval.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.require_outbound_approval <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__require_outbound_approval=
transcription_logging
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.transcription_logging.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.transcription_logging.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.transcription_logging <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__transcription_logging=
tts_voice
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.tts_voice.
zerocode
En el panel de Config, configure el campo channels.voice_call.<alias>.tts_voice.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.tts_voice <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__tts_voice=
webhook_base_url
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.webhook_base_url.
zerocode
En el panel Config, establece el campo channels.voice_call.<alias>.webhook_base_url.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.webhook_base_url <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__webhook_base_url=
webhook_port
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_call y configura el campo channels.voice_call.<alias>.webhook_port.
zerocode
En el panel Config, configure el campo channels.voice_call.<alias>.webhook_port.
zeroclaw config
zeroclaw config set channels.voice_call.<alias>.webhook_port <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_call__<alias>__webhook_port=
Activación por voz (palabra de activación local)
Se ejecuta localmente, escucha por el micrófono y activa la interacción con el agente cuando escucha la frase de activación. Útil para:
- Asistentes de voz físicos en SBCs
- Flujos de trabajo de escritorio “palabra clave → pregunta”
- Agentes de automatización del hogar con escucha constante
El agente no envía audio a ninguna parte; la detección de la palabra de activación es local. Solo se captura la voz posterior a la activación y se transcribe (por separado) antes de llegar al LLM.
energy_threshold
Umbral de energía RMS para la detección de actividad de voz. Las muestras por debajo de este nivel se tratan como silencio. Valor predeterminado: 0.01.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_wake y configura el campo channels.voice_wake.<alias>.energy_threshold.
zerocode
En el panel Config, configure el campo channels.voice_wake.<alias>.energy_threshold.
zeroclaw config
zeroclaw config set channels.voice_wake.<alias>.energy_threshold <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_wake__<alias>__energy_threshold=
excluded_tools
Herramientas excluidas de la especificación de herramientas de este canal. Cuando se establece, estas herramientas no se exponen al modelo al responder a través de este canal.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_wake y establece el campo channels.voice_wake.<alias>.excluded_tools.
zerocode
En el panel Config, configura el campo channels.voice_wake.<alias>.excluded_tools.
zeroclaw config
zeroclaw config set channels.voice_wake.<alias>.excluded_tools <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_wake__<alias>__excluded_tools=
max_capture_secs
Duración máxima de captura en segundos antes de forzar la transcripción. Valor predeterminado: 30.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_wake y configura el campo channels.voice_wake.<alias>.max_capture_secs.
zerocode
En el panel Config, establece el campo channels.voice_wake.<alias>.max_capture_secs.
zeroclaw config
zeroclaw config set channels.voice_wake.<alias>.max_capture_secs <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_wake__<alias>__max_capture_secs=
silence_timeout_ms
Tiempo de espera en silencio en milisegundos: cuánto tiempo esperar después del último pico de energía antes de finalizar una ventana de captura. Predeterminado: 2000.
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_wake y configura el campo channels.voice_wake.<alias>.silence_timeout_ms.
zerocode
En el panel Config, establece el campo channels.voice_wake.<alias>.silence_timeout_ms.
zeroclaw config
zeroclaw config set channels.voice_wake.<alias>.silence_timeout_ms <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_wake__<alias>__silence_timeout_ms=
wake_word
Frase de palabra de activación a escuchar (coincidencia de subcadena sin distinción de mayúsculas y minúsculas). Valor predeterminado: "hey zeroclaw".
Colócalo sobre cualquier superficie:
Panel de control del gateway
Abre /config/channels/voice_wake y configura el campo channels.voice_wake.<alias>.wake_word.
zerocode
En el panel Config, configure el campo channels.voice_wake.<alias>.wake_word.
zeroclaw config
zeroclaw config set channels.voice_wake.<alias>.wake_word <value>
Variable de entorno
Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:
export ZEROCLAW_channels__voice_wake__<alias>__wake_word=
Indicador de compilación: Voice Wake está controlado por la funcionalidad de Cargo
voice-wakeenzeroclaw-channels. Compílalo con--features voice-wakepara incluirlo. En Android, Voice Wake requiere Android 8 (nivel de API 26) o posterior.
TTS (síntesis de voz saliente)
TTS es un servicio de salida al que llaman los canales, no un canal de entrada propio. Los valores predeterminados globales se encuentran bajo tts. Las instancias de proveedores TTS se configuran bajo providers.tts.<type>.<alias> (OpenAI, ElevenLabs, Google, Edge, Piper) y se seleccionan por agente mediante el tts_provider del agente. Consulta Model Providers para ver las entradas de proveedores y la configuración por agente. Las claves API de los proveedores son secretos; configúralas a través del gateway, zerocode o zeroclaw config set, nunca en texto plano.
Presupuesto de latencia
El habla se percibe en tiempo real por debajo de ~500 ms de extremo a extremo. Presupuestos prácticos:
| Componente | Latencia típica |
|---|---|
| Detección de activación (local) | <100 ms |
| STT (Whisper local) | 300–800 ms por enunciado |
| LLM primer token | 100–2000 ms (dependiente del modelo) |
| TTS primer-audio | 200–700 ms |
| Red (celular / PSTN) | 100–300 ms RTT |
ClawdTalk acorta varios de estos pasos al mantener el flujo de audio en vivo; voice_call implica STT + LLM + TTS de forma secuencial.
STT
La conversión de voz a texto se configura por separado de los canales de voz; consulta la configuración [transcription] en la Referencia de configuración. Los canales de voz invocan el proveedor de transcripción que esté activo cuando necesitan convertir audio en texto.
Notas de hardware
Para la voz siempre activa en un SBC:
- Micrófono USB: funciona cualquier micrófono compatible con UAC. Usa
arecord -lpara verificar que el sistema operativo lo detecta. - Altavoz: salida de audio USB o el conector integrado de la SBC; selecciona el dispositivo predeterminado del SO para el usuario con el que se ejecuta el daemon.
- Los micrófonos con AEC (cancelación de eco acústico) integrada mejoran drásticamente la fiabilidad de activación cuando el altavoz está cerca.
Consulta Hardware → Android para la configuración de audio específica de Android.