首页 / 功能特色

功能特色

这里不是一份功能清单,而是把每个模块「为什么这样设计、用起来是什么感受」讲清楚。 所有能力都在控制台里有对应的开关、配置与可视化页面。

01 · 实时语音链路

边生成边播报,不再等一整段回答

传统做法是「等模型把整段话写完,再送去合成语音」,一句话稍长就要等好几秒,体验像在对着机器喊命令。 本服务端把链路拆细:识别结果实时回流、模型流式输出、按标点切句后立即送进语音合成, 第一句音频往往在模型还在写第二句时就已经开始播了。

  • 语音识别与识别文本同屏显示,边说边出字
  • 按中文标点智能分句,避免把一句话切得七零八落
  • 音频按帧连续下发,客户端无需缓冲整段再播放
  • 连接按进程隔离,一个人说长句不会卡住另一个人的对话
链路耗时对比(示意)
整段等待式
识别完成 → 模型写完 → 合成 → 播放
流式分句式(本服务端)
首句就播,后面的句子在播放途中陆续就绪
提示:链路速度取决于你选择的模型服务,服务端负责把等待压到最短。
打断前后对比
行为没有打断能力本服务端
AI 说话时说话 被忽略,或等它说完 立即停止播报
上游模型请求 继续跑到结束,白白消耗额度 立刻中止,不再计费
已合成的音频 继续播完这一整段 直接丢弃,残留 0 字节
打断后 需要重新唤醒再来一次 自动接续你的新问题
实测打断响应 129ms(线上环境自动化测试记录)
02 · 语音主动打断

像跟真人说话一样,随时插话

打断的关键不在前端,而在服务端能不能「一边说话一边听」。本服务端在播报期间持续以非阻塞方式 轮询 socket,一旦收到新的语音帧或文本输入,就立刻中止当前回答——包括向上游模型发送中止信号, 而不是只把音量关掉。

  • 监听循环不阻塞,插话响应稳定在百毫秒级
  • 被打断的半截回答会以「已中断」状态保存,方便回看
  • 打断后你说的话会被当成新一轮问题继续处理
  • 管理员可在「系统设置 → 对话行为」全局关闭,或按智能体单独设置
03 · 智能体长期记忆

每次都像在跟同一个老朋友聊天

记忆不是把整段聊天记录塞回去,而是让模型自己「做笔记」:从对话里抽取关于你的事实与偏好, 按「用户 + 智能体」两个维度隔离存放。下次开新会话时,只把相关的少量记忆注入系统提示词, 既省 token,又让回答自然带上你的信息。

  • 自动抽取,不用手动填写任何「用户画像」
  • 写入前做相似度去重,不会反复堆积同一件事
  • 超长对话会自动压缩成摘要,避免细节被挤掉
  • 后台可逐条查看、单独删除,也能按智能体或整库清空
管理员可设置抽取策略:关闭 / 每几轮抽取一次 + 会话结束时补抽(推荐)/ 每轮都抽取。
智能记忆 按智能体分组
用户姓名是王建国
事实 · 权重 0.9
平时喜欢听豫剧,尤其偏爱名家选段
偏好 · 权重 0.8
本次会话聊到「想找伴奏版视频」
会话摘要 · 12 小时后自动过期
账号 A
  • 设备 2 台
  • 智能体 1 个
  • 记忆 12 条
  • 对话 46 段
账号 B
  • 设备 1 台
  • 智能体 2 个
  • 记忆 5 条
  • 对话 18 段
互相看不到,越权访问直接被拒
04 · 多用户独立运行

一套服务端,多人共用也互不打扰

每个账号拥有独立的设备、智能体、记忆与对话记录。所有查询都在数据库层带上用户条件, 控制器还会额外校验记录归属;即使有人手工拼一个别人的 ID 提交,也只会拿到「无权访问」。

  • 列表页、详情页、删除操作全部做归属校验
  • 越权请求按标准语义返回 403,而不是「假装成功」
  • 设备绑定有尝试次数限制,防止验证码被逐个试出来
  • 管理员可代管全部账号,普通用户只能看到自己
05 · 硬件设备接入

开源小智固件刷完即连,不用改设备代码

