用一句语音驱动实时虚拟试衣:Vision Agents + Decart Lucy 换装语音智能体完整指南
用一句语音驱动实时虚拟试衣Vision Agents Decart Lucy 换装语音智能体完整指南【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents在 Vision-Agents 框架里把 Decart 的 Lucy 实时模型接进一个语音智能体就能搭出一套实时虚拟试衣系统你对着摄像头说给我换一套超级英雄服装几帧之后画面里的人就穿上了对应造型助手还会用带情绪的嗓音把变化念出来。它不靠截图、不离线渲染而是边通话边逐帧重绘。下面拆开这套换装语音智能体是怎么拼出来的。五分钟跑起来这个示例在 plugins/decart/example/用 uv 管依赖。跑通它需要三件事装依赖、配钥匙、执行入口。前置条件Python 3.10 及以上示例与插件的pyproject.toml都声明了requires-python 3.10。六把 API 钥匙分别对应链路里的五个角色OPENAI_API_KEY意图理解选哪个 toolDECART_API_KEY视频实时重绘ELEVENLABS_API_KEY文本转语音DEEPGRAM_API_KEY语音转文本STREAM_API_KEYSTREAM_API_SECRET音视频低延迟传输底座装依赖cd plugins/decart/example uv sync它一次拉齐vision-agents加 openai / decart / elevenlabs / getstream / deepgram 五个插件包。若你要在自己的项目里单独用这个插件装法是uv add vision-agents[decart] # 或直接装插件包 uv add vision-agents-plugins-decart插件本身依赖官方 SDKdecart0.0.34,0.0.36底层走 WebSocket 和 Decart Realtime API 通信。配钥匙在 example 目录放一个.env把上面六行KEY值填进去。代码开头一句load_dotenv()会把它读进来。DECART_API_KEY也可以直接写进构造函数RestylingProcessor(api_key...)两种方式留其一即可。启动uv run decart_example.py run入口是Runner(AgentLauncher(create_agentcreate_agent, join_calljoin_call)).cli()。启动后它会建一路视频通话、在浏览器打开演示界面、把智能体拉进会里先念一句问候然后进入持续待命状态等你开口。一句话如何变成一身新衣服先看数据流再挑几个关键类下钻。一次换装请求经过的完整路径是拾音转文本你说的话由 Deepgram STT 变成文字。意图判断OpenAI GPT-5 读完对话决定该调change_costume预设服装还是change_outfit自由描述。原子换装选中的 tool 去调处理器的update_state(prompt..., image...)提示词和参考图一起下发给 Lucy。逐帧重绘lucy_2_rt模型把用户视频流重新装扮新帧经DecartVideoTrack发布回通话。播报收尾ElevenLabs TTS 用一句短话把换好了念出来。语音、意图、重绘、播报四步各司其职真正的魔法集中在处理器这一环。点状深潜一RestylingProcessor 与原子换装RestylingProcessor 属于VideoProcessorPublisher类型——既吃进用户的入向视频轨又把重绘后的轨发回通话。它提供两个对外方法是换装的全部出口await processor.update_state(promptA person wearing a superhero costume, imagehttps://.../superhero.png) # 提示词 参考图一次下发 await processor.update_prompt(a wizard robe) # 只改提示词update_state对应 JS SDK 的realtimeClient.set({ prompt, enhance, image })。这里的原子是关键提示词和参考图在同一次更新里同时生效输出视频不会出现换到一半的中间态。约束和行为如下——prompt和image至少给一个两者都空会抛ValueError(At least one of prompt or image must be provided)。enhance是否增强提示词不显式传时回落到实例的enhance属性默认True。更新成功后会同步记回initial_prompt/initial_image方便后续状态追踪。还没连上 Decart 时调用是 no-op只打一条 debug 日志不会崩。update_prompt只是update_state(prompt..., enhance...)的快捷方式没有额外逻辑。点状深潜二两个 tool 的分工预设走change_costume命不中再落change_outfit。前者查COSTUMES字典命中就原子换装没命中把可用列表回给 LLM后者看有没有参考图 URL——有就update_state没有就退化成纯提示词update_promptllm.register_function(descriptionPut the user in one of the pre-defined costumes.) async def change_costume(name: str) - str: costume COSTUMES.get(name.lower()) if costume is None: return fUnknown costume {name}. Available: {, .join(COSTUMES)}. await processor.update_state(promptcostume[prompt], imagecostume[image]) return fCostume changed to {name}. llm.register_function(descriptionChange the users outfit to a freeform description.) async def change_outfit(description: str, image_url: str) - str: if image_url: await processor.update_state(promptdescription, imageimage_url) else: await processor.update_prompt(description) return fOutfit changed: {description}COSTUMES就是预设库示例里预置了jacket和superhero两条每条含一个prompt和一张可选的image。image为None时只靠提示词驱动风格化。点状深潜三DecartVideoTrack 的帧管线重绘回来的帧不是直接推给通话的中间隔着一个DecartVideoTrack。它用VideoLatestNQueue(maxlen2)只留最新两帧进来的帧尺寸和配置不符时先resize_frame统一到设定的width/height默认 1280×720。recv()在 0.033 秒内没拿到新帧时会回退到一张深色占位帧RGB 30,30,40保证输出轨始终有帧可读、不卡死通话。连接触发点也很克制process_video每收到一路新视频轨就会保存它并触发与 Decart 的连接但用_connecting/_connected标志加asyncio.Lock挡重入避免重复建连。配置速查RestylingProcessor构造函数可调项一览参数默认值说明api_key读环境变量DECART_API_KEYDecart 钥匙两者皆无则抛ValueErrormodellucy_2_rtDecart 实时模型名initial_promptCyberpunk city初始风格提示词initial_imageNone初始参考图见下方支持格式enhanceTrue是否增强提示词mirrorTrue前置摄像头镜像模式width/height1280/720输出分辨率模型偏好值update_state和update_prompt另有一个可选enhance入参可在单次调用时临时覆盖实例默认值。参考图支持五种输入形式initial_image与update_state(image...)通用bytes原始字节、本地文件路径如./costumes/superhero.png、http(s) URL、data:URI、原始 base64 字符串。让第一帧就穿好衣服把参考图传给initial_image首次连接时它随ModelState一起发给 Decart用户一入会画面就已经是重绘后的造型不用等第一句指令。processor decart.RestylingProcessor( modellucy_2_rt, initial_promptA person wearing a superhero costume, initial_image./costumes/superhero.png, )增删预设直接改COSTUMES字典每条必须有promptimage可省。换音色改elevenlabs.TTS(voice_id...)里的voice_id即可。instructions里还要求每次变换后用一句短话口头播报并允许嵌入[sigh]、[excited]、[pause]、[rushed]、[tired]等音频标签增强表现力。排错与 FAQ如果update_state两个参数都传None会怎样抛ValueError错误信息直接点名至少要提供prompt或image之一。这是唯一会被主动抛出的参数校验。如果还没连上 Decart 就调update_state不报错、不建连是个 no-op只留一条 debug 日志。等连接建立后你再调才会真正生效所以别指望它替你预热。如果 WebSocket 断了会自动重连吗会。连接丢失分两条路兜底_processing_loop每秒自检一次发现断了就重连_on_error拿到错误后按_should_reconnect判定——WebSocket 关闭、或 SDK 错误信息里含connection/disconnect/timeout时触发重连。但认证类错误比如 invalid api key不重连重连也没用。如果 API key 填错会怎样DECART_API_KEY缺失且没传api_key时构造函数直接抛ValueErrorkey 存在但无效属于认证错误处理器不会陷入无意义的重连循环。如果用户要的服装不在预设列表里change_costume查不到会返回可用列表给 LLM由它转投change_outfit走自由换装链路不会中断。如果输出帧尺寸和配置不一致DecartVideoTrack自动resize_frame到设定分辨率不需要你手动对齐。仓库自带测试覆盖上述行为契约可作为排错时的参照test_decart_restyling.py连接触发、防重入、原子更新、no-op、参数校验、初始参考图传递、自动重连、错误分类和 test_decart_video_track.py尺寸、入队、缩放、占位帧回退。延伸方向只做动态风格切换如果不需要参考图丢掉image参数、全程只用update_prompt就能把这套换装智能体简化成一个纯文字驱动的实时风格滤镜。横向对照其他示例本例和仓库里的 golf coach、security camera 等示例共用同一套 Agent / Runner / 插件体系把processors换成别的处理器就能换成不同场景装配方式完全一致。换用实时 LLM示例用 GPT-5 做意图判断你也可以换成框架支持的 Realtime 模型把理解—决策—播报压进更短的往返延迟里。更多插件用法看 plugins/decart/ 的 README其余语音/视觉示例在 examples/ 下逐个可跑。【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

