文章摘要
近期,国内互联网上,一款名为「蓝色大肥鱼」的虚拟形象迅速走红,成为不少爱好者追捧的对象。有人将其做成桌面宠物放在屏幕右下角,有人把它作为赛博形象接入社交软件,甚至在视频平台的评论区掀起了一场热闹的「赛

近期,国内互联网上,一款名为「蓝色大肥鱼」的虚拟形象迅速走红,成为不少爱好者追捧的对象。有人将其做成桌面宠物放在屏幕右下角,有人把它作为赛博形象接入社交软件,甚至在视频平台的评论区掀起了一场热闹的「赛博鱼灾」。

既然大家都想把它真正“养”起来,今天我们就带大家更进一步,教大家在浏览器里制作一款能实时语音互动、嘴巴会随声音开合、还能随时插话打断的专属大肥鱼。

这种面对面的语音互动,最大的难点在于实时感的实现。为了避免从零搭建底层架构的麻烦,我们可以借助实时通信与对话式 AI 能力,把音频传输、说话轮次判断、实时打断等核心功能交给现成的开发工具包,快速将这些能力接入前端应用。

接下来,我们将基于这套系统,分四步完成从配置国内模型到挂载角色动效的完整过程,手把手带大家把专属大肥鱼跑起来。

一、实现的核心原理

在浏览器里和大肥鱼互动,背后由对话式 AI 引擎组织对话,实时通信工具负责传输数据,前端则负责角色呈现,具体分为四个部分:

  • 对话流程与轮次调度:串联语音识别、大模型和语音合成,判断用户何时讲完、何时插话,让大肥鱼及时接话,也能在被打断时停止回复。
  • 音频传输:智能体加入通信频道,接收用户的麦克风声音,再把合成的回复传回浏览器,保障低延迟、回声消除和弱网抗丢包的能力。
  • 字幕与状态传递:引擎输出的字幕和对话状态通过工具传到前端,更新对话记录及倾听、思考、说话等状态提示。
  • 角色与动作控制:渲染大肥鱼的形象,根据对话状态切换动作,让角色表现与对话过程相配合。

如果全靠自己从头开发这几个部分,光是调通音频流传输和打断状态机就要耗费不少时间。而借助现成的开发工具包,开发者可以更快搭建出实时语音互动的应用。

二、具体实现步骤

我们分为四步来完成,改动极少,仅需调整少量配置即可:

配置国内环境 → 跑通首轮通话 → 调优角色参数 → 挂载动态形象

第一步:准备模板并切换国内配置

我们直接基于官方 Next.js 模板起步,运行环境要求 Node.js 22 或更高版本,Windows 用户建议使用 PowerShell 7+ 以避免脚本报错。

安装依赖后,官方模板默认配置的是海外节点和供应商,在国内直接启动会报错,需要修改配置文件:

  • 将区域改成中国站,选用国内的语音识别工具,比如自研的凤鸣识别,新账号有免费体验额度,无需额外申请密钥。
  • 大模型和语音合成侧可接入国内的模型和音色,比如阶跃星辰的模型和音色。

之后在项目根目录新建配置文件,填入国内服务的相关密钥,保存后确认没有残留旧默认值即可。

第二步:启动服务并测试通话

在给大肥鱼赋予角色前,先验证基础声学链路是否正常,启动本地服务后,在独立的浏览器标签页打开对应地址,注意必须是独立标签页才能调用麦克风。

允许麦克风权限后,点击启动会话,几秒后会听到开场白,此时可以对着麦克风说话,查看页面上的转录和状态提示,如果能准确转写出语音并得到回复,说明基础链路正常。

第三步:调整角色人设和轮次参数

默认助手的设定不符合大肥鱼的形象,需要修改配置文件中的系统提示词,给大肥鱼设定爱吃白饭、说话亲切的人设,并且要求回复为纯口语文字,避免出现 Markdown 语法或表情。

同时调整轮次检测参数,把语言显式设为中文,支持中英混读,并且把静音窗口放宽到 900 毫秒,避免说话换气时被误判为讲完而抢答。

第四步:挂载动态形象

前三步完成后,需要给大肥鱼挂载动态形象,替换原本的状态动效球。复用官方工具包中的实时状态信息,新建角色渲染组件,根据对话状态切换动作,比如待机、倾听、思考、说话等状态,并且在安静时锁定双唇闭合,避免不合时宜的动作。

三、进阶内容

1. 更换大模型

如果需要更换大模型,无需改动前面的业务代码,只需在配置文件中修改三行变量即可,比如换成通义千问或其他模型。

这里有个实测经验:实时语音场景不要选带长思维链的推理模型,这类模型会导致回复延迟,影响互动体验,建议用非推理模型,半秒左右就能生成短句,几乎没有延迟。

2. 做成桌面宠物

如果想把大肥鱼做成桌面宠物,常驻在 macOS 桌面,可以从对应的桌面宠物模板开始,按照说明把它放在自己的桌面上,随时互动。

回头看,以前在浏览器里做实时语音角色,大家总觉得门槛很高,而现在有了现成的工具包,开发者可以把更多心思放在角色和玩法上,无需从零搭建底层架构。

想继续动手的话,可以从相关开发工具的上手指南开始,了解如何搭建实时应用,本文用到的模板和工具也整理在相关资源中,大家可以尝试打造自己的专属大肥鱼。

以上内容不代表本平台立场,仅供读者参考