ASR 语音识别

最近更新时间:2022-02-15 14:40:31

我的收藏

语音识别

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

监听识别结果

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

获取语音文件下载链接(仅限“录音文件”场景)

接口定义
sdk.getAsrDownloadUrl({...}) => Promise<{...}>
参数说明
参数名
参数描述
类型
必填
DeviceId
设备 ID。
string
ResourceToken
调用 voiceRecognition 返回的 ResourceToken。
string
返回值说明
参数名
参数描述
类型
ResourceURL
cos 访问链接
string