Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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 string[] · default []

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* string · default

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* string · default

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 string[] · default []

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* string · default

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 string? · default null

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_key es un secreto. Se almacena cifrado, nunca en texto plano en config.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* string · default

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* string · default

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 string[] · default []

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* string · default

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 integer · default 3600

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 VoiceProvider · default "twilio"

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 bool · default true

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 bool · default true

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 string? · default null

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 string? · default null

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 integer · default 8090

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 number · default 0.009999999776482582

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 string[] · default []

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 integer · default 30

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 integer · default 2000

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 string · default "hey zeroclaw"

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-wake en zeroclaw-channels. Compílalo con --features voice-wake para 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:

ComponenteLatencia típica
Detección de activación (local)<100 ms
STT (Whisper local)300–800 ms por enunciado
LLM primer token100–2000 ms (dependiente del modelo)
TTS primer-audio200–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 -l para 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.