AiHummer
Español
Iniciar sesiónCuenta
v1.3.x
{ }Swagger

Entrada y salida de voz (STT / TTS)

v1.3.x · actualizada 2026-09-15

Manijas AiHummer voz entrante y saliente de la caja — no se requiere API de voz de pago. Un clip de audio entrante se transcribe (STT), el texto impulsa un turno normal del agente, y la respuesta se reproduce en voz (TTS). Ambos motores son gratis y local y ejecutar como sidecares: faster-whisper para transcripción y edge-tts para síntesis.

Cómo funciona un cambio de voz

Un turno de voz es un turno normal del agente con audio en ambos extremos:

  1. La puerta de enlace envía el audio entrante a la Sidecar STT (:8001, faster-whisper) y devuelve texto.
  2. Ese texto impulsa la vuelta habitual de llamada de función: mismo enrutador, orquestador, herramientas y memoria como un mensaje de texto.
  3. El texto de respuesta se envía al Sidecar de TTS (:8002, edge-tts) y el El audio hablado se devuelve al llamante.

Esto se expone como un único punto de conexión, POST /v1/voice/turn, de modo que un canal o cliente pueda entregar audio y recibir audio sin orquestar los pasos por sí mismo.

Los puntos finales

Método Punto final Propósito
POST /v1/voice/turn Audio entrante → turno del agente → audio saliente
GET /v1/voice/config Configuración de voz actual (motores, perillas de ajuste)
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json

{
  "audio": "<base64-encoded clip>",
  "format": "wav"
}

[!NOTE] Las características del habla forman parte de núcleo — no están vinculados al complemento SIP. El El canal SIP utiliza estos mismos motores STT/TTS para su local motor, pero voz entrada/salida funciona para cualquier cliente que llame /v1/voice/turn.

Los sidecars de voz

Puerto Sidecar Motor Rol Conectado con
8001 STT susurro más rápido voz → texto AIHUMMER_STT_URL
8002 TTS edge-tts texto → voz AIHUMMER_TTS_URL

Ambos motores son gratuitos y locales: nada se envía a un proveedor de voz de pago. Como con todos los sidecars, la puerta de enlace los alcanza por URL, para que puedas ejecutarlos junto a la puerta de enlace o apuntar a una instancia compartida.

Cableado

El instalador nativo del anfitrión establece las URLs de STT y TTS por ti. Estas son configuración del catálogo — cámbialos desde la interfaz de administración (Gestión → Configuración) o con aihummer settings set; gateway.env es solo para bootstrap y se ignora para estos:

# Voice in/out (auto-configured by the installer)
aihummer settings set AIHUMMER_STT_URL http://127.0.0.1:8001
aihummer settings set AIHUMMER_TTS_URL http://127.0.0.1:8002

[!TIP] Debido a que cada sidecar es solo una URL, varios gateways pueden compartir un STT/TTS instancia. Centralice los servicios de voz más pesados en lugar de ejecutar una copia por anfitrión.

Ajustando la ruta de audio

Los controles de calidad de voz viven en el Medios · Voz grupo de configuraciones y se pueden configurar desde la interfaz de administración web, sin necesidad de redeploy. Cubren la ruta de audio en tiempo real:

Perilla Lo que controla
Dúplex Dúplex completo (escuchar mientras se habla) vs semidúplex
AEC Cancelación de eco acústico
Supresión de ruido Filtra el ruido de fondo antes de la STT
AGC Control automático de ganancia (normalización de nivel)
umbral de VAD Sensibilidad de detección de actividad de voz
Interrumpir Permite que el llamante interrumpa al agente a mitad de la respuesta

GET /v1/voice/config devuelve la configuración efectiva para que un cliente pueda descubrir los motores activos y estas configuraciones.

Respuestas de voz automáticas

Tres ajustes del grupo «Media · Voice» (interfaz web → Gestión → Ajustes) deciden cuándo se lee en voz alta una respuesta terminada:

Ajuste Clave Valores
Respuestas de voz automáticas AIHUMMER_TTS_AUTO_REPLY off — nunca; always — siempre; inbound (por defecto) — solo en respuesta a audio entrante; tagged — cuando el agente marca explícitamente la respuesta para voz
Límite de caracteres de voz AIHUMMER_TTS_MAX_CHARS 0 (por defecto) — leer la respuesta completa; 10010000 — límite del texto leído
Resumir respuestas de voz largas AIHUMMER_TTS_SUMMARIZE activado por defecto: una respuesta larga la acorta el modelo hasta el límite; si el modelo no está disponible, se lee el comienzo del texto

El texto completo de la respuesta permanece en el historial del diálogo en cualquier modo. off desactiva solo la lectura automática: una solicitud explícita de síntesis mediante la herramienta tts sigue funcionando.

Para un diálogo concreto el agente puede, a petición del interlocutor, anular estos valores con las herramientas voice_preferences (leer los valores vigentes) y set_voice_preferences (fijar auto, max_chars, summarize; un objeto vacío restaura los valores por defecto de la instancia). Solo un participante del diálogo puede escribir. La salida de voz recoge un proveedor conectado después del arranque de la pasarela y respeta los ajustes del usuario concreto.

¿A dónde vamos ahora?