- ···
- 产品服务
- ···
- 解决方案
- ···
- 文档中心
- ···
# 一、SDK说明
基于语音识别和评价技术对发音做客观打分,反馈发音正误和定位问题,有助于语音教学,发音练习,也可测试考生的口语水平。
SDK详细的接口介绍及说明请参考:Android文档。
# 二、SDK集成步骤
# 1.调用流程
# 三、Demo使用方法
将SDK中libs下面的jar包拷贝到工程的libs目录下;src/main下面的assets、java、jniLibs、res目录以及AndroidMainifest.xml覆盖到工程对应的目录。
工程结构图如下:
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
1
2
3
4
5
2
3
4
5
该代码加入到build.gradle
动态获取权限,运行过程需要给予应用所需要的录音及文件写入权限
响应结果说明
名称 | 类型 | 说明 |
---|---|---|
version | string | 结果格式版本及版本号 |
lines | array | 每行输入文本的评测结果 |
EvalType | string | 评测类型:general(朗读评测)、askandanswer(情景问答)、composition(作文) |
sample | string | 输入的标准文本 |
usertext | string | 用户实际朗读的文本(语音识别结果) |
subwords | array | 包含单词的音标、开始时间、结束时间、分数、音量信息 |
begin | double | 开始时间,单位为秒 |
end | double | 开始时间,单位为秒 |
volume | double | 音量 |
score | string | 分值 |
subtext | string | 音标或重音符号信息 |
integrity | double | 录入语音的完整度 |
pronunciation | double | 录入语音的标准度 |
fluency | double | 录入语音的流利度 |
words | array | 每个词的评测结果 |
text | string | 单词或音素文本 |
type | int | 类型,共有6种类型,分别是: 0 多词:仅B,C,G模式出现,当朗读内容大于文本内容时,多余的单词type值为0;eg:文本:nice to meet you,音频:nice nice to meet you,第二个nice的type值为0; 1 漏词:所有模式都有,当朗读内容小于文本内容时,未读的单词type值为1;eg:文本:nice to meet you,音频:nice meet you,结果中to的type值为1; 2 正常词:所有模式都有,识别正常的词; 3 错误词:仅B,C,G模式出现,当朗读的文本某个单词识别成文本中其他单词时,该单词type值为3。 eg:文本:nice to meet you,音频:nice you meet you,结果中第一个you的type值为3; 4 静音:所有模式; 5 重复词:预留接口,未实现; 7 空格or标点:仅E模式,空格和标点的结构type值为7; 8 生词:所有模式 |
sentSample | array | 句式标准文本 |
sentScore | array | 句式总分 |
sentPronunciation | array | 句式标准度得分 |
sentFluency array | 句式流利度得分 | |
sentIntegrity | array | 句式完整度得分 |
keySample | array | 关键词sample(包括关键词和每个关键词的得分 |
keysScore | array | 关键词总分 |
keysPronunciation | array | 关键词标准度得分 |
keysIntegrity | array | 关键词完整度得分 |
keysFluency | array | 关键词流利度 |
standardScore | string | 客户定制,输出的分制,当前含有4分制和8分制 |
StressOfSent | string | 句子重读,每个单词都输出,0:该单词没有被重读;1:该单词被重读 |
StressOfWord | string | 单词重音,将用户发音和词典的重音位置做比较,0:该单词重音朗读错误;1:该单词重音朗读正确 |
tone | array | 输出全部信息,数据可以用于画用户的发音曲线,目前只有内部在使用 |
audiocheck | array | 音质检测结果。volume:音量过小的置信度;clipping:截幅的置信度;noise:噪音过大的置信度;cut:截断的置信度;too short:是否音频过短;emptyAudio:是否是空音频。 备注:置信度的值为0和10,10代表可能存在该项音质问题,0代表该项检测正常 |
# 四、错误码
# 五、常见问题
# 1. VAD功能
该功能是自动检测是否在录音,如果没有在录音,则自动停止录音。在V3.6.36版本之前是默认开启的,在V3.6.36版本后默认关闭。
# 2. 混淆说明
Android SDK V3.6.31版本及之后的版本,SDK内部做了混淆设置,业务层在做混淆的时候,不需要对oraleval-android-sdk.jar 进行混淆,如果需要混淆,请查看如下混淆配置文件
-keepattributes Exceptions,InnerClasses,...
-keep class cn.yunzhisheng.oralEdu{*;}
-keep class cn.yunzhisheng.oraleval.sdk.OpusEncoder{*;}
-keep class com.unisound.jni.UniVadnn{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.IOralEvalSDK{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.IOralEvalSDK$*{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.OralEvalSDKFactory{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.OralEvalSDKFactory$*{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.SDKError{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.SDKError$*{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.OralEvalModel{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.utils.LogBuffer{*;}
-keep class com.unisound.edu.oraleval.sdk.sep15.utils.OralEvalEnum{*;}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18