iOS SDK 接入(旧)
该技术服务已迁移至思必驰开放平台,本文档于2020年8月25日停止更新。最新版请查看:https://cloud.aispeech.com/docs/asr_sentence_ios
一、功能介绍
一句话识别对时长较短(60秒以内)的语音进行识别,非实时的返回识别结果。适用于较短的语音交互场景,如语音搜索、语音指令、语音短消息等,可集成在各类App、智能家电、智能助手等产品中。支持:
- 可用于基于协议开发的:轻量级嵌入式设备;
- 支持pcm,wav, ogg(speex), ogg_opus, mp3格式的音频识别;
- 支持语言模型等特殊配置,请联系商务或项目经理进行定制,或联系:asrsupport_service@aispeech.com(邮件中请提供联系方式和需求详细描述)。
二、调用限制
集成实时长语音转写SDK时,需要注意以下内容:
内容 |
说明 |
---|---|
字符编码 | UTF-8 |
语言种类 | 支持格式以server文档为主:一句话Server接入 |
服务鉴权 | 一句话转写服务使用需要进行授权,详见:基础技术iOS授权说明 |
音频属性 | 采样率16k、单声道 |
音频格式 |
支持格式以server文档为主:一句话Server接入 |
服务开通 | 调用服务需要先购买时长 |
三、集成流程
3.1 产品创建与授权
产品创建
前往DUI控制台创建基础技术产品,并开通一句话识别服务。
产品授权
授权详见:基础技术iOS授权说明
3.2 SDK集成准备
下载SDK
请前往:这里下载最新版的SDK。
SDK准备
集成SDK前,需要有:
libDUILiteAuth.a 及头文件
libDUILite_ios_ASR_sentence.a 及头文件
3.3 集成SDK
SDK包说明
libs ------------------- 库文件
sample --------------- demo
SDK集成流程
SDK集成整体流程如下图:
SDK导入
- 建立工程
- 将头文件和 libDUILiteAuth.a,libDUILite_ios_ASR_sentence.a库导入工程
- 添加依赖库
使用cocoapod 导入使用到的第三方库(或直接下载导入源码到工程中):
pod 'Reachability', '~> 3.2'
pod 'AFNetworking', '~> 3.2.1'
四、SDK 使用说明
4.1 初始化
AICloudASRSentenceConfig部分设置参数如下:
AICloudASRSentenceConfig *config = [[AICloudASRSentenceConfig alloc]init];
config.audioType = @"wav"; // 音频类型,必填。 默认:wav,支持:pcm,wav,ogg,ogg_opus,mp3,opus
config.sampleRate = 16000; // 音频采样率,默认16000
config.sampleBytes = 2; // 取样字节数,默认2
config.channel = 1; // 音频通道数,默认1
config.lang = @"cn"; // 可选值: cn(默认值, 中文)
config.use_vad = YES; // 是否启用VAD功能。 默认:true。如果关闭,会跳过音频分割,直接进入识别流程。
config.vad_pause = 500; // 切割间隔时间,默认值:500,单位:毫秒。
config.use_fullstop = NO; // 开启后处理时,是否使用中文句号来进行分句。 默认:false。
config.use_segment = NO; // 是否返回详细的分词结果。默认:false。如果开启,返回的result会以词为单位返回。
4.2 开始请求识别
/初始化配置参数类,按需求自行调配参数。
AICloudASRSentenceConfig *config = [[AICloudASRSentenceConfig alloc]init];
//识别音频路径
NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"audio.wav" ofType:nil];
//请求识别
[[AIASRSentenceEngine shareInstance] asrSentence:audioPath config:config Progress:^(float progress) {
NSLog(@"%f",progress);
} Success:^(NSDictionary * _Nonnull succeedInfo) {
NSLog(@"%@",succeedInfo);
} Failure:^(NSDictionary * _Nonnull errorInfo) {
NSLog(@"%@",errorInfo);
}];
4.3 响应结果
{
errno: 0,
error: "",
data: {
session_id: "5e548cf5d992b626aceea8e5", //服务器响应唯一ID
request: {
audio: {
audio_type: "wav",
channel: 1,
sample_bytes: 2,
sample_rate: 16000
},
duration: 91718, // 音频时长
length: 2935034, // 音频文件长度
request_id: "92634b3b04dd41e3bcd966758dcc8d3c"
},
result: [ //正常的识别分句结果
{
bg: 1850, //开始时间(ms)
ed: 12980, //结束时间(ms)
onebest: "" //识别文本
},
{
bg: 1850,
ed: 12980,
onebest: ""
},
...
],
segments: [ //当打开use_segment参数,会额外返回分词后的结果
{
bg: 1850,
ed: 12980,
onebest: ""
},
{
bg: 1850,
ed: 12980,
onebest: ""
},
...
]
}
}
4.4 销毁引擎
[AIASRSentenceEngine deallocInstance];
五、SDK 错误码说明
授权时可能遇见的错误码,参考 基础技术授权说明 3.3
识别时可能遇到的错误码,参考 在线语音识别 3.5