项目中有新的需求,要求对一些人名进行 语音播报, 那么这样就需要用到语音合成技术(Text To Speech),查了网上比较多的资料,在Android方面能用的貌似比价少,首先找到的是科大讯飞的 语音合成技术(给度娘的钱多嘛,首页第一个就是),讯飞的语音合成技术用倒是可以用,但是是在线才能用,要想用离线版的,就要花钱买,妈蛋,最便宜的基础包都要8000,立马就放弃讯飞。

接下来就转战 百度TTS, 百度的TTS并不是完全的离线版,指的是离在线版, 就是说有网的情况下,就在线去获取,没有网或者网络差的情况下,就会使用本地引擎进行 解析。 这样的话还是可以用的,虽然不是完全符合需求,但是将就着用吧。

废话到此为止,接下来说说:

怎么使用 百度TTS (Android端)

首先,进入官网:http://yuyin.baidu.com/tts/ ,先登录百度的账号,然后创建一个应用(如果没法创建的话,说明还没有成为开发者,那么就先去申请成为开发者吧),然后就点击开通服务,如图:

然后就选择 “语音合成”

接下来点击 页面顶部 的 “SDK下载”

先选择应用、然后选择“语音合成服务”如图:

可以先下载一个Demo看看怎么样。。
下载上面的 “离在线融合SDK”安卓版 。

用Android Stuido打开SDK里面的一个 demo项目(这是用Eclipse做的Demo),先不要运行,运行起来了也没法发出声音。。
首先:填写一下AppId,apiKey,secretkey

这上面的三个数据来自,如下图:

这样做完了,代码就没啥问题了,但是你还需要一个新的临时授权文件,这个demo自带的临时文件已过期了,如图:

下载下来,然后替换掉 assets 目录下的temp_license, 这样程序就可以运行正常了。。至于怎么获取永久的 授权文件,我目前没试过,如果我成功获取了,下次就来更新这篇文章,有成功获取永久的授权文件的 也请在下面评论里写一下,怎么获取。

运行程序,打开wifi,就会获取在线合成语音, 关闭wifi,就会用本地引擎解析,获取语音了。。但是不知为毛,这个demo有的时候自己会蹦掉。。

正式授权文件获取方式:
在上面的应用报名中,填写自己正确的包名,然后在那个demo里面把下面这行代码注释掉,这样,当程序运行的时候,就会自动去网上下载正式授权文件了,这样就不会时不时跑出一句“百度语音还有xx天到期”了

this.mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_TTS_LICENCE_FILE, mSampleDirPath + "/"+ LICENSE_FILE_NAME);

更多相关文章

  1. Android通讯录管理(获取联系人、通话记录、短信消息)(一)
  2. 百度云推送、极光推送等云推送服务搜罗点评
  3. android设备分辨率获取的一种新方法
  4. Android(安卓)& 百度地图(1)显示地图
  5. Android获取手机号码(问题)
  6. Android(安卓)Hook Java的的一个改进版本
  7. Android之调用百度地图API规划当前位置到指定位置的路线
  8. 关于android 百度地图离线包的调用问题
  9. Android(安卓)Studio apk打包,keystore.jks文件生成,根据keystore

随机推荐

  1. 解决:Android中 Error generating final a
  2. Android(安卓)Studio无线调试app之Androi
  3. 配置新的product(译)——android编译系统
  4. android中的线程池
  5. 收藏Android下bitmap内存限制OUT OF MEMO
  6. ADT在线安装(http://dl-ssl.google.com/an
  7. android ImageView src属性不支持.9图
  8. android之interpolator的用法详解
  9. Android 动画的重复播放
  10. Android中常用的五种布局