@mt-utils/xunfei-lat
v1.0.6
Published
讯飞LAT 语音转文本
Downloads
385
Readme
@mt-utils/xunfei-lat
一个用于音频录制、处理、分割和通过网络请求发送音频数据的语音处理库。
特点
- 支持音频录制和播放。
- 提供音频数据处理和编码转换。
- 实现音频数据分割,支持分块发送。
- 通过网络请求发送音频数据,并处理响应。
- 使用事件驱动模型来解耦各个组件。
安装
pnpm install @mt-utils/xunfei-lat
配置系统参数
配置必要的系统参数,这些参数通常在讯飞开放平台申请:
/**
* 平台系统配置
*/
const systemConfig = {
/**
* 在平台申请的密钥信息
*/
API_SECRET: 'your_api_secret',
/**
* 在平台申请的APPID信息
*/
APPID: 'your_appid',
/**
* 在平台申请的API_KEY信息
*/
API_KEY: 'your_api_key'
}
// 配置系统参数
LatController.config(systemConfig)
创建实例
创建 LatController
实例,并配置业务参数:
/**
* 创建LatController实例
*/
const latRequestParams = {
/**
* 语种
* - 'zh_cn': 中文(支持简单的英文识别)
* - 'en_us': 英文
* - 其他小语种参数值需在控制台添加试用或购买后显示
*/
language: 'zh_cn',
/**
* 应用领域
* - 'iat': 日常用语
* - 'medical': 医疗
* - 'gov-seat-assistant': 政务坐席助手
* - 'seat-assistant': 金融坐席助手
* - 'gov-ansys': 政务语音分析
* - 'gov-nav': 政务语音导航
* - 'fin-nav': 金融语音导航
* - 'fin-ansys': 金融语音分析
*/
domain: 'iat',
/**
* 方言,当前仅在language为中文时,支持方言选择。
* - 'mandarin': 中文普通话、其他语种
* - 其他方言参数值需在控制台添加试用或购买后显示
*/
accent: 'mandarin',
/**
* 用于设置后端点检测的静默时间,单位是毫秒。
* 默认2000(小语种除外,小语种不设置该参数默认为未开启VAD)。
*/
vad_eos: 3600000,
/**
* 动态修正(仅中文普通话支持)
* - 'wpgs': 开启流式结果返回功能
*/
dwa: 'wpgs',
/**
* 领域个性化参数(仅中文支持)
* - 'game': 游戏
* - 'health': 健康
* - 'shopping': 购物
* - 'trip': 旅行
*/
pd: 'game',
/**
* 是否开启标点符号添加(仅中文支持)
* - 1: 开启(默认值)
* - 0: 关闭
*/
ptt: 1,
/**
* 字体(仅中文支持)
* - 'zh-cn': 简体中文(默认值)
* - 'zh-hk': 繁体香港
*/
rlang: 'zh-cn',
/**
* 返回子句结果对应的起始和结束的端点帧偏移值。
* - 0: 关闭(默认值)
* - 1: 开启
*/
vinfo: 0,
/**
* 数字格式规则为阿拉伯数字格式(中文普通话和日语支持)
* - 0: 关闭
* - 1: 开启(默认值)
*/
nunum: 1,
/**
* speex音频帧长,仅在speex音频时使用
* - 1: 当speex编码为标准开源speex编码时必须指定
* - 2: 当speex编码为讯飞定制speex编码时不要设置
*/
speex_size: 1,
/**
* 获取在发音相似时的句子多侯选结果。
* 取值范围[1,5],设置多候选会影响性能,响应时间延迟200ms左右。
*/
nbest: 1,
/**
* 获取在发音相似时的词语多侯选结果。
* 取值范围[1,5],设置多候选会影响性能,响应时间延迟200ms左右。
*/
wbest: 1
}
/**
*
*/
const sectionDelayParams = {
/**
* 是否自动控制延迟
*/
autoControl: true,
/**
* 第一次延迟时间
*/
initialDelay: 3000,
/**
* 后续延迟时间
*/
subsequentDelay: 1000,
/**
* 识别为内容空是否继续延迟识别
*/
isKeepRecognizingOnEmpty: true
};
const latInstance = LatController.create(latRequestParams,sectionDelayParams)
可用方法
开始录音
latInstance.start()
开始录音和识别
例子
latInstance.start()
结束录音
latController.finish()
停止录音和识别
例子
latInstance.finish()
应用钩子
应用钩子事件允许您在特定时刻执行自定义逻辑。
| 钩子名称 | 触发时机 | 描述 |
| :-------------- | :--------------------------------------------------------------------- | :--------------------------------- |
| appCreate
| 应用和所有的处理器被创建初始化时触发。 | 应用和所有的处理器被创建并初始化。 |
| appStart
| 第一个处理器进入运行状态时触发,也就是有一条源数据进入了第一个处理器。 | 第一个处理器开始处理数据。 |
| appFinish
| 应用被停止时触发。 | 应用的所有处理器都已停止运行。 |
| appResultText
| 识别结果事件触发。 | 处理识别到的文本结果。 |
appCreate
当应用及其所有处理器被创建并初始化时,此事件被触发:
latInstance.on('appCreate', () => {
console.log('应用及其处理器已成功创建并初始化。')
})
appStart
当第一个处理器接收到源数据并开始运行时,此事件被触发:
latInstance.on('appStart', () => {
console.log('第一个处理器已接收到数据并开始处理。')
})
appFinish
当应用的所有处理器完成工作,应用被停止时,此事件被触发:
latInstance.on('appFinish', () => {
console.log('应用已停止运行,所有处理器均已完成工作。')
})
appResultText
当应用处理并识别出文本结果时,此事件被触发:
latInstance.on('appResultText', () => {
console.log('应用已输出识别到的文本结果。')
})
参数与类型
SystemConfig
| 参数 | 描述 |
| :----------- | :---------------------- |
| API_SECRET
| 在平台申请的密钥信息 |
| APPID
| 在平台申请的APPID信息 |
| API_KEY
| 在平台申请的API_KEY信息 |
LatRequestParams
| 参数 | 描述 | 可选值 | 默认值 |
| :----------- | :--------------------------------------------------- | :----------------------------------------------- | :----------- |
| language
| 语种 | 'zh_cn'
, 'en_us'
, 其他小语种 | 'zh_cn'
|
| domain
| 应用领域 | 'iat'
, 'medical'
, 'gov-seat-assistant'
, 等 | 'iat'
|
| accent
| 方言 | 'mandarin'
, 其他方言 | 'mandarin'
|
| vad_eos
| 后端点检测的静默时间,单位毫秒 | 任意正整数 | 2000
|
| dwa
| 动态修正(仅中文普通话支持) | 'wpgs'
| 'wpgs'
|
| pd
| 领域个性化参数(仅中文支持) | 'game'
, 'health'
, 'shopping'
, 'trip'
| 'game'
|
| ptt
| 是否开启标点符号添加(仅中文支持) | 1
, 0
| 1
|
| rlang
| 字体(仅中文支持) | 'zh-cn'
, 'zh-hk'
| 'zh-cn'
|
| vinfo
| 返回子句结果对应的起始和结束的端点帧偏移值 | 0
, 1
| 0
|
| nunum
| 数字格式规则为阿拉伯数字格式(中文普通话和日语支持) | 0
, 1
| 1
|
| speex_size
| speex音频帧长,仅在speex音频时使用 | 1
, 2
| 1
|
| nbest
| 获取在发音相似时的句子多侯选结果 | [1,5]
| 1
|
| wbest
| 获取在发音相似时的词语多侯选结果 | [1,5]
| 1
|
SectionDelayParams
| 参数 | 描述 | 类型 | 默认值 |
| :------------------------- | :--------------------------- | :-------- | :------ |
| autoControl
| 是否自动控制延迟 | boolean
| true
|
| initialDelay
| 第一次延迟时间 | number
| 3000
|
| subsequentDelay
| 后续延迟时间 | number
| 1000
|
| isKeepRecognizingOnEmpty
| 识别为内容空是否继续延迟识别 | boolean
| false
|