网站首页 > 技术教程 正文
项目简介
代理框架设计用于构建在服务器上运行的实时、可编程参与者。轻松访问 LiveKit WebRTC 会话并处理或生成音频、视频和数据流。
该框架包括用于常见工作流程的插件,例如语音活动检测和语音转文本。
代理与 LiveKit 服务器无缝集成,将作业排队和调度责任卸载给它。这样就不需要额外的排队基础设施了。在本地计算机上开发的代理代码在部署到生产中的服务器时,可以扩展以支持数千个并发会话。
此 SDK 当前处于开发者预览模式,尚未准备好用于生产。在此期间,将会出现错误,API 可能会发生变化。
安装
要安装核心代理库,请执行以下操作:
pip install livekit-agents
代理包括一组预构建的插件,可以更轻松地将代理组合在一起。这些插件涵盖了常见任务,例如将语音转换为文本,反之亦然,以及在生成式 AI 模型上运行推理。您可以按如下方式安装插件:
pip install livekit-plugins-deepgram
以下插件现已推出:
Plugin | Features |
livekit-plugins-deepgram | STT |
livekit-plugins-elevenlabs | TTS |
livekit-plugins-google | STT |
livekit-plugins-nltk | Utilities for working with text |
livekit-plugins-openai | Dalle 3, STT, TTS |
livekit-plugins-silero | VAD |
概念
- 代理:定义可编程服务器端参与者的工作流的函数。这是您的应用程序代码。
- Worker:负责管理 LiveKit 服务器作业队列的容器进程。每个工作线程能够同时运行多个代理。
- 插件:一个库类,用于执行来自特定提供程序的特定任务,例如语音转文本。代理可以将多个插件组合在一起以执行更复杂的任务。
运行代理
该框架公开一个 CLI 接口来运行代理。若要开始,需要设置以下环境变量:
- LIVEKIT_URL
- LIVEKIT_API_KEY
- LIVEKIT_API_SECRET
运行工作线程
这将启动工作线程并等待用户连接到您的 LiveKit 服务器:
python my_agent.py start
将 Playground 用于代理 UI
为了简化构建和测试代理的过程,我们开发了一个名为“playground”的多功能 Web 前端。您可以使用或修改此应用程序以满足您的特定要求。它还可以作为完全自定义代理应用程序的起点。
- Hosted playground 托管游乐场
- Source code 源代码
- Playground docs Playground 文档
加入特定聊天室
要加入已处于活动状态的 LiveKit 聊天室,您可以使用以下 simulate-job 命令:
python my_agent.py simulate-job --room-name <my-room>
我运行代理时会发生什么?
当您按照上述步骤运行代理时,将启动一个工作线程,该工作线程将打开与 LiveKit 服务器实例(由 your LIVEKIT_URL 定义并使用访问令牌进行身份验证)的经过身份验证的 WebSocket 连接。
此时实际上没有代理在运行。相反,工作线程正在等待 LiveKit 服务器为其分配作业。
创建聊天室时,服务器会通知其中一个已注册的工作人员有关新作业的信息。被通知的工人可以决定是否接受它。如果工作人员接受作业,工作人员将把你的代理实例化为参与者,并让它加入房间,在那里它可以开始订阅轨道。一个工作线程可以同时管理多个代理实例。
如果通知的工作人员在预定的超时期限内拒绝作业或未接受作业,则服务器会将作业请求路由到另一个可用的工作人员。
当我 SIGTERM 工人时会发生什么?
编排系统专为生产用例而设计。与典型的 Web 服务器不同,代理是一个有状态程序,因此在管理任何活动代理时不能终止工作线程非常重要。
在工作线程上调用 SIGTERM 时,工作线程将向 LiveKit 服务器发出信号,表明它不再需要额外的作业。它还将自动拒绝在收到服务器信号之前通过的任何新作业请求。工作线程在管理连接到房间的任何代理时将保持活动状态。
下载模型文件
某些插件需要先下载模型文件才能使用。若要下载代理的所有必要模型,请执行以下命令:
python my_agent.py download-files
如果您正在开发自定义插件,则可以通过在插件类中实现方法 download_files 来集成此功能:
class MyPlugin(Plugin):
def __init__(self):
super().__init__(__name__, __version__)
def download_files(self):
_ = torch.hub.load(
repo_or_dir="my-repo",
model="my-model",
)
项目链接
https://github.com/livekit/agents
猜你喜欢
- 2024-09-29 声网发布 Linux Server SDK 支持大模型 Python 与 Go 语言
- 2024-09-29 Android端实现多人视频语音聊天|音视频开发-大盘站
- 2024-09-29 如何使用Video SDK构建React视频通话应用
- 2024-09-29 WebRTC 系列之音频会话管理 webrtc语音通话
- 2024-09-29 如何利用音视频通话SDK轻松实现软件视频通话功能?
- 2024-09-29 FM语音电台直播开发用哪个第三方语音sdk好
- 2024-09-29 语音视频SDK如何实现超低延迟优化?
- 2024-09-29 实时音视频SDK是什么?实时音视频SDK功能介绍
- 2024-09-29 语音sdk是什么意思?即构语音SDK有哪些优势
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)