Skip to content

Pipeline de voz

🚧Coming Soon — This feature is planned but not yet implemented.

Los proveedores STT y TTS listados a continuación son solo stubs de interfaz. Las interfaces de los proveedores están definidas pero las implementaciones aún no están conectadas a servicios de voz reales. :::

Triggerfish admite interacción por voz con detección de palabra de activación, pulsar para hablar y texto a voz en macOS, iOS y Android.

Arquitectura

Pipeline de voz: detección de palabra de activación → STT → procesamiento del agente → TTS → salida de voz

El audio fluye a través del mismo pipeline de procesamiento del agente que el texto. La entrada de voz se transcribe, entra en la sesión como un mensaje clasificado, pasa por los hooks de políticas, y la respuesta se sintetiza de vuelta a voz.

Modos de voz

ModoDescripciónPlataforma
Activación por vozEscucha continua de una palabra de activación configurablemacOS, iOS, Android
Pulsar para hablarActivación manual por botón o atajo de tecladomacOS (barra de menú), iOS, Android
Modo conversaciónHabla conversacional continuaTodas las plataformas

Proveedores STT

La conversión de voz a texto convierte su voz en texto para que el agente lo procese.

ProveedorTipoNotas
WhisperLocalPredeterminado. Se ejecuta en el dispositivo, sin dependencia de la nube. Mejor para privacidad.
DeepgramNubeTranscripción en streaming de baja latencia.
OpenAI Whisper APINubeAlta precisión, requiere clave API.

Proveedores TTS

La conversión de texto a voz convierte las respuestas del agente en audio hablado.

ProveedorTipoNotas
ElevenLabsNubePredeterminado. Voces naturales con opciones de clonación de voz.
OpenAI TTSNubeAlta calidad, múltiples opciones de voz.
Voces del SOLocalVoces nativas del SO. Sin dependencia de la nube.

Registro de proveedores

Triggerfish usa un patrón de registro de proveedores tanto para STT como para TTS. Puede conectar cualquier proveedor compatible implementando la interfaz correspondiente:

typescript
interface SttProvider {
  transcribe(audio: Uint8Array, options?: SttOptions): Promise<string>;
}

interface TtsProvider {
  synthesize(text: string, options?: TtsOptions): Promise<Uint8Array>;
}

Configuración

Configure los ajustes de voz en triggerfish.yaml:

yaml
voice:
  stt:
    provider: whisper # whisper | deepgram | openai
    model: base # Tamaño del modelo Whisper (tiny, base, small, medium, large)
  tts:
    provider: elevenlabs # elevenlabs | openai | system
    voice_id: "your-voice" # Identificador de voz específico del proveedor
  wake_word: "triggerfish" # Palabra de activación personalizada
  push_to_talk:
    shortcut: "Ctrl+Space" # Atajo de teclado (macOS)

Integración de seguridad

Los datos de voz siguen las mismas reglas de clasificación que el texto:

  • La entrada de voz se clasifica igual que la entrada de texto. El habla transcrita entra en la sesión y puede escalar el taint igual que un mensaje escrito.
  • La salida TTS pasa por el hook PRE_OUTPUT antes de la síntesis. Si el motor de políticas bloquea la respuesta, nunca se pronuncia.
  • Las sesiones de voz llevan taint igual que las sesiones de texto. Cambiar a voz a mitad de sesión no reinicia el taint.
  • La detección de palabra de activación se ejecuta localmente. No se envía audio a la nube para la coincidencia de la palabra de activación.
  • Las grabaciones de audio (si se retienen) se clasifican al nivel de taint de la sesión.

El pipeline de voz se integrará con las aplicaciones complementarias Buoy en iOS y Android, habilitando pulsar para hablar y activación por voz desde dispositivos móviles. Buoy aún no está disponible. :::