全部产品

移动端SDK使用问题

KB: 174577

 · 

更新时间:2020-12-25 19:47

本文为您介绍移动端SDK的常见问题。

为什么语音识别准确率很低,有时只识别出几个字?

请检查音频数据的采样率与管控台应用的模型是否一致,以及音频是否是单通道录音(有录音文件识别支持双通道录音的识别)。

初始化失败的可能原因?

请检查是否使用正确的AccessKey ID、AccessKey secret生成Access Token,并填入正确Appkey、Access Token、workspace等必选参数。

开始识别失败的可能原因?

SDK为单例模式,请确认上一个识别已经结束后再开始新的识别。

为何开始识别后没有识别结果?

确认如下信息:

  • 初始化成功。

  • 开始识别接口调用成功,且正确使用参数vad_mode。

  • 有音频状态回调返回且已正确开启录音。

无问题的情况下,若仍然没有识别结果,则一般会有EVENT_ASR_ERROR事件发生,根据事件携带的错误码进行定位。

如何进行log控制与音频保存?

SDK提供多级log控制,在初始化接口中配置。

同时提供音频数据的保存方便问题定位,需要设置save_wav和debug_path初始化参数,详情请参见接口说明

说明

实时语音识别的save_wav和debug_path参数含义与一句话识别相同。

调用上有什么限制?

SDK已经对语音服务的访问做了封装,对您而言只要调用开始接口,在回调中进行适当事件处理。一般需要处理错误事件和识别结果事件。注意不能在回调中直接调用SDK的接口,可能导致死锁发生。

为什么链接不到framework?

framework中代码采用Objective-C和C++混合编写而成,所以需要使用.mm后缀文件进行调用,同时请确保工程的头文件路径与库文件路径设置正确。

SDK错误事件如何定位原因?

在SDK上报错误事件时,首先根据错误码查看原因,一般能够根据错误码获得问题的初步原因。

如果错误码为DEFAULT_NLS_ERROR,需要查看事件返回的结果字段,其中包含服务端的错误码、错误信息和task_id,然后根据这些信息进行分析或提交工单获得支持。

是否支持后台处理?

SDK本身不限制前后台,iOS SDK的样例工程默认仅支持前台处理,如果您需要支持后台处理,可以做如下修改:

  1. 在工程Info.list中添加Required background modes配置,并在该配置下添加item,Value设置为App plays audio or streams audio/video using AirPlay

    配置1

  2. 在录音模块中进入后台时,不停止录音。亦即NLSVoiceRecorder.m中_appResignActive接口中不做停止录音调用。

    配置2