Android Studio调用百度语音识别API

首先第一步 注册你的应用。如图进入官网。

Android Studio调用百度语音识别API_第1张图片


(登入百度账号)依次点击左上角应用管理、创建新应用(如下界面)。按提示输入、然后选择需要的SDK  这里因为只做识别所以只下载语音识别的SDK


Android Studio调用百度语音识别API_第2张图片


如下图 下载这个包。

发布时间是2016-6-24的、


Android Studio调用百度语音识别API_第3张图片


下载好之后压缩包里面是这样的

Android Studio调用百度语音识别API_第4张图片


如果你是用eclipse直接跑demo吧、如果是Android Studio继续往下看吧。


切换到project视图

  

好了 先别说别的  先把 libs下的VoiceRecognition-2.1.20.jar和armeabi拷贝到上图app的libs下


然后把demo下的assets文件夹拷贝到app\main下

只要baidu_speech_grammar.bsg和WakeUp.bin这2个文件。另外2个txt不要。


demo下的res拷贝到app\main下提示冲突的覆盖就好。或者你直接把这个project的res删了用baidu的


然后再build.gradle中的android内添加如下代码   (引用libs下的armeabi内的so文件)

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}
再在dependencies内添加如下代码    (导入jar包)
compile files('libs/VoiceRecognition-2.1.20.jar')

添加完之后大概像这样
 
  
 
  
sdk版本不一样很正常。只要添加那2个就好了。
 
  
好了 工作做到这里  完成一部分了。。
 
  
然后打开官方下载的那个demo
 
  
 
  
把这些全拷贝到
 
  
这个位置  你的project里面应该还有一个MainActicity
 
  
 
  
 
  
那个16k_test.pcm是语义唤醒的文件 没有打不开语义唤醒界面。
 
  
这时候把他们的包名全改成和MainActivity一样
 
  
官方的是  package com.baidu.android.voicedemo;
你的包名去MainActivity里面的第一行可以看到
 
  
之后是重要的了。。配置 AndroidManifest.xml
 
  
 
  
 
  
这里贴出我的AndroidManifest
 
  
 
  
 
  
 
  
xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="你的包名">

 
  
//以下5行为权限
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">


//下面的APPID、APIKEY和SECRETKEY
我们先回到官方的应用管理界面。刚才创建的应用

点击管理包名输入你的AndroidManifestx下的包名


然后点查看key就能看到下图对话框

用你的key替换下面的3个KEY
        <meta-data
            android:name="com.baidu.speech.APP_ID"
            android:value="APPID" />
        <meta-data
            android:name="com.baidu.speech.API_KEY"
            android:value="APIKEY" />
        <meta-data
            android:name="com.baidu.speech.SECRET_KEY"
            android:value="SECRETKEY" />

        <service
            android:name="com.baidu.speech.VoiceRecognitionService"
            android:exported="false" />

下面这个activity必须要有。。否则点击开始无法弹出语音识别框
        <activity
            android:name="com.baidu.voicerecognition.android.ui.BaiduASRDigitalDialog"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:exported="false"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Dialog">
            <intent-filter>
                <action android:name="com.baidu.action.RECOGNIZE_SPEECH" />

                <category android:name="android.intent.category.DEFAULT" />
            intent-filter>
        activity>
上面这个activity必须要有。。否则点击开始无法弹出语音识别框


下面就是普通的注册了。没什么好说的。。一个启动界面其他几个附属界面
        <activity
            android:name=".ActivityMain"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            intent-filter>
        activity>
        <activity
            android:name=".ApiActivity"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:label="普通模式(API方式和UI方式)"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" />
            intent-filter>
        activity>
        <activity
            android:name=".ActivityWakeUp"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:label="语义唤醒"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" />
            intent-filter>
        activity>
        <activity
            android:name=".ActivityOffline"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:label="离线语法"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" />
            intent-filter>
        activity>
        <activity
            android:name=".Setting"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:label="设置"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="com.baidu.speech.asr.demo.setting" />

                <category android:name="android.intent.category.DEFAULT" />
            intent-filter>
        activity>

        <uses-library android:name="android.test.runner" />

    application>

manifest>


如果KEY对的话应该是能跑起来的。

以上。。

综合几个跑不起来的原因。

1、jar没导入
2、so文件没导入
3、assest没拷进去
4、AndroidManifest没有配置对


就酱0.0
纪念第一篇博客。。。
以后的路还很长

gg



晚安 世界

2016年8月29日 00:33:19

你可能感兴趣的:(百度语音识别API)