关闭

Android Studio调用百度语音识别API

标签: androidapisdkandroid studio语音识别
1258人阅读 评论(0) 收藏 举报
分类:

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


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




如下图 下载这个包。

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




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



如果你是用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

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1340次
    • 积分:39
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档