说明:
当前页面为语音识别离在线 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,其余回调均为识别过程中的事件消息(详见接口说明部分)。
配置隐私协议
根据苹果隐私政策规定,集成 SDK 的应用需要在 Xcode 项目的 PrivacyInfo.xcprivacy 中补全条款,若项目中没有,需要根据 官方说明 使用 Xcode 15及以上的版本,新建一个 PrivacyInfo.xcprivacy 文件,参考以下方式,添加 SDK 依赖的隐私条款:
1. 在 Xcode 中选择 PrivacyInfo.xcprivacy。
2. 将
Privacy Accessed API Types
条款添加到 PrivacyInfo.xcprivacy 中,具体配置如下图:

接口说明
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;
按设备授权(仅对离线模式和混合模式生效)
参数
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)needvadvoice_format:(NSInteger)voice_formathotword_id:(NSString*)hotword_idreinforce_hotword:(NSInteger)reinforce_hotwordcustomization_id:(NSString*)customization_idfilter_dirty:(NSInteger)filter_dirtyfilter_modal:(NSInteger)filter_modalfilter_punc:(NSInteger)filter_puncconvert_num_mode:(NSInteger)convert_num_modeword_info:(NSInteger)word_infovad_silence_time:(NSInteger)vad_silence_timenoise_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 | 缓存长度 |
返回实际写入长度