帮助与文档 > 产品文档 > 语音识别ASR > IOS_SDK文档 > 实时语音识别服务
实时语音识别服务

有道智云实时语音识别 SDK简介

有道智云实时语音识别 SDK 是有道智云开放平台提供的云服务之一,是有道在线实时语音识别接口的一种实现,支持在线实时语音识别。

通过SDK接入优势:

  1. 接入简单,不用实现整个实时语音识别协议
  2. 方便进行数据统计,了解用户实时语音识别使用情况

集成前提

开始集成SDK之前开发者需要登录有道开放平台(http://ai.youdao.com),创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用评测服务。

实时语音识别 SDK 由如下几个 SDK 组成,用户可根据需要组合使用:

  1. FanYiSDK.h:头文件(必选)
  2. libbase.a:实时语音识别相关sdk基础库(必选)
  3. libStreamASR.a:在线实时语音识别 SDK(必选,使用在线实时语音识别时使用)

SDK 集成步骤

头文件及SDK库引入(所有功能都需要这一步)

  1. 添加头文件和库文件:将实时语音识别 SDK 添加到工程中,包括 FanYiSDK.h头文件、libbase.a和libStreamASR.a文件。
  2. 设置工程Other Linker Flags为-ObjC
  3. 在工程build Phases – Link Binary With Libraries中添加libbase.a, AdSupport.framework, CoreTelephony.framework, SystemConfiguration, libz.tbd和libsqlite3.tbd。

功能集成说明

1. 初始化key

说明:所有的查询都需要初始化key,只执行初始化一次即可。

//初始化key
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";

2. 在线实时语音识别功能

说明:支持实时实时语音识别,目前支持中英文,请参考 demo 中 StreamASRController 的使用;

1. 使用的库文件:头文件、libbase.a、libStreamASR.a;

2. 构造识别器

YDSpeechRecognizer *recognizer = [YDSpeechRecognizer sharedRecognizer];
recognizer.delegate = self;

3. 设置识别所需要的附加信息

YDSpeechRecognizerParam *param = [YDSpeechRecognizerParam param];
param.langType = @"zh-CHS";//源语言
param.rate = @"16000";//采样率
param.format = @"wav";//语音文件格式
param.vadBOS = 2000;//前端点静音检测时长,ms
param.vadEOS = 2000;//后端点静音检测时长,ms
recognizer.param = param;

4. 执行语音识别过程

执行[self.recognizer startListening];开始实时语音识别,结果将在代理方法中回调给开发者;

#pragma mark - speech recognizer delegate
- (void)onBeginOfSpeech {
  [self startSpeakingAnimation];
  NSLog(@"------speech start-----");
}

- (void)onEndOfSpeech {
  [self endSpekingAnimation];
  NSLog(@"------speech end-----");
}

- (void)onResults:(NSDictionary *)result isLast:(BOOL)isLast {
  NSString *sentence = result[@"sentence"];
  self.recognizedLabel.text = [NSString stringWithFormat:@"%@%@", self.displayingText, sentence];
  if (isLast) {
    [self.displayingText appendString:sentence];
  }
}

- (void)onCompleted:(NSError *)speechError {
  [self endSpekingAnimation];
  NSLog(@"------speech completed-----");
}

- (void)onConstantlyQuietIsBOS:(BOOL)isBOS {
  NSLog(@"检测到%@静音", isBOS ? @"前端点" : @"后端点");
}

支持语言

语言代码
中文zh-CHS
英文en

错误码

错误码含义
101缺少必填的参数,出现这个情况还可能是 et 的值和实际加密方式不对应
102不支持的语言类型
103翻译文本过长
104不支持的 API 类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108appKey 无效,注册账号, 登录后台创建应用和实例并完成绑定, 可获得应用ID和密钥等信息,其中应用ID就是appKey( 注意不是应用密钥)
109batchLog 格式不正确
110无相关服务的有效实例
111开发者账号无效,可能是账号为欠费状态
201解密失败,可能为 DES,BASE64,URLDecode 的错误
202签名检验失败
203访问 IP 地址不在可访问 IP 列表
301辞典查询失败
302翻译查询失败
303服务端的其它异常
401账户已经欠费停
-1000未知错误
-2000查询输入为空