找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2121

积分

0

好友

297

主题
发表于 昨天 03:58 | 查看: 4| 回复: 0

项目地址:https://github.com/restsend/active-call

效果预览

Active-call Playbook Debugger界面与对话流程示例

关键改进:纯 Rust 实现的 VAD 引擎

本次更新最关键的改进在于移除了对 onnxruntime 处理 Silero VAD 的依赖。我们重新用 Rust 手写了 Silero VAD 的推理逻辑,实现了显著的性能提升(约 2.5 倍)以及更低的内存占用。

以下是优化后的性能对比数据:

VAD Engine Implementation Time (60s) RTF (Ratio) Note
TinySilero Rust (Optimized) ~60.0 ms 0.0010 >2.5x faster than ONNX
ONNX Silero ONNX Runtime ~158.3 ms 0.0026 Standard baseline
WebRTC VAD C/C++ (Bind) ~3.1 ms 0.00005 Legacy, less accurate

引入 Playbook:简化 Voice Agent 开发流程

考虑到之前基于 WebSocket 的 API 较为底层,开发者想要构建一个完整的 Voice Agent 流程会有些繁琐。因此,我们引入了一个全新的、可扩展的 playbook 方案。你可以基于 Markdown 格式轻松定义和配置你的语音助手。

一个基础的 playbook 配置示例如下:

---
asr:
  provider: “aliyun”
llm:
  provider: “aliyun”
  model: “qwen-turbo”
tts:
  provider: “aliyun”
vad:
  provider: “silero”
denoise: true
greeting: “您好,我是您的AI助理,请问有什么可以帮您?”
interruption: “both”
recorder:
  recorderFile: “hello_{id}.wav”
---
# Role and Purpose
You are an intelligent, polite AI assistant. Your goal is to help users with their inquiries efficiently.

# Tool Usage
- When the user expresses a desire to end the conversation (e.g., “goodbye”, “hang up”, “I’m done”), you MUST provide a polite closing statement AND call the `hangup` tool.
- Always include your response text in the `text` field and any tool calls in the `tools` array.

# Example Response for Hanging Up:
json
{
  “text”: “很高兴能为您服务,如果您还有其他问题,欢迎随时联系。再见!”,
  “tools”: [{“name”: “hangup”}]
}
---

核心特性与技术优势

  • 内置 SIP 支持active-call 是目前唯一内置 SIP 协议支持的 Voice-Agent SDK,这意味着你可以直接将其与 SIP 网关对接,轻松实现 AI 与电话系统的集成。
  • LLM 流式输出:现已支持大语言模型的流式输出,可以实现“边思考边讲话”的更自然交互体验,有效降低响应延迟感。
  • 卓越的性能表现:与 Pipecat、Livekit 等框架相比,active-call 更加专注于语音通话场景,并在性能上做了深度优化。实测在 2核4G 的常规配置下,可轻松支持 200路并发,并能保证长时间的稳定运行。
  • 保留底层 WebSocket API:我们仍然提供了最基础的 WebSocket API,允许开发者通过 WebSocket 协议精细控制每一路通话。这为需要深度定制的开发者提供了极大的灵活性。

从实际的通话性能数据来看,基于 active-call 框架已经能够实现非常流畅的 AI 语音对话体验,端到端的延迟基本可以控制在 800ms 以内

如果你对构建高性能语音应用或深入探索 开源实战 感兴趣,欢迎在 云栈社区 交流讨论更多技术细节。




上一篇:渗透测试实战:某证书站系统八处漏洞分析与GetShell过程
下一篇:Rust实战案例:用自研数据库HorizonDB替换Elasticsearch/MongoDB,性能成本双优化
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-16 00:34 , Processed in 1.250502 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表