Skip to content

音声パイプライン

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

以下に記載されているSTTおよびTTSプロバイダーはインターフェースのみのスタブです。

プロバイダーインターフェースは定義されていますが、実装はまだ実際の音声サービスに接続されていません。 :::

Triggerfishは起動ワード検出、プッシュトゥトーク、macOS、iOS、Androidにわたるテキスト読み上げ応答を 備えた音声インタラクションをサポートします。

アーキテクチャ

音声パイプライン:起動ワード検出 → STT → エージェント処理 → TTS → 音声出力

音声はテキストと同じエージェント処理パイプラインを通流します。音声入力は文字起こしされ、 分類されたメッセージとしてセッションに入り、ポリシーフックを通過し、応答が音声に合成されます。

音声モード

モード説明プラットフォーム
ボイスウェイク設定可能な起動ワードの常時リッスンmacOS、iOS、Android
プッシュトゥトークボタンまたはキーボードショートカットによる手動起動macOS(メニューバー)、iOS、Android
トークモード連続的な会話型音声すべてのプラットフォーム

STTプロバイダー

音声認識(STT)はあなたの声をエージェントが処理するためのテキストに変換します。

プロバイダータイプメモ
Whisperローカルデフォルト。デバイス上で実行、クラウド依存なし。プライバシーに最適。
Deepgramクラウド低レイテンシのストリーミング文字起こし。
OpenAI Whisper APIクラウド高精度、APIキーが必要。

TTSプロバイダー

テキスト読み上げ(TTS)はエージェントの応答を音声に変換します。

プロバイダータイプメモ
ElevenLabsクラウドデフォルト。音声クローンオプションを持つ自然な音声。
OpenAI TTSクラウド高品質、複数の音声オプション。
システムボイスローカル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フックを通過します。 ポリシーエンジンが応答をブロックした場合、 それは話されることはありません。
  • 音声セッションはtaintを持ちます。 テキストセッションと同様です。セッション途中で音声に切り替えても taintはリセットされません。
  • 起動ワード検出はローカルで実行されます。 起動ワードのマッチングのために音声がクラウドに送信される ことはありません。
  • 音声録音(保持される場合)はセッションのtaintレベルで分類されます。

音声パイプラインはiOSとAndroidのBuoyコンパニオンアプリと統合し、モバイルデバイスからの

プッシュトゥトークと音声ウェイクを可能にします。Buoyはまだ利用できません。 :::