0.0.5 • Published 5 months ago
@ratutech/asr v0.0.5
@ratutech/asr - 语音转文字库核心库
这是一个使用 recorder-core
和 websocket
来实现的简单语音识别库,支持 UMD
, CMD
, ESM
等多种模块规范。
模块说明
ASRConnecter
用来管理 websocket
链接,监听 ASRRecorder
实例返回的数据发送给服务端
ASRRecorder
用来实现实时获取录音数据的功能,基于 recorder-core
进行封装
EventEmitter
用来实现发布订阅功能,是 ASRConnecter
和 ASRRecorder
的父类
createASR
创建并返回 ASRConnecter
的实例
安装
npm install @ratutech/asr
使用方法
基本用法
import { createASR } from '@ratutech/asr';
// 创建语音识别连接实例
const asr = createASR({
url:'wss://asr.xxxxx.com/api', // websocket服务地址
token:'eyxxxxxxxxxxxxxxxxxx' // 校验用户登录状态
});
// 监听语音识别返回文字的事件
asr.on('output', (data: string) => {
text.value = data
})
// 监听话筒状态(是否真正开始录音)
asr.on('recognizing', () => {
isPreparingMic.value = false
isRecognition.value = true
})
// 监听错误
asr.on('error', (error: string) => {
isPreparingMic.value = false
isRecognition.value = false
ElMessage.error(error)
console.log(error)
})
// 创建websocket连接并开始录音
const start = () => {
asr.start()
isPreparingMic.value = true
isRecognition.value = false
}
// 停止识别
const stop = () => {
asr.stop()
/*
停止识别时,需要把已经录音但未识别的内容发送到服务端进行识别之后再断开连接。
这是个异步过程,所以使用发布订阅的方式进行处理。
*/
asr.on('stopped', () => {
isRecognition.value = false
isPreparingMic.value = false
lastText.value = text.value
text.value = ''
asr.off('stopped')
})
}
// 销毁
const destroy = () => {
isRecognition.value = false
isPreparingMic.value = false
asr.destroy()
}
许可证
MIT