离线语音解析

public class SpeechUtilOffline implements TTSPlayerListener {
public static final String appKey = "_appKey_";
private ITTSControl mTTSPlayer;
private Context context;
private SoundUtil soundUtil;
public SpeechUtilOffline(Context context) {
this.context = context;
init();
} /**
* 初始化引擎
* @author JPH
* @date 2015-4-14 下午7:32:58
*/
private void init() {
soundUtil=new SoundUtil(context);
mTTSPlayer = TTSFactory.createTTSControl(context, appKey);// 初始化语音合成对象
mTTSPlayer.setTTSListener(this);// 设置回调监听
mTTSPlayer.setStreamType(AudioManager.STREAM_MUSIC);//设置音频流
mTTSPlayer.setVoiceSpeed(0.5f);//设置播报语速,播报语速,数值范围 0.1~2.5 默认为 1.0
mTTSPlayer.setVoicePitch(0.9f);//设置播报音高,调节音高,数值范围 0.9~1.1 默认为 1.0
mTTSPlayer.init();// 初始化合成引擎
}
/**
* 停止播放
*/
public void stop(){
mTTSPlayer.stop();
} /**
* 播放
*/
public void play(String content) {
mTTSPlayer.play(content);
} /**
* 释放资源
*/
public void release() {
mTTSPlayer.release();
} @Override
public void onPlayEnd() {
// 播放完成回调
soundUtil.playSound(1);
Log.i("msg", "onPlayEnd");
} @Override
public void onPlayBegin() {
// 开始播放回调
Log.i("msg", "onPlayBegin");
} @Override
public void onInitFinish() {
// 初始化成功回调
Log.i("msg", "onInitFinish");
} @Override
public void onError(cn.yunzhisheng.tts.offline.common.USCError arg0) {
// 语音合成错误回调
Log.i("msg", "onError");
} @Override
public void onCancel() {
// 取消播放回调
Log.i("msg", "onCancel");
} @Override
public void onBuffer() {
// 开始缓冲回调
Log.i("msg", "onBuffer"); }
}

云之声离线Jar包和so文件下载地址

下载地址

Android SoundPool语音播放类

public class SoundUtil {
private static HashMap<Integer, Integer> musicId;
private static SoundPool mSoundPool;
public SoundUtil(Context context){
mSoundPool=new SoundPool(12, 0,5);
musicId= new HashMap<>();
musicId.put(1, mSoundPool.load(context, R.raw.tsc_success, 1));
musicId.put(2, mSoundPool.load(context, R.raw.check_failure, 1));
}
//播放
public void playSound(int redId) {
//音频资源 左声道音量 右声道音量 优先级 循环播放次数 回放速度:该值在0.5-2.0之间 1为正常速度
mSoundPool.play(musicId.get(redId),1,1, 0, 0, 1);
}
//暂停
public void pause(int redId){
mSoundPool.pause(redId);
}
//重新开始
public void resume(int redId){
mSoundPool.resume(redId);
}
//停止
public void stop(int redId){
mSoundPool.stop(redId);
}
//移除一个音频
public void unload(int redId){
mSoundPool.unload(redId);
}
//释放所有音频资源
public void release(){
mSoundPool.release();
}
}

