@ 沙漠地块/ ear
用于JavaScript的在线语音语言识别. 录下一段录音 标出它使用的语言,所以应用程序可以在它之前选择正确的识别器 开始转写。 所有东西都是本地的 所以录音从不离开 设备或浏览器.
两条共用一条 Ear API : (英语)
@desert-ant-labs/ear(默认):一个WebAssembly输油管 LitteRT.js (法语) 推论 (XNNPACK默认加速CPU,可选WebGPU),用于 浏览器。 没有本地的依赖性,所以每个目标都有一个干净的进口建筑 多目标捆绑机(Next.js、Remix、SvelteKit、Nuxt),包括 浏览器捆绑和客户端-组件 SSR 通过这些框架 节点. 这是安全的 导入 服务器侧渲染时, 但 LiteRT.js 需要 浏览器( 或 Web Worker) 以初始化, 所以Ear.load()只运行推论 浏览器; 在平面节点中调用它 改为/native。 。 。 .@desert-ant-labs/ear/native: 预建的本地核心( LiteRT on Linux, 核心ML在macOS上,用于 服务器侧推论 在节点。 没有@litertjs/core, (中文(简体) ), 没有建造工具,没有旗帜。 从纯服务器代码( API 路由、 服务器) 导入 动作,普通节点脚本). 不要从同样组件导入它 在浏览器中制作.
# Browser (default entry):
npm i @desert-ant-labs/ear @litertjs/core
# Server-side inference in Node (/native entry) needs no extra install:
npm i @desert-ant-labs/ear
使用
import { Ear } from "@desert-ant-labs/ear"; // browser
// import { Ear } from "@desert-ant-labs/ear/native"; // Node
const ear = await Ear.load(); // downloads once, then cached
const detection = await ear.identify(samples, 16000);
detection.language // "pt"
detection.confidence // 0.98
detection.isReliable // true
ear.dispose();
samples 单数 Float32Array 任何速率; 音频重印, 16 kHz
避免转换.
分会 isReliable,没有打开 confidence
if (detection.isReliable) {
transcribeWith(detection.language);
} else {
askTheUser(); // or fall back to a general recognizer
}
isReliable 当前两名候选人离分开太近时是虚假的
对北欧语言来说是虚假的,模型将北欧语言相互混淆
自信的而不是不确定的--所以他们的概率不会揭示
问题和门槛 confidence 无法抓住它。 旗帜决定在
所以SDK的读数都是一样的
判决.
它背后的门槛是用162个录音把它扫去: 上面的答案,98.5%的路由正确,在某一语言的文件上,主要 识别器支持,100%支持.
它会听什么
交给翻译的文件不是演讲结束,所以 Ear 没有
听它结束 要么结束。 它按照候选人窗口的多少排序
音高按音节率不同 - 语音起伏 三到六次 a
第二,词之间有空白,音乐维持,沉默完全没有变化
- 并听取最上三相语.
过 windows 以更改数量:
await ear.identify(samples, 16000, { windows: 5 });
限制
- 在响亮的音乐下,演讲混杂在一起 大约60%的时间被正确读取. 选择更好的窗口没有帮助;模型无法读取.
- 北欧语言 不可靠地区分
isReliable错误 而不是自信地报告. - 记录短于30秒 得到一个单一窗口,所以有 答案不如数字所示的那么肯定.
- 多语种录音以所选窗口所使用的语言报告 包含,而不是作为混合物.
许可证
沙漠蚂蚁实验室 源头可破坏许可证。为大多数免费提供 应用软件和商务许可证必须规模化。 完整的术语在链接. 许可证发放: 许可@ desertant.com。 。 。 .
SDK的第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .
权重第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .