- ···
- 产品服务
- ···
- 解决方案
- ···
- 文档中心
- ···
# 一、简介
把语音(≤60秒)转换成对应的文字信息,适用于较短的语音交互场景,如语音搜索、语音输入、语音控制等。
目前支持语种:中文、英语、粤语、四川话。
# 1.1 接口调用流程图
# 二、集成指南
支持静态库或者动态库两种集成方式,可以根据目标项目需求选择其中一种。
# 2.1 动态库方式
2.1.1 将 SDK 中的 UniSoundSDKDynamic.xcframework 文件添加到目标工程。
2.1.2 配置 Embeded framework,选择 ‘Embed & Sign’,同时添加系统依赖库 CFNetwork.framework、Security.framework 和 icucore。
2.1.3 Info.plist 增加 Privacy-Microphone Usage Description
2.1.4 Clean + Build。
# 2.2 静态库方式
2.2.1 将 SDK 中 UniSoundSDK/ 目录添加到目标工程。
2.2.2 配置Header Search Paths 和 Library Search Paths。
2.2.3 添加系统依赖库 CFNetwork.framework、Security.framework 和 icucore。
2.2.4 Info.plist 增加 Privacy-Microphone Usage Description
2.2.5 Clean + Build。
# 三、 使用说明
# 3.1 创建识别对象
USCSpeechRecognizer *recognizer = [USCSpeechRecognizer sharedInstance];
1
# 3.2 配置代理和识别参数
recognizer.delegate = self;
[recognizer setParameter:[USCSpeechRecognizerConstant AUDIO_SOURCE_INNER_MIC]
forKey:[USCSpeechRecognizerConstant AUDIO_SOURCE_KEY]];
1
2
3
2
3
# 3.3 开始识别
SDK支持调用内部麦克风传入语音,也支持外部输入音频片进行识别,一般二者使用一种方式即可。
# 3.3.1 使用麦克风采集音频
// 配置音频输入源为内部麦克风
[recognizer setParameter:[USCSpeechRecognizerConstant AUDIO_SOURCE_INNER_MIC]
forKey:[USCSpeechRecognizerConstant AUDIO_SOURCE_KEY]];
// 开始识别
BOOL result = [recognizer startListening];
1
2
3
4
5
2
3
4
5
# 3.3.2 外部输入音频片段识别
// 配置音频输入源为 外部输入
[recognizer setParameter:[USCSpeechRecognizerConstant AUDIO_SOURCE_INPUT_DATA]
forKey:[USCSpeechRecognizerConstant AUDIO_SOURCE_KEY]];
// 配置输入文件音频格式为 opus
[recognizer setParameter:[USCSpeechRecognizerConstant FORMAT_OPUS]
forKey:[USCSpeechRecognizerConstant FORMAT_KEY]];
// 开始识别
BOOL result = [recognizer startListening];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test"
ofType:@"opus"];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
for (int i = 0; i < fileData.length; i = i + 1024) {
int length = MIN(1024, (int)fileData.length - i);
NSData *subData = [fileData subdataWithRange:NSMakeRange(i, length)];
// 写入音频片段
[recognizer writeAudio:subData];
usleep(5000);
}
// 识别结束等待结果回调
[recognizer stopListening];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 3.4 获取识别结果
// 识别过程中事件回调。事件类型请阅读USCSpeechRecognizerEvent.h
- (void)onEvent:(USCSpeechRecognizerEvent)event {
}
// 麦克风采集过程音量回调,范围0-100
- (void)onVolumeChanged:(int)volume {
}
// 识别过程中结果回调。isLast = YES,表示最终识别结果。
- (void)onResult:(NSString *)result isLast:(BOOL)isLast {
}
// 识别过程中异常回调。
- (void)onCompleted:(USCSpeechRecognizerError *)error {
}
finished = false 代表识别未结束,是中间可变识别结果
finished = true 代表识别未结束,代表识别结果,是最终识别结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 四、接口文档
下载SDK获取接口文档 (opens new window)
SDK下载路径:AI开放平台 - 控制台 - 我的应用 - 应用详情 - 一句话识别最下方
# 五、识别结果说明
识别结果通过 USCSpeechRecognizerDelegate 返回。
// 识别过程中结果回调。isLast = YES,表示最终识别结果。
- (void)onResult:(NSString *)result isLast:(BOOL)isLast {
}
1
2
3
4
2
3
4
参数 | 类型 | 说明 |
---|---|---|
result | NSString | 识别结果文本 |
isLast | BOOL | 是否是最终结果。 isLast = NO,表示过程结果; isLast = YES,表示最终识别结果。 |
# 六、错误码
错误类型 | 错误码 | 描述 |
---|---|---|
USCSpeechRecognizerErrorTypeRecordFail | -10100 | 开启录音失败 |
USCSpeechRecognizerErrorTypeMicDenied | -10102 | 麦克风权限禁用 |
USCSpeechRecognizerErrorTypeConnectFail | -10103 | 网络连接失败 |
USCSpeechRecognizerSignatureFail | 401 | 签名验证失败 |
USCSpeechRecognizerInvalidTimestamp | 403 | 时钟偏移校验失败 |
USCSpeechRecognizerInvalidParam | 20201 | 参数错误 |
USCSpeechRecognizerTimeout | 20202 | 超过10s没有上传语音 |
USCSpeechRecognizerNotEnoughService | 20203 | 服务资源不足 |
USCSpeechRecognizerInternalError | 20204 | 服务内部错误 |
USCSpeechRecognizerLengthExceedMax | 20205 | 音频长度超过1分钟 |
USCSpeechRecognizerConcurrencyExceedLimit | 20206 | 并发超过限制 |
USCSpeechRecognizerTimesUsedUp | 20207 | 套餐次数用完 |
USCSpeechRecognizerAppKeyNotExist | 20208 | appKey 不存在 |
USCSpeechRecognizerIPNotInWhitelist | 20209 | 客户端ip不在白名单 |