让你的App有声音

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

Paste_Image.png

注册完应用后,根据我们给的包名,会生成对应的appid,apikey和secretkey,这几个参数在我们代码中会使用到。 二 代码集成 1.拷贝资源文件 在上边儿注册应用的时候,我们已经把SDK下载下来了,在里边儿我们找到需要的jar包,so文件以及语音模型拷贝到我们的项目中,各资源文件对应目录如下:

Paste_Image.png

因为我的项目中只有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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

在Windows下搭建Python3.6的运行环境

1875
来自专栏漏斗社区

ZentaoPMS任意文件上传漏洞复现

当斗哥一筹莫展,无从下笔时, 一位从事项目管理职业的小姐姐一语道破天机。 她使用的禅道管理软件引起了我的注意, 为了拉进与小姐姐的直线距离, 斗哥对禅道进行了全...

3696
来自专栏北京马哥教育

如何在 Openstack 上运行 ubuntu 镜像

2314
来自专栏Flutter入门到实战

Flutter学习总结系列----第一章、Flutter基础全面详解

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/2c9867e737a1

1062
来自专栏Python中文社区

一键获取免费真实的匿名代理

專 欄 ❈夏洛之枫,从销售转为程序员,Python爬虫爱好者。 github: https://github.com/ShichaoMa/proxy_fact...

2006
来自专栏生信技能树

史上最全​Git使用手册

Git使用手册 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 分支管理 便签管理 使用g...

2985
来自专栏Python专栏

最新不限速版百度云(免费安全高速下载)

1144
来自专栏专注 Java 基础分享

Git版本控制系统之基本使用

     最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过。这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳。本篇...

1857
来自专栏前端真相

邂逅seajs 和spm

1544
来自专栏向治洪

将studio项目 转换为eclipse项目

总会有些奇怪的事情,比如,有的人就有将studio项目 转换为eclipse项目的需求 首先,不要因为编译原因而放弃。studio项目是完全可以转换成ecli...

1787

扫码关注云+社区