# 一、简介

把语音(≤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 运行前需要动态获取录音权限,用于一句话识别

注意:

在一句话识别中,需要在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

# 三、使用说明

# 3.1 创建识别对象

//创建对象

SpeechRecognizer speechRecognizer = new SpeechRecognizer();
1

# 3.2 配置识别参数

//设置识别的配置参数
speechRecognizer.setParameter(RecognizerConstant.ASR_NUM_CONVERT_KEY, SpeechConstant.ASR_VALUE_TRUE);
1
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

# 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

# 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

# 四、接口文档

下载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