语音
概述
Neotask 通过多个系统支持语音交互:唤醒词检测、连续语音对话(对话模式)和文字转语音的语音响应。
唤醒词
Swabble(macOS)
Swabble 是一个原生 macOS 守护进程,使用 Apple 的 Speech.framework 提供始终在线的设备端语音唤醒词检测。
特性:
- 本地处理 -- 唤醒词检测期间没有音频离开您的设备
- 可自定义唤醒词
- 连续音频采集和转录
- Hook 执行 -- 检测到唤醒词时触发 shell 命令
- 文件转录 -- 将音频文件转换为文本(TXT 或 SRT 格式)
- 可配置的冷却时间、最小字符数和超时
工作原理:
- Swabble 使用系统麦克风持续监听
- 当它在语音文本中检测到唤醒词时,捕获后续语音
- 捕获的文本通过配置的 hook 命令发送到您的代理
- 代理处理语音命令并响应
节点唤醒词
在 iOS 和 Android 伴侣应用上,语音唤醒由原生处理:
- 唤醒词配置由 Gateway 管理
- 节点在连接时接收唤醒词配置
- 检测使用平台原生语音识别
对话模式
对话模式支持连续语音对话 -- 自然地说话并听到代理回应。
工作原理
- 语音转文字 -- 您的语音实时转录(Deepgram 流式传输或平台原生 STT)
- 代理处理 -- 转录的文本作为常规消息发送给您的代理
- 文字转语音 -- 代理的回复以语音形式回放给您
语音状态机
对话模式在四种状态之间转换:
| 状态 | 描述 |
|---|---|
| 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"
这会自动解析为一系列命令,每个按顺序执行,结果流向下一步。
工具执行
在语音对话期间,代理可以像在文字对话中一样执行工具 -- 浏览网页、运行代码、管理文件、控制设备等。结果被总结并以语音播放。
操作真实性验证
语音模式包含验证,确保代理的声明与实际工具结果一致。如果代理说"我已发送邮件"但邮件工具失败了,系统会捕获这一差异并报告实际结果。
语音通话(插件)
Voice Call 插件添加 SIP 电话支持:
- 来电处理
- 去电(依赖提供商)
- 实时双向音频(PCM 流)
- TTS 合成注入通话音频
配额管理
语音服务可能有使用配额:
- TTS + STT 的每月分钟分配
- 按会话跟踪
- 使用量达 80% 时警告
- 达到配额限制时自动截止