【置顶】语音识别Android版本问题及答案汇总贴
0半君0 发布于2016-01 浏览:130080 回复:63
0
收藏

如何使用离线识别,怎么申请?

离线识别无需申请,所有开发者都可以免费使用。要使用离在线功能(正式授权),请确保

  1. 开放平台中已经绑定了包名
  2. 程序的AndroidManifest.xml(如果是ios请参考文档查看设置方式)配置APP_ID
  3. 不要设置临时授权路径

注意事项:

  1. 离在线是纯在线的一个补充,至少联网一次才能真正使用离线
  2. 离线的参数配置比较复杂,务必参考文档和demo一步一步对比

临时离线授权文件在哪里下载?

临时授权的下载地址:http://yuyin.baidu.com/applicense/downloadLicense

对于最新版本的Android语音识别SDK,可以直接使用正式授权。参考“如何使用离线识别,怎么申请?”

Android Studio如何集成语音SDK?

截止目前(2016.8)语音SDK上不支持通过gradle命令来直接引入,后续将会支持。对于Android Studio请通过拷贝jar和so 加配置命令的方式来引入语音SDK

Android版本无法获取录音机权限

  • 如果targetSdkVersion设置为>=23的值,需要程序中动态获取录音权限如。
requestPermissions(new String[]{                Manifest.permission.RECORD_AUDIO        }, YOUR_REQUEST_CODE); // requestPermissions是Activity的方法
  • 如果targetSdkVersion<23,仍有无法录音问题,则可能是AndroidManifest.xml中未声明"android.permission.RECORD_AUDIO"导致或因为安全软件非正常方式限制录音导致。

Android SDK 2.1版本如何使用离线

2.1版本支持离线命令词识别,但不支持离线撰写(如果确实有撰写需求,暂请使用2.0版本)

2.1版本集成离线(命令词)识别的步骤:

  • 使用语法编辑器编辑语法,http://yuyin.baidu.com/asr#m5,编辑并保存得到baiduspeechgrammar.bsg语法文件(文件名可以随意更改)
  • 将baiduspeechgrammar.bsg文件放置到assets目录
  • 识别参数中增加代码 intent.putExtra("grammar", "assets:///baiduspeechgrammar.bsg")
  • 集成完毕。

需要注意的是离线识别需要联网获取授权,参见“如何使用离线识别,怎么申请?”


收藏
点赞
0
个赞
共63条回复 最后由回复于2023-05
#45banglsb007回复于2017-02

System.err(20549): java.lang.UnsupportedOperationException: easr not found!

System.err(20549): at com.baidu.speech.EventManagerVadModule$ModelVad.(EventManagerVadModule.java:31)

请问这是什么问题?


0
#44破茧化蝶014回复于2017-02

02-03 10:58:28.455 7999-9513/com.sunlike E/AndroidRuntime: FATAL EXCEPTION: Thread-8629

                                                           Process: com.sunlike, PID: 7999

                                                           java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.speechsynthesizer.utility.SpeechDecoder.decode(byte[], int, short[], int[], int, int) (tried Java_com_baidu_speechsynthesizer_utility_SpeechDecoder_decode and Java_com_baidu_speechsynthesizer_utility_SpeechDecoder_decode___3BI_3S_3III)

                                                               at com.baidu.speechsynthesizer.utility.SpeechDecoder.decode(Native Method)

                                                               at com.baidu.speechsynthesizer.b.a$a.run(SpeechDataOrganizer.java:294)

这个是什么问题

0
#43無碼亂射回复于2016-10

小米Note 4.4.4系统 语音识别demo 提示无法打开麦克风(已打开权限)

三星s7 6.0系统 语音识别 开始识别直接结束 提示无法识别


一共测试了 三部手机 采样率 虽然小 但是 可见 兼容性 有待提高

0
#42158*****886回复于2016-10

使用离在线包的时候,报错:-EVENT_ERROR, #5, Other client side errors. request token failed, error: unknown, desc: unknown client id, used AK=this/this(cannot switch to offline: params not supported.)

