自己做了一个低延迟 Voice Agent,不依赖框架实现极低延迟 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
LuliYanng
V2EX    分享创造

自己做了一个低延迟 Voice Agent,不依赖框架实现极低延迟

  •  1
     
  •   LuliYanng 2 月 18 日 1803 次点击
    最近在折腾 voice agent ,之前用 LiveKit 框架做过几个项目,这次想试试纯 API 调用从零搭建,看看到底能做到什么程度。

    做出来发现效果还不错:纯文本对话延迟,如果使用 gemini 2.5 flash lite ~500ms,即使是 2.5 flash 或者 3 flash ,也可以控制在 700ms 。带联网搜索或图片分析也能控制在 1000~1500s 。服务全部部署在美国,因此考虑到跨洋的网络延迟,实际上的表现应该可以更好。顺便做了个动态岛 UI 包装了一下。

    附个使用演示视频:




    之所以做这个,也是对语音这个模态比较看好,故自己搓了一个不依赖框架的实现。如果大家有什么好想法,也欢迎讨论

    P.S 话说是自己“手搓”,但实际上大部分时候也是 AI 完成,只不过是类似于“同学”一般,相互指引跟学习,那既然大部分的代码都是 AI 实现的(虽然这一过程相比于单纯用框架而言学习到了很多),但这种方式还能叫“手搓”吗?
    14 条回复    2026-02-19 21:27:03 +08:00
    wuhen8
        1
    wuhen8  
       2 月 18 日
    开源吗,能不能自己部署
    LuliYanng
        2
    LuliYanng  
    OP
       2 月 18 日
    @wuhen8 确实有打算开源
    mooncakeSec
        3
    mooncakeSec  
       2 月 18 日
    怎么做的优化呢,判断用户语音输入结束和打断,是 gemini 提供的吗
    lonccc
        4
    lonccc  
       2 月 18 日
    为什么要不依赖框架做呢,和 livekit 比有什么不同或者优势?
    LuliYanng
        5
    LuliYanng  
    OP
       2 月 18 日
    @mooncakeSec 不是 gemini 仅仅作为 llm ,判断输入结束和打断是客户端的 vad 和 turn detection 来处理,不过这一块做得还不是特别好
    LuliYanng
        6
    LuliYanng  
    OP
       2 月 18 日
    @lonccc 出发点当然是纯粹为了学习,跟 livekit 这种成熟产品比不敢说能有什么优势,毕竟也不是奔着做一个 livekit 竞品去的。能够了解基本的实现,也有帮助认清现在形形色色的 AI 产品新闻,不至于天天被营销号带节奏。本来是打算先自己不借助框架实现一个 agent 的,刚好朋友推了 typeless 给我,我就先做这个了。
    WasteNya
        7
    WasteNya  
       2 月 18 日 via Android
    一个月的 token 费用需要多少钱,特别是 4k 屏幕吗话?
    LuliYanng
        8
    LuliYanng  
    OP
       2 月 18 日
    @WasteNya token 不好估算,目前刚做了几天,用的也不多。但用的供应商也不便宜就是了,如果有兴趣,我把客户端开发好给大家用用,有一定的数据我才能预估 token 用量。至于你说的 4k 屏幕,这用量跟屏幕似乎没啥关系
    uid106
        9
    uid106  
       2 月 19 日 via iPhone
    挺好的,感觉语音很自然,有自定义音色和性格的选择就更好了
    LuliYanng
        10
    LuliYanng  
    OP
       2 月 19 日
    @uid106 这自然是可以的,这个用的是 cartesia 的音色,都是可以随便换的。本来是想上 minimax 的中文音色的,测了一下延迟,因为服务器跟其他 ai 服务都在美国,延迟偏高就暂时没用了。
    mooncakeSec
        11
    mooncakeSec  
       2 月 19 日
    @LuliYanng 一般是也是专门做一个语义的 vad finetune llm
    hanguofu
        12
    hanguofu  
       2 月 19 日
    好奇问问: 为啥不用 阿里 的 Qwen3-TTS ?
    LuliYanng
        13
    LuliYanng  
    OP
       2 月 19 日
    @mooncakeSec 嗯 vad 的话就是简单的静音检测,turn detection 用的就是 1b 规模一下的小模型做语义中断的检测
    LuliYanng
        14
    LuliYanng  
    OP
       2 月 19 日
    @hanguofu 自己部署的 qwen tts 还是调官方 api 呢?这方面主要是考虑到延迟都问题,想 cartesia ,elevenlabs 这种提供商,流式输出的延迟都已经优化的比较低了。如果是自部署开源模型的话,主要是考虑成本和音色效果,毕竟手上如果本身没卡的话,自己部署的成本就比较不值了,当然如果本身有卡可以部署那就另说。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2779 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 03:59 PVG 11:59 LAX 20:59 JFK 23:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86