有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
说明:
当前页面为语音识别离在线 SDK 开发文档。新用户可按当前文档接入离在线 SDK。客户可通过当前 SDK 选择使用纯离线版本,或根据网络情况使用自助切换的离在线版本。
语音识别离在线 SDK 不仅提供纯离线识别能力,也支持根据网络情况的变化自助切换离线和在线识别版本,从而更好地提升使用体验(请注意,如打开离在线切换开关,则在线识别需要按在线部分独立计费,否则会导致在线部分识别无效,收费标准请见 计费概述(在线版)
我们即将下线离线 SDK 的版本维护和新用户申请,也建议正在使用离线 SDK 的客户及时升级到离在线 SDK,以获取更好的使用体验。

开发准备

不支持 iOS 11.0 以下版本
仅支持 iOS arm64 架构
不支持模拟器

硬件要求

CPU: 支持 armv7,armv8 指令集,主频 1.5GHz 以上
独占内存: 至少100M
独占存储: 至少30M

下载安装 SDK

SDK 包含 demo 和 SDK 两部分
demo 仅支持 iOS 13.0 以上

简介

SDK 支持离线,在线及混合三种模式.其中 ASRController 为 SDK 的核心类,包含授权设置,参数设置,模式设置和运行控制。使用时需根据业务所需要的模式进行授权设置,参数设置和模式设置(详见接口说明部分)。

运行控制对于三种模式逻辑是一致的,进行识别前需设置数据源和事件监听,start 与stop 用于控制整体流程,调用 start 后成功开始回调 onStart,失败回调 onError,调用 stop 后成功停止回调 onStop,失败回调 onError,其余回调均为识别过程中的事件消息(详见接口说明部分)。

接口说明

ASRController

语音识别控制类
GlobalInstance
+(instancetype)GlobalInstance;
获取语音识别控制类全局实例
setMode
-(void)setMode:(MODE)mode;
设置控制器模式.支持离线模式、在线模式和混合模式
doAppAuth
-(ASRControllerError*)doAppAuth:(NSString*)lic licPk:(NSString*)licPk authSign:(NSString*)authSign;
按应用授权(仅对离线模式和混合模式生效)
参数
参数名称
描述
lic
离线 SDK 授权 License
licPk
离线 SDK 授权 LicensePk
authSign
离线 SDK 授权 LicenseSign
doDeviceAuth
-(ASRControllerError*)doDeviceAuth:(NSString*)secretId secretKey:(NSString*)secretKey token:(NSString*)token licKey:(NSString*)licKey licPk:(NSString*)licPk;
按设备授权(仅对离线模式和混合模式生效)

参数
参数名称
描述
secretId
腾讯云 secret_id,通过 访问管理控制台 获取
secretKey
腾讯云 secret_key,通过 访问管理控制台 获取
token
腾讯云 STS 鉴权 token,使用 STS 临时鉴权时使用,不使用 STS 鉴权传 null
licKey
离线 SDK 授权 LicenseKey
licPk
离线 SDK 授权 LicensePk
load
-(ASRControllerError*)load:(NSString*)path name:(NSString*)name;
载入模型(仅对离线模式和混合模式生效),需再授权完成后调用

参数
参数名称
描述
path
模型所在文件目录
name
模型名称
unload
-(ASRControllerError*)unload;
卸载模型(仅对离线模式和混合模式生效),与load配对使用
setOnlineAuth
-(void)setOnlineAuth:(NSString*)appId secretId:(NSString*)secretId secretKey:(NSString*)secretKey token:(NSString*)token;
设置在线认证参数(仅对在线模式和混合模式生效)

参数
参数名称
描述
appId
腾讯云 appID
secretId
腾讯云 secretId
secretKey
腾讯云 secretKey
token
腾讯云临时 token
setOnlineParams
-(void)setOnlineParams:(NSString*)engine_model_type needvad:(NSInteger)needvad
voice_format:(NSInteger)voice_format
hotword_id:(NSString*)hotword_id
reinforce_hotword:(NSInteger)reinforce_hotword
customization_id:(NSString*)customization_id
filter_dirty:(NSInteger)filter_dirty
filter_modal:(NSInteger)filter_modal
filter_punc:(NSInteger)filter_punc
convert_num_mode:(NSInteger)convert_num_mode
word_info:(NSInteger)word_info
vad_silence_time:(NSInteger)vad_silence_time
noise_threshold:(float)noise_threshold;
设置在线识别参数(仅对在线模式和混合模式生效),默认参数请参考demo示例

参数
参数名称
描述
engine_model_type
请参考 API 文档
needvad
请参考 API 文档
voice_format
SDK 仅支持1(pcm)和10(opus),请参考 API 文档
hotword_id
请参考 API 文档
reinforce_hotword
请参考 API 文档
customization_id
请参考 API 文档
filter_dirty
请参考 API 文档
filter_modal
请参考 API 文档
filter_punc
请参考 API 文档
convert_num_mode
请参考 API 文档
word_info
请参考 API 文档
vad_silence_time
传入小于等于0 SDK忽略该参数,请参考 API 文档
noise_threshold
请参考 API 文档
start
-(void)start;
开始识别,请在设置ASRControllerDataSource和ASRControllerListener后调用
stop
-(void)stop;
停止识别

ASRControllerError

包含错误码及错误信息 错误码
错误码
返回码
描述
UNKNOWN
-1
未知错误
SUCCESS
0
成功
NETWORK_ERROR
1
网络错误
SERVER_ERROR
2
服务器错误
ENGINE_INIT_ERROR
3
引擎初始化错误
ENGINE_AUTH_ERROR
4
引擎认证错误
DATASOURCE_INVALID
5
数据源错误
STATE_ERROR
6
状态错误
ENGINE_ERROR
7
引擎错误
ONLINE_AUTH_ERROR
8
在线认证错误

ASRControllerListener

用于同步识别过程中的事件

onBegin,onSlice,onSegment 与一段话识别有关,调用有以下几种情况
1. onBegin->onSlice->onSegment
2. onBegin->onSegment
3. onSegment
onBegin
-(void)onBegin:(NSString*)extra;
一段话开始识别

参数
参数名称
描述
extra
在线模式及混合模式处于在线状态时为服务端返回信息,请参考 API 文档
onSlice
-(void)onSlice:(NSString*)val extra:(NSString*)extra;
一段话开始识别中

参数
参数名称
描述
val
非稳态识别结果
extra
在线模式及混合模式处于在线状态时为服务端返回信息,请参考 API 文档
onSegment
-(void)onSegment:(NSString*)val extra:(NSString*)extra;
一段话开始识别结束

参数
参数名称
描述
val
稳态识别结果
extra
在线模式及混合模式处于在线状态时为服务端返回信息,请参考 API 文档
onStart
-(void)onStart:(NSString*)extra;
识别任务开始

参数
参数名称
描述
extra
在线模式及混合模式处于在线状态时为服务端返回信息,请参考API文档
onError
-(void)onError:(ASRControllerError*)val;
识别任务结束

参数
参数名称
描述
val
错误信息
onStop
-(void)onStop;
识别任务停止

onSwitch
-(void)onSwitch:(bool)is_online;
模式切换(仅混合)

参数
参数名称
描述
is_online
true 为在线状态,false 为离线状态

ASRControllerDataSource

提供16000Hz,16bit(le),pcm格式,单声道的数据源用于识别
read
-(size_t) read:(short*)data len:(size_t)len;
参数
参数名称
描述
data
传入缓存
len
缓存长度
返回实际写入长度