让你的App有声音

之前写过一篇文章,当时的需求是播放英文,最后使用的是Androi自带的TextToSpeech类来实现(http://blog.csdn.net/weixin_38251977/article/details/69944088),虽然播放英文效果还行,但是对中文的支持不是很好。最近新项目中又遇到一个语音的需求,这次是中英文都有,各种对比之后,选择了百度语音离在线融合SDK,播放效果非常好,关键是免费。趁着有空,记录下集成步骤,抽成一个demo,下次有需要的时候可以直接套用。

一 前提步骤

首先,需要在百度语音官网注册一个账号,然后创建应用,创建一个应用的大致步骤如下图:
这里写图片描述

注册完应用后,根据我们给的包名,会生成对应的appid,apikey和secretkey,这几个参数在我们代码中会使用到。

二 代码集成

  1. 拷贝资源文件
    在上边儿注册应用的时候,我们已经把SDK下载下来了,在里边儿我们找到需要的jar包,so文件以及语音模型拷贝到我们的项目中,各资源文件对应目录如下:
    这里写图片描述
    因为我的项目中只有armeabi架构,所以只拷贝了对应的资源,这个需要根据实际情况添加。
  2. 配置build文件
    将jar包等拷贝到项目中后,还需要配置工程目录下的build.gradle文件以添加依赖。
    首先,在android闭包中添加:

    android {
           sourceSets{
               main{
                   jniLibs.srcDirs=['libs']
               }
           }
       }

    这样Android Studio就能识别我们放在libs文件夹下的so文件了,不然的话运行的时候会报找不到so文件的错误。
    然后,在dependencies闭包中添加:
    compile files(‘libs/com.baidu.tts_2.3.0.jar’)
    到这里我们可以同步一下项目了,然后就可以在代码中使用jar包提供的方法了。

  3. 添加权限
    在清单文件中声明所需的权限:

    <uses-permission android:name="android.permission.INTERNET" />
           <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
           <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
           <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
           <uses-permission android:name="android.permission.WRITE_SETTINGS" />
           <uses-permission android:name="android.permission.READ_PHONE_STATE" />
           <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
           <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
           <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  4. demo
    关于具体的使用方法,这里抽成了一个demo,代码我已经测试过了,运行没有问题(demo里只支持armeabi框架,你可以将官方sdk的所有架构对应的so文件都拷贝进去),代码址:https://github.com/SolveBugs/BaiduTTSDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值