@seams / voiceid
可选浏览器的语音id认证 @seams/wallet 1.0.0.
这个包拥有麦克风捕获,注册,本地推理,语音UI,
以及模型/运行时资产。钱包SDK拥有托管,会话,签名,
和可信主机API。现有的语音登记保持其存储身份。
在应用程序中启用
安装匹配的Wallet和VoiceID版本,然后导入描述符:
pnpm add @seams/[email protected] @seams/[email protected]
import { defineSeamsConfig } from '@seams/wallet';
import { voiceIdAuthMethod } from '@seams/voiceid';
const config = defineSeamsConfig({
walletOrigin,
relayerUrl,
publishableKey,
authMethods: [voiceIdAuthMethod({ transcriptionModel: 'citrinet' })],
});
选择 transcriptionModel: 'aurora' 对于较小的语音模型。Citrinet是
省略此选项时的默认值。这种选择适用于入学,
解锁,以及交易审批。每个操作始终保持其选择的模型
准备和记录。
| 语音模式 | 未压缩的 | Gzip |
|---|---|---|
| Citrinet INT8 | 10.48 MB | 8.84 MB |
| 极光INT8 | 1.34 MB | 1.02 MB |
这两种型号都附带了这个包。浏览器只下载选中的 语音模型,加上共享说话人模型,语音检测器和推理 引擎。每个模型都有自己的完整性检查缓存。改变演讲方式 模型保留保存的说话人样本和验证阈值。
根条目只包含描述符。导入它或启用它则不需要 加载捕获代码、ONNX运行时或模型。开始选择VoiceID操作 在可信钱包框架中加载。Passkey和Email OTP流保持独立。
可选 VoiceBeam 和 VoiceAssistantCard 视觉效果是从
@seams/voiceid/react。进口 @seams/voiceid/styles 使用信用卡时。
配置签名挑战
通过 voiceId.confirmationCommand 在 options 一个现有的审查NEAR
或EVM签名请求:
const options = {
voiceId: {
confirmationCommand: 'Sell 100 NEAR for USDC at $5.5',
},
};
钱包选择一个简短的仅限操作的挑战,例如“批准此销售” 或者“让这笔交易完成吧。”它省略了金额、资产和价格 口语短语。完整的交易审查仍然具有权威性。
引导动词选择短语族: sell, buy, swap,或者
send/transfer。其他措辞使用默认的随机挑战。命令
非空字符串,不含控制字符,不超过256个字符。
应用程序无法提供最终短语或更改验证阈值。
重试,选择所选家族中的不同短语。
此选项仅更改措辞。对于不支持的,它不启用VoiceID 交易或解释交易命令。VoiceID目前支持审核 在NEAR测试网和Arc测试网上进行本地传输。批准仍然与 完成签名请求和审查截止日期,包括提供的命令。 注册和解锁保留默认短语库。这不会增加任何模型或API 请求并将音频保存在Wallet iframe中。
在Wallet主机上安装
钱包主机操作员也必须安装这个包。应用配置不能
提供可执行代码或选择插件URL。一个普通 @seams/wallet 部署
不包含VoiceID实现、引擎或模型。
从两个已安装的包组成一个单独的部署目录:
npx --no-install seams-voiceid-host ./wallet-with-voiceid
该命令自动查找已安装的钱包包,包括pnpm布局。
输出目录必须是新的,并且与已安装的包树分开。
服务于 /wallet-service, /sdk/*,以及来自钱包源的清单文件。
该命令保留了普通的Wallet包并扩展了现有的资产
清单与 /sdk/voiceid/*.
组成特定钱包构建的节点部署可以直接调用该操作:
import { composeVoiceIdWalletAssets } from '@seams/voiceid/hosting';
await composeVoiceIdWalletAssets({
walletPublicDirectory: './node_modules/@seams/wallet/dist/public',
outputDirectory: './wallet-with-voiceid',
});
主机负载 /sdk/voiceid/host.js 仅用于启用的VoiceID操作。双方
检查主机API版本。缺少的包将产生显式安装
错误。它不能退回到其他身份验证方法。
装载和储存
一个累计指标涵盖了发动机WASM和三种车型。然后显示 准备VoiceID…… 直到推理准备好。检查下载的资源 长度和SHA-256使用前。浏览器缓存保留是最好的方法。
中断的下载会自动重试一次。下载停滞超时 30秒后没有进展。进一步的失败表明 重新加载 在 相同的卡片。Retry保留已验证的资产和语音注册。将卡片关闭到 选择一个密码。缺失或不兼容的主机包需要 运营商解决;其他模块故障包括连接和重新加载指令。
事务审查在启用前准备VoiceID 请输入VoiceID确认. 点击后,语音尝试计时器开始计时。事务的到期仍然存在 加载或重试时生效,因此过期的事务需要重新审查。
VoiceID记住这个浏览器中可用音频所用的麦克风。招生, 即使在系统默认值更改时,也可以解锁和签名输入请求。 如果不可用,VoiceID可以使用当前默认值。重新连接保存的文件 麦克风恢复它。中断的录音需要重新尝试。的声音 登记和验证阈值保持不变。 选择 使用系统麦克风 在重试提示中切换输入。接下来的 记录点击使用系统默认值,并在可用音频后记住它。
传输压缩前的冷有效载荷在Aurora或 36 MB的Citrinet。 拆分它可以从仅钱包安装中删除该负载。事实并非如此 减少第一个VoiceID操作所需的字节。