音声
概要
Neotaskは複数のシステムを通じた音声インタラクションをサポートしています:ウェイクワード検出、継続的な音声会話(トークモード)、音声による応答のためのテキスト読み上げ。
ウェイクワード
Swabble(macOS)
SwabbleはAppleのSpeech.frameworkを使用して常時オンのオンデバイス音声ウェイクワード検出を提供するネイティブのmacOSデーモンです。
特徴:
- ローカルのみの処理, , ウェイクワード検出中に音声がデバイスから送信されることはない
- カスタマイズ可能なウェイクワード
- 継続的な音声キャプチャと文字起こし
- フック実行, , ウェイクワードが検出されたときにシェルコマンドをトリガー
- ファイル文字起こし, , 音声ファイルをテキストに変換(TXTまたはSRT形式)
- 設定可能なクールダウン、最小文字数、タイムアウト
仕組み:
- Swabbleはシステムマイクを使用して継続的にリッスンする
- 発話テキストでウェイクワードを検出すると、続く音声をキャプチャする
- キャプチャされたテキストは設定されたフックコマンドを通じてエージェントに送信される
- エージェントは音声コマンドを処理して応答する
ノードのウェイクワード
iOSおよびAndroidのコンパニオンアプリでは、音声ウェイクはネイティブで処理されます:
- ウェイクワードの設定はGatewayが所有する
- ノードは接続時にウェイクワードの設定を受信する
- 検出はプラットフォームネイティブの音声認識を使用する
トークモード
トークモードは継続的な音声会話を可能にします, , 自然に話しかけ、エージェントの応答を聞くことができます。
仕組み
- 音声認識, 音声はリアルタイムで文字起こしされる(DeepgramストリーミングまたはプラットフォームネイティブのSTT)
- エージェント処理, 文字起こしされたテキストが通常のメッセージとしてエージェントに送信される
- テキスト読み上げ, エージェントの応答が音声として読み上げられる
音声ステートマシン
トークモードは4つの状態間を遷移します:
| 状態 | 説明 |
|---|---|
| アイドル | アクティブにリッスンしていない |
| リッスン中 | 音声をキャプチャして文字起こし中 |
| 思考中 | エージェントがリクエストを処理中 |
| 話し中 | エージェントの応答が読み上げられている |
テキスト読み上げプロバイダー
| プロバイダー | 説明 |
|---|---|
| ElevenLabs | 音声選択付きの高品質音声合成 |
| OpenAI TTS | OpenAIのテキスト読み上げAPI |
音声設定
- 音声選択, 利用可能なTTS音声から選択
- カスタムシステムプロンプト, 音声モード用のエージェントの個性を上書き
- カスタム応答フォーマット, エージェントが音声応答をフォーマットする方法を制御
- 言語サポート, 18以上の言語にローカライズされた音声文字列
音声コマンド
マルチインテント検出
エージェントはマルチステップの音声コマンドを検出・実行できます:
「明日の午後3時にカレンダーイベントを作成して、それについてチームにメールを送り、Slackにリマインダーを投稿して」
これは自動的にコマンドのシーケンスに解析され、各コマンドが順番に実行され、結果が次のステップに流れます。
ツール実行
音声会話中、エージェントはテキスト会話と同様にツールを実行できます, , Webを閲覧し、コードを実行し、ファイルを管理し、デバイスを制御するなど。結果は要約されて読み上げられます。
アクション真実性の強制
音声モードには、エージェントの主張が実際のツールの結果と一致することを検証する機能が含まれています。エージェントが「メールを送信しました」と言っても、メールツールが失敗した場合、システムはその不一致を検出して実際の結果を報告します。
音声通話(プラグイン)
音声通話プラグインはSIPテレフォニーサポートを追加します:
- 着信通話の処理
- 発信通話(プロバイダーによる)
- リアルタイム双方向音声(PCMストリーム)
- 通話音声に注入されるTTS合成
クォータ管理
音声サービスには使用クォータがある場合があります:
- TTS + STTの月次分配分
- セッションごとの追跡
- 使用量80%での警告
- クォータ制限での自動カットオフ