服务端内置了设备侧的 OTA 配网接口与 WebSocket 协议实现。设备开机请求 OTA 地址, 服务端自动下发 WebSocket 地址与一次性鉴权令牌;之后设备按固定帧长上送音频, 剩下的识别、生成、合成全部由服务端完成。

  • OTA 地址与请求协议自动匹配,返回 ws 或 wss 不用手改配置
  • 未绑定设备下发 6 位验证码,绑定后立即作废,不再重复下发
  • 网页端与硬件端共用同一套智能体配置,改一次两边都生效
  • 设备列表可看在线状态、累计通话时长,支持重发验证码与解绑
设备侧 OTA 返回示例
// 设备开机请求 OTA,服务端下发连接信息
{
  "websocket": { "url": "wss://你的域名/ws/", "token": "048213" },
  "activation": { "code": "048213", "message": "6位验证码已下发" },
  "firmware": { "version": "1.0.0" }
}
在控制台「设备管理」里输入验证码即可完成绑定。
网页端能力
  • 按住说话,松手即发送,也可直接打字
  • AI 回答途中说话即可打断,无需等它说完
  • 刷新页面后继续上次的会话,不必重开
  • 可在页面内切换智能体,一个页面管理多个角色
  • 逐字流式显示回答,不是「转圈等一坨」
06 · 网页对话端

没有硬件,也能完整跑一遍语音体验

网页端与硬件端走的是同一条服务端链路,因此它既是最好的上手方式,也是最好的排障工具: 模型通不通、语音识别准不准、打断灵不灵,在浏览器里点几下就知道了。

  • 基于 WebSocket 长连接,认证用一次性令牌,不暴露账号凭据
  • 需要 HTTPS 环境才能调用麦克风,服务端默认已支持
  • 对话过程实时显示连接状态、识别文本与合成进度
07 · 模型配置

三类能力分开配,谁的便宜用谁的

语音识别、大语言模型、语音合成是三个独立的供应商条目。 你完全可以让识别用一家、生成用另一家、合成再用第三家,各自填自己的地址与密钥。 每个智能体还能指定不同的组合,用来做效果对比。

  • 支持 OpenAI 兼容接口,以及自建 / 私有化推理服务
  • 可设一个全局默认,新注册用户自动继承,省去逐个配置
  • 保存前先做连通性测试,避免上线后才发现密钥写错
  • 密钥在页面上脱敏显示,日志里不会明文落盘
能力用途
ASR把你的语音转成文字
LLM理解意图并生成回复,人设与记忆在这里生效
TTS把回复文字转成语音,决定音色与语速
VLLM预留的视觉模型位,用于图像理解类扩展
对话记录:按时间回看每轮问答与打断情况
运行日志:模型调用失败、异常堆栈可直接在后台查看
用户管理:管理员可创建、禁用账号并查看登录记录
环境自检:PHP、数据库、服务运行状态一眼可见
08 · 数据与记录

出问题时,能自己查到原因

语音链路涉及外部模型服务,偶尔失败在所难免。服务端把每次关键调用与异常都写进日志, 并在后台提供查看入口,让你不必登录服务器就能定位是密钥、地址还是网络的问题。

  • 对话记录区分「正常完成」与「被用户打断」两种状态
  • 日志按天滚动,支持直接搜索错误关键字
  • 概览页显示近七天对话趋势与待完成的配置项
09 · 开放接口

需要二次开发?接口是现成的

除了设备协议与网页端,服务端还暴露了语音识别与语义理解的 HTTP 接口,可接进你自己的应用。

POST /api/asr

上传音频,返回识别文本。适合把语音输入接进客服、记事等场景。

curl -X POST "https://你的域名/api/asr" \
  -H "Cookie: 你的会话" \
  -F "audio=@voice.wav"
POST /api/nlu

直接送文本,返回模型回答。适合把智能体能力接入小程序或公众号。

curl -X POST "https://你的域名/api/nlu" \
  -H "Content-Type: application/json" \
  -d "{\"text\":\"帮我推荐一段豫剧\"}"
接口需要登录态,仅对已授权账号开放,避免被外部随意调用。

看完了,不如直接试一次

注册后几分钟内就能配好模型并开口对话。