@firebase/installations-compat 兼容层深度解析:Firebase Installations 从模块化 SDK 到命名空间 API 的桥接与演进

@firebase/installations-compat 兼容层深度解析:Firebase Installations 从模块化 SDK 到命名空间 API 的桥接与演进

开发工具后端 【免费下载链接】firebase-js-sdk Firebase Javascript SDK 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-js-sdk 点击查看 免费下载 firebase/installations-compat 是 Firebase JavaScript SDK 中专门为“旧式”命名空间 API(…

2026/10/16 6:19:51 阅读更多 →
Optiland端到端案例实战:从需求到处方报告,完整设计一枚双胶合透镜

Optiland端到端案例实战:从需求到处方报告,完整设计一枚双胶合透镜

【免费下载链接】optiland Comprehensive optical design, optimization, and analysis in Python, including GPU-accelerated and differentiable ray tracing via PyTorch. 项目地址: https://gitcode.com/gh_mirrors/op/optiland 点击查看 免费下载 Optiland 是…

2026/10/16 6:19:51 阅读更多 →
模型离线准确率 95%,上线却没人敢停机?PHM 预测性维护项目被故障标签定义混乱拖垮的真相

模型离线准确率 95%,上线却没人敢停机?PHM 预测性维护项目被故障标签定义混乱拖垮的真相

"你们这个 PHM 模型上周又报了三次主轴即将失效,产线主管说查了一圈啥事没有,直接把告警关了。我花三百万上的预测性维护系统,到底是在帮我还是添乱?"这是某电子厂设备总监在模型验收会上甩出的一句话,也是过…

2026/10/16 6:19:51 阅读更多 →

最新新闻

Hadoop与Spark对比:从计算模型到选型实践

Hadoop与Spark对比:从计算模型到选型实践

1. 先理清一个误区:Hadoop和Spark根本不是同一层的东西在大数据处理框架的选型问题上,几乎每隔一段时间就会有人把Hadoop和Spark拿出来做一次对比。作为长期和数据平台打交道的从业者,我被问过最多的问题就是:我现在用的是Hadoop&…

2026/10/16 7:00:59 阅读更多 →
5 分钟快速上手 InternVL2.5-26B-MPO-AWQ:LMDeploy 推理环境搭建与第一条图片问答

5 分钟快速上手 InternVL2.5-26B-MPO-AWQ:LMDeploy 推理环境搭建与第一条图片问答

【免费下载链接】InternVL2_5-26B-MPO-AWQ 项目地址: https://ai.gitcode.com/OpenGVLab/InternVL2_5-26B-MPO-AWQ 点击查看 免费下载 InternVL2.5-26B-MPO-AWQ 是上海 AI Lab 开源的多模态大模型 InternVL2.5-26B-MPO 的 AWQ 4-bit 量化版本,配合 LMDe…

2026/10/16 7:00:59 阅读更多 →
Windows下claude-code报错无法识别cmdlet的排查与解决

Windows下claude-code报错无法识别cmdlet的排查与解决

遇到“无法将f:\nvm\nodejs/node_modules/anthropic-ai/claude-code/bin/claude.exe识别为 cmdlet、函数、脚本文件或可运行程序的名称”这个报错,说明你已经在Windows上用nvm装好了Node.js,也把anthropic-ai/claude-code这个npm包全局安装上了&#xff…

2026/10/16 7:00:59 阅读更多 →
Claude Code Agent 开发:告别上下文爆炸,用按需技能加载替代巨型系统提示

Claude Code Agent 开发:告别上下文爆炸,用按需技能加载替代巨型系统提示

做 Agent 开发的人大概都经历过这样一个阶段:为了让模型"懂行",我们把能想到的领域知识全部塞进系统提示。我第一次做 Claude Code Agent 的时候也是这样,把公司的计费规则、售后流程、常见问题、内部规范整理成一份八千多字的指引…

2026/10/16 7:00:59 阅读更多 →
Office 一键安装激活完整指南:LKY Office Tools 10 分钟跑通下载、安装、KMS 激活全流程

Office 一键安装激活完整指南:LKY Office Tools 10 分钟跑通下载、安装、KMS 激活全流程

Office 一键安装激活完整指南:LKY Office Tools 10 分钟跑通下载、安装、KMS 激活全流程 【免费下载链接】LKY_OfficeTools 一键自动化 下载、安装、激活 Office 的利器。 项目地址: https://gitcode.com/GitHub_Trending/lk/LKY_OfficeTools 新机器装 Offic…

2026/10/16 7:00:59 阅读更多 →
大厂边缘岗位破局方法论:从螺丝钉到项目负责人的实操路线

大厂边缘岗位破局方法论:从螺丝钉到项目负责人的实操路线

前阵子,一个在互联网公司做了快三年的运营在朋友圈问了一句:每天做一样的事,负责的模块越来越像一颗螺丝钉,往上走又没有空间,到底该不该走。底下几十条评论,大部分人都在说同一个词——边缘岗位。说实话&a…

2026/10/16 6:59:59 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →