1,注册科大讯飞开发者,新建应用,下载离线语音合成SDK到本地

2,将下载好的SDK中的jar,assets文件下的tts包,.so文件复制到项目中

3,将下面的工具类复制到项目中

/*** 语音合成器** @author kongqw*/
public class KqwSpeechSynthesizer {// Log标签private static final String TAG = "KqwSpeechSynthesizer";private Context mContext;// 语音合成对象private SpeechSynthesizer mTts;public KqwSpeechSynthesizer(Context context) {mContext = context;// 初始化合成对象mTts = SpeechSynthesizer.createSynthesizer(context, new InitListener() {@Overridepublic void onInit(int code) {Log.d(TAG, "InitListener init() code = " + code);if (code != ErrorCode.SUCCESS) {Toast.makeText(mContext, "初始化失败,错误码:" + code, Toast.LENGTH_SHORT).show();}}});}/*** 开始语音合成*/public void start(String text) {// 设置参数setParam();int code = mTts.startSpeaking(text, mTtsListener);if (code != ErrorCode.SUCCESS) {Toast.makeText(mContext, "语音合成失败,错误码: " + code, Toast.LENGTH_SHORT).show();}}/*** 结束语音合成*/public void stop() {if (null != mTts) {mTts.stopSpeaking();// 退出时释放连接mTts.destroy();}}/*** 合成回调监听。*/private SynthesizerListener mTtsListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {Log.i(TAG, "开始合成");}@Overridepublic void onSpeakPaused() {Log.i(TAG, "暂停合成");}@Overridepublic void onSpeakResumed() {Log.i(TAG, "继续合成");}@Overridepublic void onBufferProgress(int percent, int beginPos, int endPos, String info) {Log.i(TAG, "传冲进度 :" + percent);}@Overridepublic void onSpeakProgress(int percent, int beginPos, int endPos) {
//            Log.i(TAG, "合成进度 : " + percent);}@Overridepublic void onCompleted(SpeechError speechError) {if (speechError == null) {Log.i(TAG, "合成完成");} else {Log.i(TAG, "error : " + speechError.toString());}}@Overridepublic void onEvent(int i, int i1, int i2, Bundle bundle) {}};/*** 参数设置*/private void setParam() {// 清空参数mTts.setParameter(SpeechConstant.PARAMS, null);// 设置使用本地引擎mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);// 设置发音人资源路径mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());// 设置发音人mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");// 设置语速mTts.setParameter(SpeechConstant.SPEED, "50");// 设置音调mTts.setParameter(SpeechConstant.PITCH, "50");// 设置音量mTts.setParameter(SpeechConstant.VOLUME, "50");// 设置播放器音频流类型mTts.setParameter(SpeechConstant.STREAM_TYPE, "3");}// 获取发音人资源路径private String getResourcePath() {// 合成通用资源// 发音人资源return ResourceUtil.generateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "tts/common.jet") + ";" +ResourceUtil.generateResourcePath(mContext, ResourceUtil.RESOURCE_TYPE.assets, "tts/xiaoyan.jet");}
}

4,项目中使用

首先在Application中初始化:

String param = "appid=5c6224f9," + SpeechConstant.ENGINE_MODE + "=" + SpeechConstant.MODE_MSC;
SpeechUtility.createUtility(this, param); //将这里的appid的值替换成你在第一步中拿到的appid的值

然后在有需要的页面使用:

在onCreate中初始化工具类:mKqwSpeechSynthesizer = new KqwSpeechSynthesizer(this);

在具体要语音播报的地方调用:mKqwSpeechSynthesizer.start(speckContent);

在onDestory中释放:mKqwSpeechSynthesizer.stop();

OK!完成,就是这么简单!

