赞
踩
项目中有新的需求,要求对一些人名进行 语音播报, 那么这样就需要用到语音合成技术(Text To Speech),查了网上比较多的资料,在Android方面能用的貌似比价少,首先找到的是科大讯飞的 语音合成技术(给度娘的钱多嘛,首页第一个就是),讯飞的语音合成技术用倒是可以用,但是是在线才能用,要想用离线版的,就要花钱买,妈蛋,最便宜的基础包都要8000,立马就放弃讯飞。
接下来就转战 百度TTS, 百度的TTS并不是完全的离线版,指的是离在线版, 就是说有网的情况下,就在线去获取,没有网或者网络差的情况下,就会使用本地引擎进行 解析。 这样的话还是可以用的,虽然不是完全符合需求,但是将就着用吧。
废话到此为止,接下来说说:
首先,进入官网: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);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。