Skip to content

火山引擎浏览器端实时语音识别(LAT/ASR)工具库,内置麦克风采集、音频处理、音频分段、WebSocket 传输和识别结果事件。

安装

bash
pnpm add @mingto/huoshan-lat

快速开始

typescript
import huoshanLat from '@mingto/huoshan-lat'

huoshanLat.config({
  latRequestBaseUrl: 'wss://audio.workbrain.cn/asr',
})

const latInstance = huoshanLat.create(
  {
    sample_rate: 16000,
    format: 'raw',
    codec: 'raw',
  },
  {
    autoControl: true,
    initialDelay: 3500,
    subsequentDelay: 3000,
  }
)

latInstance
  .on('appResponseText', (text) => {
    console.log('实时识别:', text)
  })
  .on('appResultText', (text) => {
    console.log('最终结果:', text)
  })
  .on('appFinish', () => {
    console.log('识别结束')
  })

latInstance.start()

setTimeout(() => {
  latInstance.end()
}, 5000)

API

huoshanLat.config(systemConfig)

配置系统参数,返回当前模块对象,支持链式调用。

参数类型默认值说明
latRequestBaseUrlstringwss://audio.workbrain.cn/asrLAT WebSocket 请求地址

huoshanLat.create(businessParams?, sectionDelayParams?)

创建语音识别控制器实例。

businessParams

参数类型默认值说明
sample_ratenumber16000采样率
bitsnumber16位深度
channelsnumber1声道数
formatstringraw音频格式
codecstringraw编码格式
enable_itnbooleantrue是否启用文本规范化
enable_puncbooleantrue是否启用标点
enable_ddcbooleantrue是否启用顺滑

sectionDelayParams

参数类型默认值说明
autoControlbooleantrue是否自动按静默延迟结束录音
initialDelaynumber3500首次延迟时间,单位毫秒
subsequentDelaynumber3000后续延迟时间,单位毫秒

实例方法

方法说明
start()开始录音和识别
end()停止接收新的录音数据,已录制数据继续处理
watch()监听浏览器音频输入,当音量大于 20% 且系统离线时自动开始识别
on(eventName, callback)订阅识别事件,返回当前实例

应用事件

事件名说明
appResponseText实时识别文本更新时触发
appResultText最终识别文本产生时触发
appFinish应用结束时触发

智能监听示例

typescript
const latInstance = huoshanLat.create({}, {
  autoControl: true,
})

latInstance
  .on('appResponseText', (text) => {
    console.log('实时识别:', text)
  })
  .on('appResultText', (text) => {
    console.log('最终结果:', text)
  })

latInstance.watch()

注意事项

  • 首次使用需要用户授权麦克风权限。
  • watch() 依赖浏览器 navigator.mediaDevices.getUserMedia
  • 当前实例没有公开 finish() 方法,主动结束识别请调用 end()