JavaScript 语音识别教程:用 Web Speech API 构建语音交互
用浏览器原生 Web Speech API 可在 JavaScript 中实现实时语音转写,无需自建本地识别服务器,音频由浏览器发往后端云服务处理。该 API 通过 SpeechRecognition 接口支持连续识别、临时与最终转写结果,但存在转写不一致、依赖浏览器、无法理解意图等限制,且准确率与延迟因浏览器而异。
用浏览器原生 Web Speech API 可在 JavaScript 中实现实时语音转写,无需自建本地识别服务器,音频由浏览器发往后端云服务处理。该 API 通过 SpeechRecognition 接口支持连续识别、临时与最终转写结果,但存在转写不一致、依赖浏览器、无法理解意图等限制,且准确率与延迟因浏览器而异。
Asana 借助 Codex 中的 GPT-6 Astra,在浏览器测试中让其浏览器智能体成本降低 76 倍、速度提升 5 倍,从而为客户提供能力更强的模型。
Safari Technology Preview 254 面向 macOS Golden Gate 和 macOS Tahoe 发布,包含 WebKit 321068@main 至 322634@main 之间的改动。CSS 新增 size、min-size、max-size 简写属性及 interpolate-size、calc-size() 等支持,并修复 CSS Grid 重排开销随 order 值不同的网格项数量呈二次增长等问题。
Cactus 工程博客给出 Whistle(16.9 MB 端侧 STT 模型)的实用指南:输入为 16 kHz 单声道 float,单次调用最长 30 秒,超出需分片或走流式 API;word_timestamps=True 可输出词级起止与置信度,时间分辨率约 80 ms;流式模式下每个分块重转写缓冲音频,连续两轮一致的词才会提交,保证已出文本不被回改。
Cactus 发布开源语音识别模型 Whistle,单文件 16.9 MB、纯 CPU 运行无依赖,面向手机、可穿戴、机器人、智能家居、汽车与微控制器;支持英德法西意荷波 7 种语言(可自动检测),单次转写最长 30 秒 16 kHz 单声道音频,首 token 延迟 11 ms,输出词级时间戳,并与 Needle 共享同一 C++ 引擎与量化方案,可在浏览器端离线运行。
推荐理由:把 STT 压到 16.9 MB 且保留词级时间戳与 11 ms 首响,是端侧语音这一细分方向上规格突出的开源发布。
Jitsi Meet 新增多屏支持,一次会话可把演讲者画面、屏幕共享、白板等分别渲染到多个显示器,无需重复入会。第二屏通过 React portal 复用同一 redux store 和组件,视频轨道用 track.clone() 克隆且不增加解码;由 iframe External API 的 setSecondScreen 命令和三个事件控制,也可在参会者右键菜单等处触发。该功能默认关闭,需配置 secondScreen.enabled=true 开启,目前仅支持 Chromium 系浏览器,且需要弹窗和窗口管理两项权限。
推荐理由:Jitsi Meet 新增多屏渲染能力,读者可了解其与开两个标签页在参会者身份和媒体订阅上的差别。
ElevenLabs 发布文本转语音模型 Eleven v4 及其低延迟版本 Eleven v4 Turbo,称 Eleven v4 在 Artificial Analysis 排名第一,并在与 Cartesia Sonic 3.6、Inworld TTS-2、Google Gemini 3.8 Flash-Lite TTS 和 Gemini 3.8 Flash TTS 的盲测对比中被约 75% 听众偏好。Eleven v4 Turbo 面向语音代理等低延迟场景,中位推理延迟约 100ms,中位首次发声时间约 150ms,与 ElevenAgents 平台协同优化。两款模型支持 90 多种语言,Instant Voice Clones 用 10 秒音频即可克隆,并新增 Professional Voice Clones 支持,现已上线 ElevenAgents、ElevenCreative 和 ElevenAPI。
推荐理由:官方给出两款新模型的延迟、盲测偏好与克隆门槛,可据此判断语音代理和配音场景是否值得迁移。
Pipecat 发布 v1.12.0,新增 Pipecat Classifiers,可通过 JevClassifier 或 LLMClassifier 对状态提出是/否、选择与评分问题,并新增 TTSService.pronunciation_transform_ipa() 用词到 IPA 的映射控制专有名词发音。MOQTransport 增加客户端模式重连,断线后按退避重拨,MOQParams.connection_timeout 默认由 30 s 改为 60 s;同时弃用 UninterruptibleFrame、BaseUIWorker 等接口,将在 2.0.0 移除。
推荐理由:版本说明覆盖分类器、MOQ 重连与语音合成发音等多项能力变化,并列出弃用与移除项,便于评估升级影响。
Boson AI 发布 Higgs VoiceOver 插件,把 AI 配音放进视频剪辑器,由 Higgs TTS 3 驱动,每句旁白生成独立片段并自动排到时间线的配音轨上。它支持用标签控制情绪、语速和音效,自动生成词级时间轴字幕,用约十秒音频克隆自定义声音,覆盖 100 多种语言且同一句内可切换语言。该插件已在 macOS 上的 DaVinci Resolve Studio 和 Adobe Premiere Pro 上线,Final Cut Pro 与 Windows 版本在开发中,使用自带 Boson API key 按量计费,价格为每千字符 0.015 美元。
推荐理由:面向剪辑工作流的 AI 配音插件,说明它如何把配音、字幕和声音克隆放进时间线,以及按量计费的成本口径。
高通在骁龙峰会发布骁龙8至尊版Gen 6与骁龙8旗舰版Gen 6,旗舰版可本地运行300亿参数MoE模型并完成语音识别到合成的全链路Agent,标准版感知中枢支持2亿参数模型做个人速记与说话人区分,两款均内置实时降噪“语音气泡”。但MoE省的是计算量而非内存,300亿参数仍需量化压缩才能塞进手机,且芯片只处理麦克风收到的这段声音,跨设备传输的丢包、抖动与路径调度仍由声网SD-RTN这类实时网承担。
Tavus 博客借 Apple 预览新版 Siri 的契机,回顾 1987 年的 Knowledge Navigator 概念视频:当时 Apple 已设想超越点选、具备对话与代理能力的个人 AI 助手界面。作者用一台 1987 年 Macintosh SE 撰写本文,探讨该构想与今日语音数字人助手之间的对应关系。
FunASR 1.4.16 发布,修复混合设备推理中 vad_kwargs、punc_kwargs、spk_kwargs 的设备放置问题:重复推理调用不再改变已加载模型的设备配置,说话人推理改用说话人模型自身配置。该版本同时说明 SenseVoiceSmall 或 Paraformer 何时需要 CT-Transformer 标点后处理,并新增经测试的中英文原生 Transformers 使用指南。混合设备回归测试使用 CPU 占位权重与模拟加速器,不构成 CUDA、MPS 或 NPU 性能认证。
覆盖 13 个平台目录(macOS ARM64、Linux x86-64/ARM64、浏览器 WASM、WASI 等),每平台引擎小于 1 MB,一套权重 2-20 层任选;支持 CLI、C 静态库、needle.js 与离线空网部署。
Cactus 分享为 Needle 3 设计工具集的规则:每个动作一个工具,参数必须从请求原文中复制,无对应文本的必填参数会直接扣留调用。工具名和枚举值应使用用户会说的词,取值范围、枚举、长度等约束编译进解码语法,使非法值无法生成。描述无法穷举的说法可用触发器正则匹配,将解码限定到对应工具并强制产生调用。
两条微调路径:本地 needle finetune 对注意力投影训练 LoRA(基础冻结、导出时合并),或平台全量训练 2-20 层每个深度;DroidCall 微调使所有子网络提升 18-36 个百分点,四层以上微调子网络超过 DeepSeek V4 Flash。
Needle 将结构化抽取实现为只声明一个工具的函数调用:语法约束保证模式符合而非请求满足,每个字段都是原文 span,可选字段无对应 span 时留空而非编造,同一机制可迁移做分类。
cactus-needle 包的官方参考:Needle 类、三种工具接入方式、字节级语法约束保证 JSON 调用合法、子 1MB 引擎与权重缓存机制,以及 mic/train/gpu/metal 等可选依赖说明。
基于首个社区 Rust 移植的经验整理:测试用 oracle 与数字解读、.cact 容器的张量顺序保证、线上 prompt 格式、阶梯选层规则,以及无对比头的检索实现;引擎与权重已在 Hugging Face 公开。
Needle 每次响应携带校准置信度分数,取校准后验头与调用 token 解码概率两个信号的最小值,两者不一致时走升级而非错误执行;文中说明如何据此路由 act/confirm/refuse 三类产品决策。
Cactus 介绍其端侧模型 Needle 使用的 .cact 单文件格式:196 字节头部携带全部架构几何信息,无名张量目录按前向顺序排列,权重以 128 个一组做 Hadamard 旋转后按 Lloyd-Max 码本量化,CQ2 下每权重 2.125 比特。内核直接读取打包索引做查表与 sdot 累加,不展开权重,20 层 needle3.cact 为 29 MB、581 个张量。文中还给出用 struct 解析头部与目录的二十行 Python 代码,并说明同一容器可承载语音模型 Whistle。
推荐理由:原文拆解了 .cact 单文件格式的头部、目录与分组量化设计,并给出二十行解析代码,可迁移到自研端侧模型加载器。
Needle 用三个从 Walsh-Hadamard 变换起步学习的 Kronecker 分解混合层替代 transformer 前馈层,d=768 时单层参数从约 4.7M 降至 25.6K,每 token 计算约为原来的五分之一,契合端侧权重读取瓶颈。
推荐理由:量化明确的架构创新,直指端侧推理的内存墙问题。
Needle 3 训练为任意 2-20 层深度都是可部署模型,共享同一残差流,按设备内存预算选择深度而无需为每个尺寸单独训练;文中解释子网络选择、免多轮训练的方法及各深度得分。
推荐理由:一套权重覆盖多种端侧内存预算的工程思路,可跟踪性强。
FunASR 1.4.15 发布,移除 NumPy 版本上限并兼容 NumPy 2,同时修复 KWS 跨包/EOS 边界丢帧、动态 VAD 静音调度计入空闲时间及检查点排序纳入无效验证指标等问题。该版本还新增 MOSS 的 Gradio 配置与离线 vLLM 整段转写示例,支持时间戳和匿名说话人标签。NumPy 兼容性仅在 Linux/Python 3.12、NumPy 1.26.4 与 2.4.0 环境下验证,不保证覆盖所有历史依赖与 GPU 组合。
声网针对停车场云值守场景,将微信小程序 live-pusher/live-player 组件封装为标准 RTC 接口,解决小程序不支持 WebRTC 协议栈、仅支持 H264 编码的接入难题。其 SD-RTN 网络配合 FEC 与 NACK,实测 80% 丢包下音频仍清晰、40% 丢包下视频基本连贯,并支持多路视频流并发接入与毫秒级首帧出图。
声网发布智能门锁/门铃场景方案,针对电池供电门锁给出量产指标:出图速度小于1秒、全球通话延迟小于400毫秒,SDK增量体积控制在400KB以内、运行时内存占用仅1.2MB。远程开锁走独立实时信令通道,全球端到端延迟低于100毫秒(99分位值),70%丢包下仍保证送达。
Chrome 153 加入摄像头与麦克风专用 HTML 元素(浏览器托管 UI,需显式点击授权),并通过 MSE 在 HTML 媒体元素中支持开放免版税空间音频格式 IAMF 的解码播放。
推荐理由:浏览器媒体采集与沉浸式音频格式的双重进展,直接影响 Web 音视频应用形态。
Zoom 发布开源 Web 远程医疗入门套件,基于 Zoom Video SDK 构建,覆盖医生与患者注册、预约、设备预览、视频问诊、聊天、屏幕共享、云录制、实时转写和 PDF 文件共享等核心流程。套件采用 Next.js 16、React 19 和 TypeScript,代码托管于 GitHub。官方声明该示例尚未按 HIPAA 合规设计或验证,未经独立安全与合规审查不得用于受保护健康信息。
LiveKit 发布 Connectors,把 Twilio Programmable Voice 和 WhatsApp Business Calling 的通话作为普通参会者接入 LiveKit 房间,无需配置 SIP 中继或网关。WhatsApp 通话端到端走 WebRTC(ICE、DTLS-SRTP、Opus),Twilio 通话经 Media Streams WebSocket 以 G.711 原始形式发布,仅为需要的订阅者转成 Opus。Connectors 已在 LiveKit Cloud 正式可用,计费与 SIP 相同,每分钟 0.004 美元(Ship)和 0.003 美元(Scale)。
推荐理由:LiveKit 把 Twilio 与 WhatsApp 通话直接接入房间,读者可据此判断现有 SIP 方案是否要改。
LiveKit 的 SFU 架构让机器人系统从点对点连接扩展为多参与者 Room,摄像头、模型、操作员和下游服务各作为一个参与者加入,无需重新设计传输架构。在跨网络的人机协同录制场景中,机器人观测可同时分发给策略、操作员和录制端,策略动作与人工干预各自独立回传,避免额外网络跳数。VLM 可作为任务级编排者,各技能策略以独立参与者订阅所需观测,奖励模型则按控制频率评估执行状态并驱动策略升级。
针对 ESP32、ESP32-S3 等低资源设备做语音通话,建议从 16 kHz、16 bit、单声道、20 ms 帧长起步,优先保证接通率与稳定性,再评估提升音质。声网 RTSA SDK 仅支持单声道、20 ms 发送间隔,包体积增量小于 400 KB,收发 320×240 H.264 时内存占用小于 2 MB,采集与编解码需设备端自行实现。
Cactus 在智能家居、客服、外勤、邮件、会议、费用审批六类环境共跑 6120 次测试,验证工具命名、描述、枚举、约束与重叠度对小模型函数调用的影响,形成一套环境设计规则。
Cactus 发布 Needle 2,一个 45M 参数的开源模型,用于工具调用、设备操作和结构化抽取,整个模型是单个 14MB 二进制文件,会话内存约 28MB。它在 Raspberry Pi 5 上解码达 500 tokens/sec,在 Meta Quest 3S、Apple Vision Pro 等 VR 设备上为 400–1,500 tokens/sec,并可运行于 ESP32-S3 等较新微控制器。模型采用 CQ2-bit 量化,从预训练到后训练全程针对 Cactus Quants 训练,并支持在 Mac/PC 上微调。
智能硬件语音交互的体验瓶颈往往不在 LLM,而在麦克风采集、回声消除、RTC 实时传输、流式 ASR、TTS 播放与打断控制等基础环节。文章拆解了从采集、前处理、实时传输到 ASR、LLM、TTS、播放与打断的完整链路,指出 RTC 是弱网下保持语音连续的关键通道,并建议量产前按真实场景验证麦克风、弱网重连、儿童语音与云端成本。
Netflix 构建了设备能力数据模型并接入内部系统的功能开关,用于在全球设备生态中做更细粒度的功能管理。其累积表记录每台设备的最新能力状态(如屏幕分辨率、支持的视频 Profile、环绕声、RAM 大小),直方图表则统计过去 28 天内按设备型号和软件版本划分的活跃设备数及能力支持情况。示例数据显示,某类流媒体棒设备全部支持 HD profile(playready),仅 20% 支持 UHD profile(hevc)。
LiveKit 正式发布 Unity SDK v2.0.0,将其从开发者预览转为正式版本,并称该 SDK 已与现有 LiveKit SDK 达到功能对齐。开发者可在 Unity 游戏中接入实时语音、视频和 AI,用于语音聊天、音视频直播、VR 远程操控机器人以及语音 AI 驱动的 NPC。2.0.0 带来移动端和桌面端的原生平台音频、基于 DataTracks 的高频数据消息和可配置 token 源的简化鉴权;官方支持 Unity 2022.3 及以上版本,覆盖 macOS、Windows、Linux、iOS 和 Android。
推荐理由:LiveKit Unity SDK 结束开发者预览并达到与其他 SDK 的功能对齐,可据此判断现有 Unity 项目是否迁移。
Cartesia 发布语音转文本模型 Ink-2,面向实时语音代理,称其在 Artificial Analysis 流式榜单上以最低词错误率排名第一,并内置语义端点检测。官方数据显示其 Time-to-Final-Transcript 为 0.1s,在 14 种英语口音的 AppTek 基准上 WER 为 8%,内部生产环境基准 WER 为 6.5%,轮次检测 F1 为 93%。Ink-2 已在 play.cartesia.ai 上线,可通过 API 使用,并接入 LiveKit、Vapi 和 Pipecat,多语言支持尚在开发中。
推荐理由:官方给出 Ink-2 在准确率、轮次检测和延迟三项指标上的对比数据,可据此判断语音代理的选型取舍。
声网针对出海语聊房给出 AI 降噪配置策略:中东中央空调等稳态噪声用传统降噪(WebRTC NS)已够用,市集、水烟咖啡馆的非平稳人声背景才是 AI 降噪优势区。东南亚弱网下,丢包率超过 5% 时部分 AI 降噪模型会因帧缺失产生噪声伪影;骁龙 400 系列等入门芯片叠加混音与编解码后 CPU 占用可能超过 70% 并触发热节流,通话 10–15 分钟后音频不连贯。声网建议按设备档位与丢包情况动态选择 AINS 强度,低端设备任意网络下用传统 NS。
推荐理由:声网按中东与东南亚两类噪音环境给出 AINS 档位与降级配置,并说明低端设备弱网下传统降噪更稳的边界。
Cactus 开源从 Gemini 蒸馏的 26M 参数函数调用模型 Needle,消费级设备上预填充 6000 tok/s、解码 1200 tok/s;核心观察是工具调用本质是检索与组装而非推理,因此采用纯注意力加门控结构、完全去掉 FFN。
推荐理由:端侧函数调用模型的代表性工作,结构取舍结论对端侧 AI 有普适启发。
针对家庭摄像头、割草机等天然弱网部署场景,声网以 SD-RTN 为骨架做四层对抗:秒级网络感知与动态路由、秒级降码率加渐进恢复、FEC+NACK 双保险(称音频可抗 80% 丢包、视频 40%)、以及首帧关键帧优化;对外指标包括 80% 丢包下音视频流畅、设备 5 秒连通率 99.5%、出海首次激活成功率 >99.9%,SD-RTN 全球延时中位数 <76ms。
推荐理由:厂商披露的极端弱网量化指标与全链路对抗逻辑,对 IPC/IoT 类产品选型有直接参考。
声网把首帧定义为“视频第一帧在本地渲染显示”的结果指标,从关键帧触发、建链协商、路径选择、终端渲染四处下手:建议引擎提前创建初始化、enableVideo 前设好编码配置,参考最佳实践后 Windows/macOS Chrome 首帧最低可降到 300ms 以内;方案整体给出 99.9% 连通成功率、SD-RTN 覆盖 200+ 国家、全球延时中位数 <76ms、80% 丢包下仍流畅。
推荐理由:有明确数字的首帧优化案例,且强调弱网与跨国条件下的首帧成立概率。