我只想使用在线功能,不知道哪里出了问题,求教。先谢了。

0
#41风驰天下hg回复于2016-09

下载了离在线融合SDK Android,写程序的时候一直找不到DialogRecognitionListener这个类

0
#40anyptt回复于2016-09

  

0
#39cnsaturn回复于2016-08

百度ASR 只要设置了离线路径就OOM,不设置在线是完全可以行

0
#38chong1352回复于2016-08

支持语义识别的是用

VoiceRecognitionClient

还是用

SpeechRecognizer

为什么不统一接口

0
#37priverbs回复于2016-07

可以先录音,后识别吗?

0
#36c5812回复于2016-06

是不是录音权限被安全软件禁用了

0
#35186*****717回复于2016-06

MediaPlayer-JNI: QCMediaPlayer mediaplayer NOT present

MediaPlayer: Should have subtitle controller already set


在小米4 手机上调用的时候 一直处在 麦克风启动中 不知道怎么回事

0
#34枫柳蝶韵回复于2016-05

离线识别错误


Caused by: java.lang.Exception: #2, Other network related errors.. network unavailable.(cannot switch to offline: params not supported.)

0
#32AutumnwindHK回复于2016-03

123

0
#31xiao12345658回复于2016-02

同一个app为什么有些手机报java.util.concurrent.ExecutionException: java.lang.Exception: #5, Other client side errors., reason: #7052, startRecognizing error.这个错误 ,有些使用正常。离在线包已下载且路径正确。

0
#30水寒319回复于2016-02

问题:

android语音识别为什么会出现引擎忙这个问题?


答案:

出现引擎忙的原因一般是:上一次识别位结束就开始了要求下一次识别,

解决方法:识别结束前不要开始下次识别。


0
#29水寒319回复于2016-01

问题:

Android语音识别,怎么上传联系人?


答案:

可以通过uploadContacts()方法,上传联系人,Demo如下:

private void uploadContacts(){
DataUploader dataUploader = new DataUploader(ApiDemoActivity.this);
dataUploader.setApiKey(Constants.API_KEY, Constants.SECRET_KEY);

String jsonString = "[{\"name\":\"兆维\", \"frequency\":1}, {\"name\":\"林新汝\", \"frequency\":2}]";
try{
dataUploader.uploadContactsData(jsonString.getBytes("utf-8"));
}catch (Exception e){
e.printStackTrace();
}
}


上传联系人之后可以可以通过enablecontacts(),启动通讯录识别。

  1. public void enableContacts()


0
#28水寒319回复于2016-01

问题:

apk根据需求需要做成系统内置的,放到system/app下是否能使用离线功能?


答案:

如果将app放到system/app目录下,程序将没有system/app目录的读取权限,不能访问到so库,从而会导致不能进行使用离线功能。


0
#27liu10028回复于2016-01

问题:

百度语音能够持续识别吗?


答案:

百度语音一次最长识别60S的语音.


0
#26厉天回复于2016-01

问题:

我按照开发指南申请了离线授权,但是还是提示我授权失败,什么原因?


回答:

使用的是临时授权

 1.请检查是否设置intent.putExtra("license-file-path", "/sdcard/temp_license_2015-05- 19"),授权文件是否访问正常。

 2.临时授权文件的有效期是30天,如果超过期限授权将失败,建议申请正式授权。

使用的是正式授权

 1.如果之前使用的是临时授权,请删除临时授权的相关代码,否则将优先使用临时授权。

 2.请检查appkey,包名信息等是否都填写正确。

 3.首次使用的时候,会自动下载授权文件,请保证在首次使用时网络连接正常,否则无法下载 离线授权文件。



0
#25liu10028回复于2016-01

问题:

53006错误码,一般的出错原因和解决方案?

 

答案:

53006的错误是语音过长,建议一次识别的语音长度控制在60s以内。


0
TOP
切换版块