Android 云之声离线语音合成的更多相关文章

  1. Android 开发 框架系列 百度语音合成

    官方文档:http://ai.baidu.com/docs#/TTS-Android-SDK/6d5d6899 官方百度语音合成控制台:https://cloud.baidu.com/product/ ...

  2. Android之 -WebView实现离线缓存阅读

    前言 本篇博客要实现的是一个离线下载和离线阅读的功能,这是很多阅读类app都常见的一个功能,典型的应用就是网易新闻.什么是离线下载?其实这个概念是比较模糊,是离线之后下载呢,还是下载之后离线,但稍微有 ...

  3. 利用HTML5开发Android(6)---构建HTML5离线应用

    需要提供一个cache manifest文件,理出所有需要在离线状态下使用的资源例如 Manifest代码 CACHE MANIFEST #这是注释 images/sound-icon.png ima ...

  4. Android 讯飞语音之语音合成(在线有声朗读)

    原文:http://www.cnblogs.com/scetopcsa/p/3845427.html 在线语音合成的使用方法: 首先下载相关的sdk,这个网址里有多种版本,我选择的Android. h ...

  5. android学习——ADT的离线安装

    前一篇讲解了ADT的在线安装,不过有的时候在线在线安装的速度很慢.所以今天学习一下ADT的离线安装: 首先 下载与SDK相对应的ADT(如果SDK是最新版的就下最新版ADT否则就把SDK更新到最新版以 ...

  6. Android API 文档 离线秒开方法

    http://blog.csdn.net/haifengzhilian/article/details/39898627 也是最近才看Android开发,但是,它的API文档无论是在线还是离线的,实在 ...

  7. Android Studio下载及离线升级方法

    由于众所周知的原因,android官网无法访问,所以我们要用到翻.墙.工具,我用的是自.由.门,大家自行搜索下载. android studio下载地址: https://dl.google.com/ ...

  8. Android SDK 2.2 离线安装

    android的普通安装方法非常easy,不必多说. 因为普通安装方法速度非常慢,对一般的用户要数小时的时间等待. 为更高速安装,能够採取离线安装方法.即,先分别下载所需包,再安装. 一,首先下载SD ...

  9. 【转】Android学习系列–App离线下载功能实现

    原文:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/20/2108965.html 宜未雨而绸缪,毋临渴而掘井.----朱用纯<治 ...

随机推荐

  1. 日志查看技巧之筛选&去重[排查篇]

    引语:相信大家都会偶尔遇到要排查问题发生的原因的情况,那这种时候,我们最有力后盾就是日志文件了,所以谨记日志记录真的很重要.但是日志文件往往是很大的文件,而且里面有太多的东西可能不是我们需要的,如无数 ...

  2. Python模拟微博登陆,亲测有效

    今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 代码是参考了:https://www.douban.com/note/201767245/ 我对代码 ...

  3. Linux学习笔记之六————Linux常用命令之系统管理

    <1>查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date 设置时间格式(需要管理员权限): date [MMDDhhmm[[C ...

  4. MySQL百万级、千万级数据多表关联SQL语句调优

    本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级.千万级数据表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).希望读者能够理解S ...

  5. Apache Commons Beanutils 二 (动态Bean - DynaBeans)

    相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...

  6. static和fianl修饰变量的区别

    参考:http://hllvm.group.iteye.com/group/topic/37682 http://blog.csdn.net/javakuroro/article/details/68 ...

  7. MySQL 进阶之索引

    一,索引前传 在了解数据库索引之前,首先有必要了解一下数据库索引的数据结构基础,那么什么样的数据结构可以作为索引呢? B-tree是最常用的用于索引的数据结构.因为它们是时间复杂度低, 查找.删除.插 ...

  8. #3 Python解释器和编辑器

    前言 上文介绍了Python在不同平台的安装方法,本文将带领你了解Python解释器和编辑器的概念,并且选择出最符合自己的解释器和编辑器! 一.Python解释器 其实上文介绍的安装Python,实质 ...

  9. Django之stark组件

    现在让我说啥是stark组件,我也说不清楚.反正从今天讲的知识来看,今天完成的就是自己写一个模块,这个模块包含了admin后台管理工具的一些比较好用的功能,我们把它提炼出来,也就是相当于自己写一个ad ...

  10. 共享内存 - shmget填坑记

    1. 问题引出 最近有个项目,需要两个进程之间传递大量的数据,因此考虑采用了共享 内存机制+信号同步,两个进程,笔者和另外一程序员开发,协议都定好了,开发很顺利. 等到我们联合调试的时候,问题出现了, ...