ASR 语音识别

最近更新时间:2024-12-26 18:07:33

我的收藏

语音识别

目前支持两种场景,分别为“录音文件”与“一句话识别”,两种场景下入参会有所不同。 由于识别过程是异步,因此接口“voiceRecognition”并不会立即返回识别结果,可以理解为该接口是创建了一个“异步任务”,当这个成功被创建的“异步任务”执行完后,会通过 websocket 将结果推送到所有订阅该 deviceId 的终端上,下文为您详细介绍 ASR 语音识别。
接口定义
sdk.voiceRecognition({...}) => Promise<{...}>
参数说明
关于“录音文件”场景支持的音频类型、大小限制以及相关字段的详细介绍,详情请参见 录音文件识别
关于“一句话识别”场景支持的音频类型、大小限制以及相关字段的详细介绍,详情请参见 一句话识别
公共参数
参数名
类型
必填
参数描述
DeviceId
string
默认使用当前设备的设备 ID。
AudioType
string
识别场景。
“录音文件”取值“file”。
“一句话识别”取值“sentence”。
Data
Blob
File
音频文件。
ResourceName
string
文件名称,如果 Data 类型是 File,则取其“name”作为默认值。
EngineType
string
引擎模型类型,默认值为“16k_zh”。
FilterDirty
number
是否过滤脏词。
FilterModal
number
是否过滤语气词。
FilterPunc
number
是否过滤标点符号。
ConvertNumMode
number
是否进行阿拉伯数字智能转换。
录音文件额外参数
参数名
类型
必填
参数描述
ChannelNum
number
语音声道数,默认为1。
SpeakerDiarization
number
是否开启话者分离。
SpeakerNumber
number
话者分离人数。
返回值
参数名
类型
参数描述
ResourceToken
string
某个设备下,音频文件的唯一标示。

监听识别结果

对于“录音文件”场景,如果音频文件过大,后台可能会对音频文件进行分片识别,每个分片识别完成后,都将推送一条 websocket 消息,但推送的消息不保证顺序(例如有可能分片2的结果先到达)。
对于“asrResponse”事件,实际是基于“wsControl”事件进行二次封装;当然,您也可以通过监听“wsControl”事件获取识别结果。
接口定义
sdk.on('asrResponse', ({ deviceId, data }) => void)
返回值说明
参数名
类型
参数描述
deviceId
string
设备 ID。
data
object
识别结果数据。
data.resource_token
string
某个设备下,音频文件的唯一标示。
data.result_code
number
状态码,0代表成功。
data.total_num
number
分片总数。
data.seq
number
当前分片序号。
data.res_text
string
当前分片识别结果,对于“录音文件”场景,识别结果会包含分段时间戳。

获取语音文件下载链接

注意:
仅限“录音文件”场景。
接口定义
sdk.getAsrDownloadUrl({...}) => Promise<{...}>
参数说明
参数名
类型
必填
参数描述
DeviceId
string
设备 ID。
ResourceToken
string
调用 voiceRecognition 返回的 ResourceToken。
返回值说明
参数名
类型
参数描述
ResourceURL
string
cos 访问链接。