科大讯飞纯离线语音合成的快速集成相关推荐

  1. 百度离在线语音合成的快速集成

    1,注册百度开发者账号后下载离在线语音合成SDK到本地,然后在控制台创建一个应用,以便获取AppID,APIKey,SecretKey 2,将下载到本地的SDK中的jar,assets,.so下的文件 ...

  2. UNITY实战进阶-科大讯飞TTS(离线语音合成) unity播放PCM格式的wav(不依赖第三方库)-7

    准备工作 1.注册科大讯飞开发者账户 2.创建一个应用,获取APPID 3.下载离线sdk(你是什么平台的就下什么平台的) 4.开打压缩包 5.我们需要的文件         bin\msc.dll ...

  3. C#调用科大讯飞离线语音合成TTS

    原作者勿怪,未经允许就转载了,感谢万分. http://www.cnblogs.com/xuguanghui/p/4505555.html ------------------------------ ...

  4. php调用科大讯飞离线语音合成linux sdk

    背景 要使用tts功能,文字转语言文件.目前已采用百度在线web api接口实现了联网版,现需要现实离线版.故采用科大讯飞的离线语音合成sdk,但是对于linux的sdk官方只有c语言的api接口,现 ...

  5. 集成科大讯飞TTS【离线语音合成服务】

    背景:最近机器人项目需要集成科大讯飞TTS服务,遇到各种坑. 集成过程中主要遇到:引擎相关错误[21001|21002|25107错误] **解决方法:**1.多去论坛上面搜相关帖子:2.仔细看看提供 ...

  6. 科大讯飞离线语音合成简单实例

    讯飞语音开发集成地址http://www.xfyun.cn/ 如何使用科大讯飞开放平台的语音合成呢? 1.首先要注册开发者账户, 创建我的新应用,创建完后就有一个专属APPID(非常重要),添加我的应 ...

  7. JAVA JNI调用科大讯飞离线语音合成(Linux篇)

    JNI调用科大讯飞离线语音合成(Linux篇) 背景:之前已经介绍过JNI调用科大讯飞离线语音合成(Windows篇),今天我们接着聊一聊在Linux系统中如何使用科大讯飞离线语音合成,我们这里以(u ...

  8. 使用python语言调用科大讯飞离线语音合成

    科大讯飞属于第三方服务,但是支持的语言里面没有python,所以我们在这种情况下还想使用它的功能的话,可以通过调用C语言的包,来间接的使用. 代码贴上来: def text_to_voice(text ...

  9. [Delphi][FMX]集成迅飞离线语音合成-安卓版本

    QQ:13498714 有个朋友在迅飞上申请了个app,想在Firemonkey上集成迅飞离线语音合成,说不会处理. 好安排! 迅飞会为创建应用的账号生成一个测试Demo, Demo是Android ...

最新文章

  1. AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字
  2. 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )
  3. SQLServer-sysobjects-type
  4. 让你的插件兼容AMD, CMD ,CommonJS和 原生 JS
  5. LeakCanary——消除Android中的内存泄露
  6. comp 313 schemas的学习
  7. 修复IE9-- safari 的sort方法
  8. arcgis xml 下载 切片_GIS开发:Arcgis的切片格式
  9. javax.cache_新的Java缓存标准(javax.cache)
  10. Python异常捕获及自定义异常类
  11. LRU的两种实现方案
  12. C++ 继承的构造与析构
  13. 贴片铝电解电容封装的说明
  14. 数据结构和算法基础(6)——常用十种算法
  15. Spring中使用aop操作需要用到的aspectjweaver-1.8.7.jar包
  16. 2019426 SPSS入门学习
  17. 29、NeRV: Neural Reflectance and Visibility Fields for Relighting and View Synthesis
  18. CHM 已取消到该网页的导航
  19. SWUST OJ 99:Euclid‘s Game
  20. tkmybatis 默认值 问题

热门文章

  1. Google工作整理术
  2. 基于SpringBoot的特色农产品销售设计与实现
  3. HTTP请求方式和报文解析
  4. 算法 — 纸牌三角形
  5. 基于Echarts实现可视化数据大屏智能分析系统
  6. 2020.03.08【NOIP普及组】模拟赛C组14
  7. 惯性导航原理(3):姿态微分方程及初始对准
  8. 室内定位技术:UWB、蓝牙、RFID和WIFI——谁将是主角
  9. Linux性能优化实战: 套路篇-分析性能问题的一般步骤(55)
  10. 书籍-邓普顿教你逆向