Appearance
火山引擎浏览器端实时语音识别(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)
配置系统参数,返回当前模块对象,支持链式调用。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| latRequestBaseUrl | string | wss://audio.workbrain.cn/asr | LAT WebSocket 请求地址 |
huoshanLat.create(businessParams?, sectionDelayParams?)
创建语音识别控制器实例。
businessParams
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| sample_rate | number | 16000 | 采样率 |
| bits | number | 16 | 位深度 |
| channels | number | 1 | 声道数 |
| format | string | raw | 音频格式 |
| codec | string | raw | 编码格式 |
| enable_itn | boolean | true | 是否启用文本规范化 |
| enable_punc | boolean | true | 是否启用标点 |
| enable_ddc | boolean | true | 是否启用顺滑 |
sectionDelayParams
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| autoControl | boolean | true | 是否自动按静默延迟结束录音 |
| initialDelay | number | 3500 | 首次延迟时间,单位毫秒 |
| subsequentDelay | number | 3000 | 后续延迟时间,单位毫秒 |
实例方法
| 方法 | 说明 |
|---|---|
| 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()。