Skip to content

Pipeline Vocale

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

I provider STT e TTS elencati di seguito sono stub di sole interfacce.

Le interfacce dei provider sono definite ma le implementazioni non sono ancora connesse a servizi vocali effettivi. :::

Triggerfish supporta l'interazione vocale con rilevamento della parola di attivazione, push-to-talk e risposta text-to-speech su macOS, iOS e Android.

Architettura

Pipeline vocale: Rilevamento Parola di Attivazione → STT → Elaborazione Agent → TTS → Output Vocale

L'audio fluisce attraverso la stessa pipeline di elaborazione dell'agent del testo. L'input vocale viene trascritto, entra nella sessione come messaggio classificato, passa attraverso gli hook di policy e la risposta viene sintetizzata in voce.

Modalità Vocali

ModalitàDescrizionePiattaforma
Voice WakeAscolto continuo per una parola di attivazione configurabilemacOS, iOS, Android
Push-to-TalkAttivazione manuale tramite pulsante o scorciatoia da tastieramacOS (barra dei menu), iOS, Android
Talk ModeConversazione vocale continuaTutte le piattaforme

Provider STT

Il speech-to-text converte la voce in testo per l'elaborazione dell'agent.

ProviderTipoNote
WhisperLocalePredefinito. Eseguito sul dispositivo, nessuna dipendenza cloud. Migliore per la privacy.
DeepgramCloudTrascrizione in streaming a bassa latenza.
OpenAI Whisper APICloudAlta precisione, richiede chiave API.

Provider TTS

Il text-to-speech converte le risposte dell'agent in audio parlato.

ProviderTipoNote
ElevenLabsCloudPredefinito. Voci dal suono naturale con opzioni di clonazione vocale.
OpenAI TTSCloudAlta qualità, opzioni vocali multiple.
System VoicesLocaleVoci native del SO. Nessuna dipendenza cloud.

Registro dei Provider

Triggerfish utilizza un pattern di registro dei provider sia per STT che per TTS. È possibile collegare qualsiasi provider compatibile implementando l'interfaccia corrispondente:

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

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

Configurazione

Configurare le impostazioni vocali in triggerfish.yaml:

yaml
voice:
  stt:
    provider: whisper # whisper | deepgram | openai
    model: base # Dimensione modello Whisper (tiny, base, small, medium, large)
  tts:
    provider: elevenlabs # elevenlabs | openai | system
    voice_id: "your-voice" # Identificatore vocale specifico del provider
  wake_word: "triggerfish" # Parola di attivazione personalizzata
  push_to_talk:
    shortcut: "Ctrl+Space" # Scorciatoia da tastiera (macOS)

Integrazione con la Sicurezza

I dati vocali seguono le stesse regole di classificazione del testo:

  • L'input vocale è classificato come l'input testuale. Il parlato trascritto entra nella sessione e può aumentare il taint proprio come un messaggio digitato.
  • L'output TTS passa attraverso l'hook PRE_OUTPUT prima della sintesi. Se il motore delle policy blocca la risposta, non viene mai pronunciata.
  • Le sessioni vocali portano il taint proprio come le sessioni testuali. Passare alla voce a metà sessione non resetta il taint.
  • Il rilevamento della parola di attivazione viene eseguito localmente. Nessun audio viene inviato al cloud per il matching della parola di attivazione.
  • Le registrazioni audio (se conservate) sono classificate al livello di taint della sessione.

La pipeline vocale si integrerà con le app companion Buoy su iOS e

Android, abilitando push-to-talk e attivazione vocale da dispositivi mobili. Buoy non è ancora disponibile. :::