livekit-plugins-openai 插件指向 Venice 的基础 URL,来驱动语音智能体的全部三个阶段——语音转文本 (STT)、LLM 和 文本转语音 (TTS)。
Venice 适用于 LiveKit Agents 中的 STT-LLM-TTS 管线 架构。Venice 未提供 OpenAI Realtime(语音到语音)WebSocket API,因此
RealtimeModel / 多模态路径不可用。请使用下方展示的组件化管线——它让你完全掌控每个模型,并将推理保留在 Venice 的私有基础设施上。Venice 如何映射到 LiveKit Agents
安装配置
安装框架及下方使用到的插件:当省略
api_key 时,OpenAI 插件会回退到 OPENAI_API_KEY。由于你将其指向 Venice,请始终显式传入 api_key(否则密钥会从错误的变量中读取)。下方示例读取的是 VENICE_API_KEY。完整语音智能体
这是一个完整的语音智能体:使用 Venice STT 转录、Venice LLM 思考、Venice TTS 发声。Silero 提供本地语音活动检测,让批量式 STT 知道一个轮次何时结束。配置各个组件
LLM
LLM 的映射最为直接——Venice/chat/completions 支持 SSE 流式传输、工具调用和视觉,这些能力 LiveKit 都能直接使用。venice-uncensored-1-2 让推理保持私密且无审查,同时喂给 TTS 管线;只有在需要更短首 token 时间时才考虑 flash 级模型。
extra_body 传入 Venice 特有的选项(网络搜索、角色人设、思考控制):
语音转文本
LiveKit 的 OpenAI STT 会在每个语音片段上调用/audio/transcriptions,因此需要 VAD(上文的 Silero)来检测轮次何时结束。请将默认模型覆盖为一个 Venice STT 模型。nvidia/parakeet-tdt-0.6b-v3 是最小、延迟最低的选择;如果你追求更高的准确率,stt-xai-v1 和 elevenlabs/scribe-v2 是更新的替代方案。
文本转语音
LiveKit 的 OpenAI TTS 会调用/audio/speech。在 Venice 中,声音与模型绑定——请传入同一个模型的 model/voice 对。tts-kokoro 让语音阶段保持私密且无审查,从而可以原封不动地朗读 LLM 的输出;请求 pcm 可以省去 MP3 解码步骤,减少少量延迟。更快的第三方供应商声音(如 Gemini)可能会做内容过滤,若你需要无审查语音则应避免使用。
推荐模型
模型 ID 会随时间变化——请在运行时通过GET /models?type=... 和 GET /models/traits 发现当前可用选项,而不是硬编码。对于语音智能体,请优先选择低延迟层级(名称包含 flash、turbo、mini 或参数量较小的模型),因为响应感受取决于首 token 时间和 TTS 速度。以下是当前目录中的合理起点:
浏览全部模型
按文本、语音转文本和文本转语音进行筛选,查看实时价格与能力。
延迟与生产实践建议
语音智能体的质量主要由轮次切换延迟决定——即用户说完到智能体开始回话之间的时间。使用全 Venice 管线时,大致预算如下:
预期 首段音频约 0.8–1.5 秒——非常适合助手式、节奏稳健的轮次交互。对于高度可打断、频繁交叠的对话,你会感受到与原生语音到语音模型之间的差距。
降低延迟
- 在 TTS 上使用
response_format="pcm",跳过 MP3 解码步骤。 - 调优 Silero VAD(
silero.VAD.load(min_silence_duration=0.4)),在不截断说话的前提下缩短端点检测。 - 为 STT/TTS 选用低延迟层级(例如
tts-kokoroTTS、nvidia/parakeet-tdt-0.6b-v3STT)。LLM 保留venice-uncensored-1-2以保持私密和无审查;只有当你需要更快的首 token 时间时才切换到flash级 LLM。 - 保持回复简洁——第一句话决定了感知响应速度。
混合服务提供方
LiveKit 允许你独立选择每个组件,因此你可以在最需要 Venice 的隐私和无审查特性时保留它,而在延迟至关重要的地方接入流式服务提供方。一种常见的高交互性配置是保留 Venice LLM(并可选保留 STT),并搭配专用的流式 TTS:限制与注意事项
- 不支持语音到语音 / Realtime API。 Venice 没有 OpenAI Realtime WebSocket,因此
openai.realtime.RealtimeModel和多模态智能体路径不可用。请使用上文所示的 STT-LLM-TTS 管线。 - STT 是批量式而非流式。 Venice 转录采用请求/响应模式,因此需要 VAD(Silero)来做端点检测。相比流式 STT 套接字,这会带来少量额外延迟。
- TTS 由插件缓冲。 LiveKit 的 OpenAI TTS 封装报告
streaming=False,因此不会使用 Venice 逐句的streaming标志。对大多数智能体而言延迟仍然可以接受;使用response_format="pcm"可最大限度减少解码开销。 - 让声音与模型匹配。 TTS
voiceID 仅对对应的model有效。参见 文本转语音模型。 - 不要硬编码模型列表。 Venice 模型 ID 会定期弃用与替换——请在运行时查询
GET /models/GET /models/traits。参见 弃用说明。