【置顶】语音识别Android版本问题及答案汇总贴
0半君0 发布于2016-01 浏览:125168 回复:62
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
个赞
共62条回复 最后由用户已被禁言回复于2022-04
#65yeguanping11回复于2017-10

水寒319:

问题:

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()


回复水寒319:这个接口现在已经过时了,不是吗? 新的SDK用什么接口?

0
#64乐观的aiueo回复于2017-09

请问可以将在线识别的字符串发送到云端吗

0
#63tangdi4135回复于2017-09

现在下载语音合成的SDK下载到一半直接失败,从昨天开始就是

0
#62回复于2017-08

文件写入权限,自己百度一下安卓6.0动态权限

回复xi...3@163.com:

0
#61kazenofeng回复于2017-08

無碼亂射:

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

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


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

有谁遇到这个问题么?

开始识别直接结束 提示无法识别

我也遇到这个问题了。我的是红米4X,请问你的解决了么?


0
#60kazenofeng回复于2017-08

無碼亂射:

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

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


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

回复無碼亂射:开始识别直接结束 提示无法识别


我也遇到这个问题了。我的是红米4X,请问你的解决了么?

0
#59星煌的鼓动回复于2017-08

水寒319:

问题:

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()


回复水寒319:你好,请问这个 enableContacts()是哪个类里面的函数,我用的是离在线sdk。

0
#58linlongzhou858回复于2017-07

能离线识别音频文件吗?

0
#57xi...3@163.com回复于2017-07

android6.0和6.0以上的会出现这个问题,6.0以下的正常。对permission.WRITE_SETTINGS也没有用,请问一下这个问题怎么解决?

0
#56糖果smail回复于2017-07

糖果smail:

回复wangye8312166:请问这个是什么问题,你解决了吗?我也出现同样的问题了

回复糖果smail:我知道问题了,是so文件没有识别出来,

1、jniLibs文件夹下除了arm64-v8a和armeabi文件,其他的删除,尤其是经常会多armeabi-v7i这个一定要删除

2、也有可能jniLibs只有以上两个文件夹,但还是出现相同问题:在app的gradle里面

ndk {
//选择要添加的对应cpu类型的.so库。
           abiFilters 'armeabi','armeabi-v8a'
//            abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a'
           // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
       }

如果你的gradle里面有以上内容,切记,把没有语音的so文件的文件夹删除

0
#55糖果smail回复于2017-07

wangye8312166:

复制官方Demo代码时出现的错误,什么原因呢?

回复wangye8312166:请问这个是什么问题,你解决了吗?我也出现同样的问题了

0
#54回复于2017-07

这个如何解决?是新版本的问题?   语音识别   还是缺少什么配置文件?

0
#53wangye8312166回复于2017-06

复制官方Demo代码时出现的错误,什么原因呢?

0
#52喂我在未来等你回复于2017-05

banglsb007:

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

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

请问这是什么问题?


回复banglsb007:您好,我也遇到这个问题了,可以请教一下怎么解决的嘛

0
#51爽朗的gong111回复于2017-05

我需要语音识别有撰写功能,怎么解决?哪里有2.0版下载?

0
#50咩日呛美回复于2017-04

解决了么?

这个问题我也遇到了

破茧化蝶014:

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)

这个是什么问题

回复破茧化蝶014:

0
#48北魏时光回复于2017-04

风驰天下hg:

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

回复风驰天下hg:这个问题解决了吗?我刚开始用百度sdk,也遇到了这个问题

0
#47求求不占用户名回复于2017-04

 java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.speech.core.BDSSDKLoader.SetLogLevel:(I)V

0
#46灵犀一动_回复于2017-03

我加了可是还是显示这个错E/SpeechRecognizer: bind to recognition service failed


0
#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
TOP
切换版块