@zh-keyboard/recognizer
Version:
76 lines (53 loc) • 2.61 kB
Markdown
[](LICENSE)
中文虚拟键盘组件库的手写识别模块
- ✏️ 实时手写汉字识别
- 🔧 可自定义识别模型和字典
- 🚀 识别速度快,纯cpu模式200ms内,可选webgl加速
- 📚 内置支持GB2312标准中的3755个一级汉字的识别支持
- 🔄 更多文字识别支持(包括二级汉字、生僻字等)暂不开放
**手写识别模型由我的一个朋友提供**
如果您需要包括二级汉字、生僻字等的更完整的手写识别模型,以及更多的定制服务,请扫描下方二维码添加我朋友的QQ进行咨询:
<img src="qrcode.jpg" alt="联系二维码" width="50%">
```bash
npm install @zh-keyboard/recognizer
pnpm add @zh-keyboard/recognizer
```
```typescript
import { ZhkRecognizer } from '@zh-keyboard/recognizer'
// 如果需要使用WebGL后端,需要手动引入
import '@tensorflow/tfjs-backend-webgl'
// 创建识别器实例
const recognizer = new ZhkRecognizer({
modelPath: '/models/handwrite/model.json', // TensorFlow.js模型路径
dictPath: '/models/dict.txt', // 汉字字典路径
backend: 'webgl' // 可选:'webgl'或'cpu',默认为'cpu'
})
// 初始化识别器(加载模型和字典)
await recognizer.initialize()
// 使用识别器识别手写汉字
// strokeData格式:[x1, y1, isEnd1, x2, y2, isEnd2, ...]
// isEnd为0表示笔画继续,为1表示笔画结束
const strokeData = [10, 10, 0, 20, 20, 1,]
const results = await recognizer.recognize(strokeData)
// 识别结果是按置信度排序的汉字数组
console.log('识别结果:', results) // 例如 ['中', '申', '由', ...]
// 使用完毕后释放资源
await recognizer.close()
```
- `options`: 配置对象
- `modelPath`: 模型文件路径,指向TensorFlow.js模型的json文件
- `dictPath`: 字典文件路径,文本文件,每行一个汉字
- `backend`: 可选,TensorFlow.js后端类型,可选值为'webgl'或'cpu',默认为'cpu'
- 在支持WebGL的设备上使用'webgl'后端可以显著提高识别速度
- **注意:使用WebGL后端时,需要手动引入 `import '@tensorflow/tfjs-backend-webgl'`**
- 初始化时会自动进行模型预热,减少首次识别的延迟
- 如果在移动设备上使用,建议使用较小的模型以提高响应速度