0.0.5 • Published 5 months ago

@ratutech/asr v0.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
5 months ago

@ratutech/asr - 语音转文字库核心库

这是一个使用 recorder-corewebsocket 来实现的简单语音识别库,支持 UMD, CMD, ESM 等多种模块规范。

模块说明

ASRConnecter

用来管理 websocket 链接,监听 ASRRecorder 实例返回的数据发送给服务端

ASRRecorder

用来实现实时获取录音数据的功能,基于 recorder-core 进行封装

EventEmitter

用来实现发布订阅功能,是 ASRConnecterASRRecorder 的父类

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

0.0.5

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago

0.0.0

5 months ago