上云无忧 > 文档中心 > 百度智能云离线语音合成 Android-SDK 集成指南
离线语音合成
百度智能云离线语音合成 Android-SDK 集成指南

文档简介:
DEMO 中已经集成了 SDK。您可以参考DEMO,集成SDK。 集成前,请先测通DEMO,了解调用原理。 如果您自己代码过于复杂,可以使用一个helloworld项目了解集成过程。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

  • DEMO 中已经集成了 SDK。您可以参考DEMO,集成SDK。
  • 集成前,请先测通DEMO,了解调用原理。
  • 如果您自己代码过于复杂,可以使用一个helloworld项目了解集成过程。

AndroidManifest.xml 文件

设置权限:

<!-- 必要的权限 --> <uses-permission android:name="android.permissio
n.INTERNET" /> <uses-permission android:name="android.permission.AC
CESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.
MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.perm
ission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="andr
oid.permission.ACCESS_WIFI_STATE" /> <!-- 非必要权限 --> <uses-perm
ission android:name="android.permission.CHANGE_WIFI_STATE" />

支持level 28以上编译

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

设置AppId, AppKey, SecretKey

mSpeechSynthesizer.setAppId(appId); mSpeechSynthesizer.setApiKey(appKey, secretKey);

android 6.0 以上版本权限申请

以下代码可以在demo中查找

/**
 * android 6.0 以上需要动态申请权限
  */ private void initPermission() { String permissions[] = { Manifest.permission.INTERNET, 
Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.MODIFY_AUDIO_SETTINGS, Manifest
.permission.ACCESS_WIFI_STATE, Manifest.permission.CHANGE_WIFI_STATE }; ArrayList<String> 
toApplyList = new ArrayList<String>(); for (String perm : permissions) { if (PackageMana
ger.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(this, perm)) { toApplyList
.add(perm); //进入到这里代表没有权限. } } String tmpList[] = new String[toApplyList.siz
e()]; if (!toApplyList.isEmpty()) { ActivityCompat.requestPermissions(this, toApplyL
ist.toArray(tmpList), 123); } } @Override public void onRequestPermissionsResult(in
t requestCode, String[] permissions, int[] grantResults) { // 此处为android
 6.0以上动态授权的回调,用户自行实现。 }

引入jar包

com.baidu.tts_2.6.*.jar 库 将app/libs/com.baidu.tts_2.6.xxxxxx.jar复制到您的项目的同名目录中。确认在build.gradle文件中引入。

复制NDK 架构目录

  1. 将 app/src/main/jniLibs 下armeabi等5个目录,复制到您的项目的同名目录中。
  2. 如与第三方库集成,至少要保留armeabi目录。如第三方库有7个架构目录,比语音合成SDK多出2个目录 mips和mips64,请将mips和mips64目录删除,剩下5个同名目录合并。
  3. 如第三方库仅有armeabi这一个目录,请将语音合成SDK的额外4个目录如armeabi-v7a删除,合并armeabi目录下的so。 即目录取交集,so文件不可随意更改所属目录。
  4. 打包成apk文件,按照zip格式解压出libs目录可以验证。
  5. 运行时 getApplicationInfo().nativeLibraryDir 目录下查看是否有完整so文件。 特别是系统app需要手动push so文件到这个目录下。

build.gradle 文件及包名确认

  1. 根目录下build.gradle确认下gradle的版本。
  2. app/build.gradle 确认下 applicationId 包名是否与官网申请应用时相一致(离线功能需要)。 demo的包名是"com.baidu.tts.sample"。
  3. 确认 compileSdkVersion buildToolsVersion 及 targetSdkVersion, API LEVEL 28的编译产物在android 9.0系统上运行需要在app/src/main/AndroidManifest.xml 里添加 <uses-library android:name="org.apache.http.legacy" android:required="false"/>

proguard 混淆文件

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

BEST PRACTICE

  • 请先测通DEMO,了解DEMO的功能,代码的运行原理后再集成。DEMO有bug,请立即反馈。
  • 对应任何第三方库,从一开始集成,边开发边测试,不要等所有功能都开发完再集成。否则一旦有问题,难以隔离排查。
  • 有问题先与DEMO做对比。DEMO有bug,请查看错误码文档,如无法解决请立即反馈;DEMO无bug,自身代码有问题,请设置同样的输入参数后,对比两边代码及日志,自行排查问题。

相似文档
  • 简介: DEMO在SDK的基础上,封装了调用逻辑,您可以直接使用SDK,或者使用DEMO封装好SDK接口的类。也可以对比参考DEMO中对SDK的调用封装。 使用SDK方式的话,比较底层,开发者需要自行实现一部分逻辑。
  • 离线及在线选择: int initTts(TtsMode ttsMode); 初始化tts引擎,可以指定纯在线,离在线混合引擎,纯离线引擎。 TtsMode.ONLINE 纯在线。断网即不可使用。 TtsMode.MIX 离在线混合。 断网或者网络请求超时使用离线。 TtsMode.OFFLINE 纯离线。 任意网络状态都可以使用。
  • 简介: 本文档是百度离线语音合成iOS SDK的用户指南,描述了离线语音合成SDK相关接口的使用说明。 概念解释: 语音合成是实现人机语音交互,建立一个有听和讲能力的交互系统所必需的关键技术。随着语音技术的发展,百度自主研发了语音合成系统(TTS),功能是接收用户发送的文本,生成语音发送给用户。
  • 集成指南: 强烈建议用户首先运行SDK包中的Demo工程,Demo工程中详细说明了语音合成的使用方法,并提供了完整的示例。一般情况下,您只需参照demo工程即可完成所有的集成和配置工作。
  • 重要接口说明: 语音合成器: 合成器,类名BDSSpeechSynthesizer,主要用来控制合成进程:设置参数,开始,结束,取消等。 获取合成器唯一实例: 方法: (BDSSpeechSynthesizer*)sharedInstance; 参数: 无。 返回: 语音合成引擎实例。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部