Skip to content

Voice-Pipeline

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

Die unten aufgefuehrten STT- und TTS-Anbieter sind nur Interface-Stubs. Die Anbieter-Interfaces sind definiert, aber die Implementierungen sind noch nicht mit tatsaechlichen Sprachdiensten verbunden. :::

Triggerfish unterstuetzt Sprachinteraktion mit Wake-Word-Erkennung, Push-to-Talk und Text-to-Speech-Antwort auf macOS, iOS und Android.

Architektur

Voice-Pipeline: Wake-Word-Erkennung --> STT --> Agenten-Verarbeitung --> TTS --> Sprachausgabe

Audio durchlaeuft dieselbe Agenten-Verarbeitungs-Pipeline wie Text. Spracheingabe wird transkribiert, tritt als klassifizierte Nachricht in die Session ein, durchlaeuft Policy-Hooks, und die Antwort wird zurueck in Sprache synthetisiert.

Sprachmodi

ModusBeschreibungPlattform
Voice WakePermanentes Lauschen auf ein konfigurierbares Wake-WortmacOS, iOS, Android
Push-to-TalkManuelle Aktivierung ueber Taste oder TastenkombinationmacOS (Menuleiste), iOS, Android
Talk ModeKontinuierliche KonversationsspracheAlle Plattformen

STT-Anbieter

Speech-to-Text wandelt Ihre Stimme in Text um, den der Agent verarbeitet.

AnbieterTypHinweise
WhisperLokalStandard. Laeuft auf dem Geraet, keine Cloud-Abhaengigkeit. Am besten fuer Privatsphaere.
DeepgramCloudLatenzarme Streaming-Transkription.
OpenAI Whisper APICloudHohe Genauigkeit, erfordert API-Schluessel.

TTS-Anbieter

Text-to-Speech wandelt Agenten-Antworten in gesprochenes Audio um.

AnbieterTypHinweise
ElevenLabsCloudStandard. Natuerlich klingende Stimmen mit Stimmenklonungs-Optionen.
OpenAI TTSCloudHohe Qualitaet, mehrere Stimmoptionen.
System VoicesLokalBetriebssystem-native Stimmen. Keine Cloud-Abhaengigkeit.

Anbieter-Registry

Triggerfish verwendet ein Anbieter-Registry-Muster fuer sowohl STT als auch TTS. Sie koennen jeden kompatiblen Anbieter einbinden, indem Sie das entsprechende Interface implementieren:

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

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

Konfiguration

Konfigurieren Sie Spracheinstellungen in triggerfish.yaml:

yaml
voice:
  stt:
    provider: whisper # whisper | deepgram | openai
    model: base # Whisper-Modellgroesse (tiny, base, small, medium, large)
  tts:
    provider: elevenlabs # elevenlabs | openai | system
    voice_id: "your-voice" # Anbieterspezifische Stimmkennung
  wake_word: "triggerfish" # Benutzerdefiniertes Wake-Wort
  push_to_talk:
    shortcut: "Ctrl+Space" # Tastenkombination (macOS)

Sicherheitsintegration

Sprachdaten folgen denselben Klassifizierungsregeln wie Text:

  • Spracheingabe wird gleich wie Texteingabe klassifiziert. Transkribierte Sprache tritt in die Session ein und kann Taint eskalieren, genau wie eine getippte Nachricht.
  • TTS-Ausgabe durchlaeuft den PRE_OUTPUT-Hook vor der Synthese. Wenn die Policy-Engine die Antwort blockiert, wird sie nie gesprochen.
  • Sprach-Sessions tragen Taint, genau wie Text-Sessions. Der Wechsel zu Sprache waehrend einer Session setzt den Taint nicht zurueck.
  • Wake-Word-Erkennung laeuft lokal. Kein Audio wird zur Wake-Word-Erkennung in die Cloud gesendet.
  • Audio-Aufnahmen (falls aufbewahrt) werden auf der Taint-Stufe der Session zum Zeitpunkt der Erfassung klassifiziert.

Die Voice-Pipeline wird sich mit Buoy-Companion-Apps auf iOS und Android integrieren und Push-to-Talk und Voice Wake von mobilen Geraeten ermoeglichen. Buoy ist noch nicht verfuegbar. :::