跳到主要内容

使用语音模式

信息

SkillFlaw Desktop 不支持语音模式。 若要使用语音模式,请 从源码安装 SkillFlaw。

你可以使用 SkillFlaw 的语音模式,通过麦克风与扬声器,以语音方式与流程交互。

前置条件​

语音模式需要满足以下条件:

  • 一个包含 Chat Input、Language Model 和 Chat Output 组件的流程。

    如果你的流程中包含 Agent 组件,请确保流程里的工具名称与描述准确,以便代理正确选择要调用的工具。

    另外请注意:语音模式会覆盖 Agent 组件中 Agent Instructions 字段里的手工输入指令。

  • 一个 OpenAI 账户与 OpenAI API Key,因为 SkillFlaw 会使用 OpenAI API 处理语音输入并生成回复。

  • 可选:一个 ElevenLabs API Key,用于为 LLM 回复提供更多语音选项。

  • 麦克风与扬声器。

    为了获得更好的识别效果,建议使用高质量麦克风,并尽量降低环境噪音。

在 Playground 中测试语音模式​

在 Playground 中,点击 Microphone,即可启用语音模式,通过麦克风与扬声器和流程进行语音交互。

以下步骤以 Simple Agent 模板为例,演示如何启用语音模式:

  1. 基于 Simple Agent 模板创建一个流程。

  2. 在 Agent 组件中填入你的 OpenAI API Key 凭据。

  3. 点击 Playground。

  4. 点击 Microphone 图标,打开 Voice mode 对话框。

  5. 输入你的 OpenAI API Key,然后点击 Save。SkillFlaw 会把这个 Key 保存为一个 全局变量。

  6. 如果浏览器提示授权麦克风访问,你必须允许访问,否则无法进行语音输入。

  7. 在 Audio Input 中选择语音模式使用的输入设备。

  8. 可选:填入 ElevenLabs API Key,以启用更多回复语音。SkillFlaw 同样会把它保存为全局变量。

  9. 在 Preferred Language 中选择你希望与 LLM 对话时使用的语言。 这个选项会同时影响预期输入语言与回复语言。

  10. 对着麦克风讲话,开始聊天。

如果配置正确,波形会显示你的输入,随后代理执行逻辑与回复内容会以语音和 Playground 文本形式一并呈现。

使用 websocket 端点开发应用​

SkillFlaw 为流程暴露了两个兼容 OpenAI Realtime API 的 websocket 端点。 你可以像对接 OpenAI Realtime API websocket 一样,对接这些端点来构建应用。

SkillFlaw API 的 websocket 端点需要使用 OpenAI API Key 做鉴权,并支持通过 ElevenLabs API Key 启用可选 ElevenLabs 集成。

此外,这两个端点都要求你在路径中提供 flow ID。

语音到语音的音频流​

/ws/flow_as_tool/$FLOW_ID 会建立到 OpenAI Realtime voice 的连接,然后根据 OpenAI Realtime model 把指定流程作为工具调用。

这种方式适合低延迟应用,但确定性较弱,因为何时调用你的流程,是由 OpenAI 的语音到语音模型决定的。

语音转文本的音频转录​

/ws/flow_tts/$FLOW_ID 会先使用 OpenAI Realtime voice transcription 把音频转成文本,然后针对每段转录结果直接调用指定流程。

这种方式更可控,但延迟会更高。

这也是 SkillFlaw Playground 当前使用的模式。

websocket 端点中的 session ID​

这两个端点都支持可选的 /$SESSION_ID 路径参数,用于为对话指定唯一 ID。 如果未提供,SkillFlaw 会把 flow ID 作为默认 session ID。

但请注意:语音模式只会在当前会话实例内保留上下文。 当你关闭 Playground 或结束聊天后,语音聊天历史会被丢弃,不会自动延续到未来会话中。

另请参阅​