使用Baidu TTS的一些坑

来源:互联网 发布:存货管理数据分析 编辑:程序博客网 时间:2024/05/17 07:14

第一次写博客,其实之前就很想写的了,但是总觉得自己不会写。不过不写又不好,所以作为我的第一篇博客,写得并不会很好,但是作为开始吧^_^


公司需求:做离线的语音合成,最开始找的是讯飞的,但是讯飞的最便宜也要8000块,所以pass;

第二个找的是云知声,不过很遗憾的是现在的手机大部分都是64位系统了,而云知声并不支持64位系统(它支持的是32位系统,官网上有写);

最后找到了百度的离线语音合成(重点来了),一开始下载了百度的demo,但是根本不支持离线播放。后来在SDK里面找到了一个simple demo,这个demo确实可以用,但是只能用在线的啊,不是说好了,离在线融合吗?回去翻文档后发现,确实有说可以离线可以用啊,然后就继续找问题所在(不是在文档里面找,文档根本没有说离线要怎么弄,在demo里面和网络上找,感觉百度能再详细点说),最后发现了问题所在:

问题:demo中的“temp_license”(应该是证书之类的)过期了,文档里居然没有说,,,,,,

解决步骤:

1.打开百度语音开放平台。

2.打开应用管理,新建自己的应用(这个就不说了,都会吧,做完这步可以得到两个Key和一个APP ID)。

3.点击你应用右边的“管理包名”,如果你只是测试一下可以点击“下载临时授权文件”,将下载的文件代替demo中的,这时就可以使用离线合成了;

但是如果你要永久的使用离线合成(临时文件只能用30天,而且在开始的时候还会说多久过期),那么你就要填写右边的应用包名,并且注释掉代码中的这句话   

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

4.上面都做完了之后,还有一件事:在第一次使用的时候要联网,因为SDK要从网络上下载授权文件。


还有另一个坑:记住不同的应用要使用不同的key还有APPID,有些同学可能会忘记这点,提醒一下。

大概就是这么多。

PS:百度的语音合成是离在线的,意思是,在没有网络的情况下会使用离线,详情看百度的API文档。

2016/11/30


2 0
原创粉丝点击