Android 科大讯飞语音评测SDK 踩坑实录

英语付费类APP大多都会对用户的发音进行评测的场景,一些大公司借住其高效的语音识别技术可以很轻松的实现。我司最开始接入的是腾讯云智聆SDK,但是用户反映普遍较为激烈,我们不堪其扰,于是在最新的版本中将其切换为科大讯飞SDK。

第一步,当然是登陆科大讯飞官网,开始注册账号,创建APP,本地记录下APPID,并下载相应的SDK。需要注意的是,必须下载appid对应的sdk,下载之后,需要将项目中的jar放在libs下,so库放在jniLibs下,避免出错。

第二部当然就是在本地运行科大讯飞所写的示例demo。这个时候,你会发现运行不起来。

不需要慌张,科大讯飞官网上有相应的帖子 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=42878&extra=可以解决,根据帖子提示,在apply添加byildscript{}

第三步,我们可以去通过讯飞demo来初步体验语音评测了。

第四步,我们项目中已经成功接入了SDK,现在需要对录音评测的代码进行相关封装,方便多个地方的代码调用。这一步也是最为重要的一点。

4.1 SDK初始化

 SpeechUtility.createUtility(this, SpeechConstant.APPID + "=APPID");
 SpeechEvaluator evaluator = SpeechEvaluator.createEvaluator(this, new InitListener() {
            @Override
            public void onInit(int i) {
            }
        });
KDflyUtils.init(evaluator);

注意,这一部分代码是放在应用启动时,我们创建了全局唯一的一个录音对象,并通过KDflyUtils(语音评测工具类) 初始化,将录音对象传入工具类,方便后续调用

4.2 现在,我们来看一下封装的工具类。工具类里面我们需要具备几个作用:开始评测,结束评测,评测状态(是否正在评测),以及评测结果(成功/失败)的回调。

 public static void init(SpeechEvaluator eva) {
        evaluator = eva;
    }

    /**
     * @return
     */
    public static boolean isRecording() {
        return evaluator == null ? false : evaluator.isEvaluating();
    }

    private static void setParams() {
        if (evaluator == null) {
            LogUtils.i("初始化失败");
            return;
        }
        evaluator.setParameter(SpeechConstant.LANGUAGE, "en_us");
        evaluator.setParameter(SpeechConstant.ISE_CATEGORY, "read_sentence");
        evaluator.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");
        evaluator.setParameter(SpeechConstant.VAD_BOS, "5000");
        evaluator.setParameter(SpeechConstant.VAD_EOS, "18000");
        evaluator.setParameter(SpeechConstant.KEY_SPEECH_TIMEOUT, "-1");
//        evaluator.setParameter(SpeechConstant.RESULT_LEVEL, "complete");
        evaluator.setParameter(SpeechConstant.RESULT_LEVEL, "plain");
        evaluator.setParameter(SpeechConstant.A
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值