Skip to content

음성 파이프라인

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

아래 나열된 STT 및 TTS 제공자는 인터페이스 전용 스텁입니다. 제공자 인터페이스는 정의되어 있지만 구현은 아직 실제 음성 서비스에 연결되지 않았습니다. :::

Triggerfish는 macOS, iOS, Android에서 웨이크 워드 감지, 푸시 투 토크, 텍스트 음성 변환 응답을 포함한 음성 상호 작용을 지원합니다.

아키텍처

음성 파이프라인: 웨이크 워드 감지 → STT → 에이전트 처리 → TTS → 음성 출력

오디오는 텍스트와 동일한 에이전트 처리 파이프라인을 통해 흐릅니다. 음성 입력이 전사되고 분류된 메시지로 세션에 진입하며 정책 hook을 통과하고 응답이 다시 음성으로 합성됩니다.

음성 모드

모드설명플랫폼
Voice Wake구성 가능한 웨이크 워드에 대한 상시 수신macOS, iOS, Android
Push-to-Talk버튼 또는 키보드 단축키를 통한 수동 활성화macOS (메뉴 바), iOS, Android
Talk Mode연속 대화 음성모든 플랫폼

STT 제공자

음성 인식(Speech-to-Text)은 에이전트가 처리할 수 있도록 음성을 텍스트로 변환합니다.

제공자유형비고
Whisper로컬기본값. 기기에서 실행, 클라우드 종속성 없음. 개인 정보 보호에 최적.
Deepgram클라우드저지연 스트리밍 전사.
OpenAI Whisper API클라우드높은 정확도, API 키 필요.

TTS 제공자

텍스트 음성 변환(Text-to-Speech)은 에이전트 응답을 음성 오디오로 변환합니다.

제공자유형비고
ElevenLabs클라우드기본값. 음성 복제 옵션이 있는 자연스러운 음성.
OpenAI TTS클라우드고품질, 여러 음성 옵션.
System Voices로컬OS 네이티브 음성. 클라우드 종속성 없음.

제공자 레지스트리

Triggerfish는 STT와 TTS 모두에 대해 제공자 레지스트리 패턴을 사용합니다. 해당 인터페이스를 구현하여 호환 가능한 모든 제공자를 연결할 수 있습니다:

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

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

구성

triggerfish.yaml에서 음성 설정을 구성합니다:

yaml
voice:
  stt:
    provider: whisper # whisper | deepgram | openai
    model: base # Whisper 모델 크기 (tiny, base, small, medium, large)
  tts:
    provider: elevenlabs # elevenlabs | openai | system
    voice_id: "your-voice" # 제공자별 음성 식별자
  wake_word: "triggerfish" # 사용자 정의 웨이크 워드
  push_to_talk:
    shortcut: "Ctrl+Space" # 키보드 단축키 (macOS)

보안 연동

음성 데이터는 텍스트와 동일한 분류 규칙을 따릅니다:

  • 음성 입력은 텍스트 입력과 동일하게 분류됩니다. 전사된 음성은 세션에 진입하며 타이핑된 메시지와 마찬가지로 taint를 상승시킬 수 있습니다.
  • TTS 출력은 합성 전 PRE_OUTPUT hook을 통과합니다. 정책 엔진이 응답을 차단하면 절대 음성으로 출력되지 않습니다.
  • 음성 세션은 taint를 가집니다. 텍스트 세션과 마찬가지입니다. 세션 중간에 음성으로 전환해도 taint가 초기화되지 않습니다.
  • 웨이크 워드 감지는 로컬에서 실행됩니다. 웨이크 워드 매칭을 위해 클라우드로 오디오가 전송되지 않습니다.
  • 오디오 녹음(유지되는 경우)은 캡처 시 세션의 taint 수준으로 분류됩니다.

음성 파이프라인은 iOS 및 Android의 Buoy 컴패니언 앱과 통합되어 모바일 기기에서 푸시 투 토크와 음성 웨이크를 가능하게 합니다. Buoy는 아직 사용할 수 없습니다. :::