# 語音 ## 概述 Neotask 透過多個系統支援語音互動:喚醒詞偵測、連續語音對話(通話模式),以及用於朗讀回應的文字轉語音。 ## 喚醒詞 ### Swabble(macOS) Swabble 是一個原生 macOS daemon,使用 Apple 的 Speech.framework 提供始終開啟的**裝置端**語音喚醒詞偵測。 **功能:** - 純本機處理, , 在喚醒詞偵測期間,不會有任何音訊離開您的裝置 - 可自訂喚醒詞 - 連續音訊擷取和轉錄 - 鉤子執行, , 偵測到喚醒詞時觸發 shell 命令 - 檔案轉錄, , 將音訊檔案轉換為文字(TXT 或 SRT 格式) - 可設定的冷卻時間、最少字元數和超時 **工作原理:** 1. Swabble 使用系統麥克風持續監聽 2. 當它在語音文字中偵測到喚醒詞時,它擷取後續的語音 3. 擷取的文字透過設定的鉤子命令傳送至您的代理程式 4. 代理程式處理語音命令並回應 ### 節點喚醒詞 在 iOS 和 Android 伴侶應用程式上,語音喚醒由原生處理: - 喚醒詞設定由 Gateway 擁有 - 節點在連接時接收喚醒詞設定 - 偵測使用平台原生語音辨識 ## 通話模式 通話模式支援連續語音對話, , 自然說話並聆聽代理程式回應。 ### 工作原理 1. **語音轉文字**, 您的語音即時轉錄(Deepgram 串流或平台原生 STT) 2. **代理程式處理**, 轉錄的文字作為普通訊息傳送至您的代理程式 3. **文字轉語音**, 代理程式的回應朗讀給您 ### 語音狀態機 通話模式在四個狀態之間轉換: | 狀態 | 說明 | |------|------| | **Idle** | 未主動監聽 | | **Listening** | 擷取並轉錄您的語音 | | **Thinking** | 代理程式正在處理您的請求 | | **Speaking** | 代理程式的回應正在朗讀 | ### 文字轉語音提供者 | 提供者 | 說明 | |--------|------| | **ElevenLabs** | 高品質語音合成,支援聲音選擇 | | **OpenAI TTS** | OpenAI 的文字轉語音 API | ### 語音偏好 - **聲音選擇**, 從可用的 TTS 聲音中選擇 - **自訂系統提示**, 為語音模式覆蓋代理程式的個性 - **自訂回應格式**, 控制代理程式如何格式化口語回應 - **語言支援**, 語音字串已針對 18 種以上語言本地化 ## 語音命令 ### 多意圖偵測 代理程式可以偵測並執行多步驟語音命令: > 「Create a calendar event for tomorrow at 3 PM, then send an email to the team about it, and post a reminder in Slack」 這自動解析為一系列命令,每個命令按順序執行,結果流向下一步。 ### 工具執行 在語音對話期間,代理程式可以像在文字對話中一樣執行工具, , 瀏覽網頁、執行程式碼、管理檔案、控制裝置等。結果被摘要並朗讀回來。 ### 動作真相執行 語音模式包括驗證,確保代理程式的聲明與實際工具結果相符。如果代理程式說「我已傳送電子郵件」但電子郵件工具失敗,系統會捕捉到不一致並報告實際結果。 ## 語音通話(外掛) 語音通話外掛添加 SIP 電話支援: - 入站通話處理 - 出站通話(取決於提供者) - 即時雙向音訊(PCM 串流) - 注入通話音訊的 TTS 合成 ## 配額管理 語音服務可能有使用量配額: - TTS + STT 的每月分鐘分配 - 每工作階段追蹤 - 使用量達 80% 時發出警告 - 達到配額限制時自動截止