Android集成百度TTS,实现离在线的中英语音合成

百度的离在线TTS,没有调用量限制,免费但是有QPS限制(是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准),增大QPS需要收费,所以对商用并不是很好友。如果想用完全免费的纯离线可参考我另一篇博客:
https://blog.csdn.net/sunyFS/article/details/97936551
话不多说开始!
第一步:先从百度tts官网下载离在线融合SDK,网址:https://ai.baidu.com/sdk#tts,解压后最好先运行一下demo。
参考技术文档:https://ai.baidu.com/docs#/TTS-Android-SDK/top
1.将com.baidu.tts_2.3.2.20180713_6101c2a.jar添加到你项目的libs(注意要添加依赖同步)
implementation files(‘libs/com.baidu.tts_2.3.2.20180713_6101c2a.jar’)
2.将assert文件下dat文件复制到你项目的assets下(没有该文件夹就创建)
// assets目录下bd_etts_text.dat为文本模型文件,
// assets目录下bd_etts_common_speech_m15_mand_eng_high_am-mix_v3.0.0_20170505.dat为离线男声模型;
// assets目录下bd_etts_common_speech_f7_mand_eng_high_am-mix_v3.0.0_20170512.dat为离线女声模型;
3.将jniLibs文件夹下的文件复制到你项目的jniLibs下
最终的目录结构为:目录结构

第二步:进入百度的控制台,创建语音合成的应用,包名可在配置清单文件的package查看
百度应用
获得对应的APPID,API KEY,Secret Key,包名,后面需要用到。
百度key
前期准备工作已经做好了,开始写代码!
按照文档在工程app目录下的proguard-rules.pro(混淆规则)文件里最后添加一下代码:

-keep class com.baidu.tts.**{*;}
-keep class com.baidu.speechsynthesizer.**{*;}

在配置清单文件中设置权限

   <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <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.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
android6.0需要进行动态权限的申请,需要将离线资源文件下载到本地,需要sd读写的权限,代码如下:
    private void initPermission() {
        String[] permissions = {
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
        };
        ArrayList<String> mPermissionList = new ArrayList<String>();
        mPermissionList.clear();
        for (int i = 0; i < permissions.length; i++) {
            if (ContextCompat.checkSelfPermission(this, permissions[i]) !=
                    PackageManager.PERMISSION_GRANTED) {
                mPermissionList.add(permissions[i]);//添加还未授予的权限到mPermissionList中
            }
        }
        //申请权限
        if (mPermissionList.size() > 0) {
            ActivityCompat.requestPe
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值