@ai-matrx/浏览器-音频
持久浏览器语音输入,带有框架光芯,索引DB恢复, 可插件复制,可选的 AI Matrx 适配器和可选反应 控制系统.
软件包拥有困难浏览器生命周期: 麦克风权限,
MediaRecorder音频形式的谈判, 块旋转, 本地安全写道,
命令现场抄录 完整记录回落 页面后恢复
关闭或网络呼叫失败 .
安装
pnpm add @ai-matrx/browser-audio
反应控制是可选的 。 应用程序导入 /react 还必须安装
反应18或更新.
无框架核心
import {
BrowserAudioKernel,
type TranscriptionTransport,
} from "@ai-matrx/browser-audio/core";
const transport: TranscriptionTransport = {
async transcribe(file, signal) {
const form = new FormData();
form.append("file", file);
const response = await fetch("/api/transcribe", {
method: "POST",
body: form,
signal,
});
if (!response.ok) throw new Error("Transcription failed");
return response.json();
},
};
export const audio = new BrowserAudioKernel({
transport,
onDiagnostic: (diagnostic) => reportDiagnostic(diagnostic),
});
每个应用程序创建一个内核 。 输入订阅内核并识别
他们用马厩录音 ownerId。 。 。 .
AI Matrx 适配器
import { BrowserAudioKernel } from "@ai-matrx/browser-audio/core";
import { createMatrxAudioClient } from "@ai-matrx/browser-audio/matrx";
const client = createMatrxAudioClient({
baseUrl: "https://server.example.com/api",
getAccessToken: () => auth.getAccessToken(),
// Optional when /auth/whoami returns organization_id. Supply this when the
// host already owns an explicit active-organization selector.
getOrganizationId: () => auth.getActiveOrganizationId(),
});
export const audio = new BrowserAudioKernel({
transport: client,
persistence: client,
});
适配器接收来自主机的API基础URL和访问-token解析器.
它不进口应用程序代码,也不储存证书。 用于耐用 Matrx
它发送一个明确的操作 X-Organization-Id: 主机可能注入
解析器,否则适配器通过 /auth/whoami 和缓存
只用于当前访问符号.
反应
import { VoiceInputButton } from "@ai-matrx/browser-audio/react";
<VoiceInputButton
kernel={audio}
ownerId="message-composer"
value={draft}
onValueChange={setDraft}
append
onBusyChange={setVoiceBusy}
onError={showVoiceError}
/>
VoiceInputButton 样式中立, 接受 className 财务报告和审定财务报表 style,并允许
要替换其图标的主机 renderIcon。 。 。 . useVoiceInput 当
产品需要完全自定义的演示.
运行时间支持
- 现代浏览器应用程序,包括Vite和客户端侧Next.js代码.
- 提供的网络视图
MediaRecorder, (中文(简体) ),MediaDevices,索引数据库、网络音频,Blob, (中文(简体) ),File获取. - 在 DOM/offscreen 文档中抓取时浏览器扩展名 。 示意图V3 服务人员需要一个主机消息适配器.
- 反应本地和本地进程需要媒体/存储适配器;浏览器 抓取 API 不存在 .
导入软件包是安全的。 构造并启动内核 客户端运行时间 .
可靠性合同
- 每个完整的音频块在网络工作前都会被写入安全商店.
- 每个显示的活性记录片段都写在索引数据库之前 发布给主机UI.
- 前3和6秒迅速可见;在10秒 在解剖学上, 取而代之的是开口的更高级的文字记录.
- AI Matrx 远程恢复使用有索引的、所有者范围化的日记并拒绝 不完整块集而不是将部分音频转录为完整 .
- 失败的活块触发了全记录的复制.
- 部分笔录在倒计时失败后从未作为最后记录交付.
- 关闭页面留下可恢复的记录.
- 转录和坚持合同;核心从未假定 aPI、认证系统、数据库或框架.
- 背景失败已达
onDiagnostic; 影响用户的失败到达 记录请求和反应onError召回电话.
出口
@ai-matrx/browser-audio——无框架核心.@ai-matrx/browser-audio/core明确的核心切入点.@ai-matrx/browser-audio/matrx——AI Matrx HTTP和耐久性适配器.@ai-matrx/browser-audio/react——反应钩与控制.
发展
pnpm typecheck
pnpm test
pnpm check:package
check:package 建立无害环境管理 JavaScript 和声明,验证 npm 表面
与Publint, 包装出版的文物, 验证焦油球的申报
将它安装到空项目中, 并导入每个
公共入境点.
永远不要跑 npm publish 工作空间开发用途
pnpm 替换为 dist/ 包装时输出。 释放
已核实 .tgz 生产 pnpm pack· ; prepublishOnly 封锁不安全路径.
自动门不能取而代之的是已部署的经认证的麦克风 金丝雀. 0.2.0版本仅在匹配的 AI Dream 之后发布 录音-记者路线已经部署,金丝雀经过。 每个未来 释放必须在登记册公布前重复已部署的金丝雀.