- ···
- 产品服务
- ···
- 解决方案
- ···
- 文档中心
- ···
# 一、简介
把语音(≤60秒)转换成对应的文字信息,适用于较短的语音交互场景,如语音搜索、语音输入、语音控制等。
# 1.1 接口调用流程图
# 二、集成指南
2.1 将SDK中libs下面的arr包拷贝到工程的libs目录下
2.2 同时也需要在build.gradle进行aar配置 配置如下:
implementation files("libs/Unisound_PaaS_Sdk.aar")
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'
1
2
3
4
5
2
3
4
5
2.3 运行前需要动态获取录音权限,用于一句话识别
注意:
在一句话识别中,需要在Application添加公共代码 在Application 类的onCreate中调用:
SpeechUtility.createUtility(this);
speechUtility.getUtility().setParameter(RecognizerConstant.ASR_APP_KEY,"申请的ASR的KEY"); speechUtility.getUtility().setParameter(RecognizerConstant.ASR_APP_SECRET,"申请的ASR的SECRET"); speechUtility.getUtility().setParameter(SynthesizerConstant.TTS_APP_KEY,"申请的TTS的KEY"); speechUtility.getUtility().setParameter(SynthesizerConstant.TTS_APP_SECRET,"申请的TTS的SECRET");
1
2
3
2
3
# 三、使用说明
# 3.1 创建识别对象
//创建对象
SpeechRecognizer speechRecognizer = new SpeechRecognizer();
1
# 3.2 配置识别参数
//设置识别的配置参数
speechRecognizer.setParameter(RecognizerConstant.ASR_NUM_CONVERT_KEY, SpeechConstant.ASR_VALUE_TRUE);
1
2
2
# 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开放平台 - 控制台 - 我的应用 - 应用详情 - 一句话识别最下方
# 五、SDK混淆说明
SDK内部做了混淆设置,业务层在做混淆的时候,不需要对其进行混淆。
-keep class cn.yunzhisheng.audioPlatform.** {*;}
-keep class a.a.a.** { *; }
-keep class com.unisound.cloud.** {*;}
1
2
3
4
5
2
3
4
5