您的位置:首页 > 移动开发 > Android开发

AndroidTTS离线文字转语音技术

2017-06-28 09:43 811 查看




在我们开发过程中,用到语音技术大概就是文字转语音以及语音转文字了,知会一种另外一种也就会了。最近项目里用到了语音提示,并且要离线使用,体验会更好,因为网络差或者其他情况,在线文字转语音会有问题,下面说说离线文字转语音技术。

一、第三方SDK选择

我们首选还是运用第三方服务吧,自己开发真的有点费劲,目前有百度TTS、讯飞TTS、云知声TTS等,我选择的云知声,根据方案的不同,可以选择离线服务,如离线的唤醒、命令词控制和离线合成,并且是完全免费的。先看下SDK:

一个动态库libyzstts.so,一个jar包usc.jar,一个assets文件夹。其中assets文件夹里的文件就是离线使用到的内容,引入到我们工程下:



添加相应的权限:



二、封装

(1)、初始化SDK,我采用单例模式,将所有语音合成业务封装成一个类,并且开放一个接口提供外部使用,这样方便多次复用,而且可以高扩展。看下如源码:



这就完成了初始化,initialEnv()方法是复制离线模型到本地SD卡。



(2)、播放、停止、资源释放,SDK提供了很方便的方法,我都一 一封装了



(3)、提供统一的对外方法,在需要使用的地方,只需要调用此类的相关方法即可



三、使用

为了上层使用方便,进行了二次封装,统一在一个类调用,维护等。



于是,最终使用就是TTS.speck_input(上下文参数),这样就能将文字转换成语音并播放了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息