离线语音解析

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. [CocoaPods]使用CocoaPods进行测试

    测试规格 从CocoaPods 1.3.0开始,pod现在可以提供测试规范(或简称测试规范).测试规范可用于描述给定pod的测试源. 这是一个示例CoconutLib.podspec,一个定义测试规范 ...

  2. Swift5 语言指南(三) 快速之旅

    传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // Prints ...

  3. maven个人总结

    一.解压maven(apache-maven-3.6.0-bin.zip) ---apache-maven-3.6.0 ---bin(Binary书写) >存放二进制可执行的文件(命令),例如m ...

  4. [EXP]XAMPP 5.6.8 - SQL Injection / Persistent Cross-Site Scripting

    <!-- # Exploit Title: SQL injection (and previous) # Date: -- # Exploit Author: Rafael Pedrero # ...

  5. Python内置类型(4)--数值

    Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers).此外,布尔是整数的子类型. 数值 ...

  6. Java NIO中的通道Channel(二)分散/聚集 Scatter/Gather

    什么是Scatter/Gather scatter/gather指的在多个缓冲区上实现一个简单的I/O操作,比如从通道中读取数据到多个缓冲区,或从多个缓冲区中写入数据到通道: scatter(分散): ...

  7. kdump内核转储

    目录 CentOS 7.5 配置Kdump 安装Kdump 安装Kdump图形化 配置保留内存 配置kdump类型 核心转储到本地 核心转储到设备 使用NFS指定核心转储 使用SSH指定核心转储 配置 ...

  8. Webservice和EJB的区别

    1. WebService可以说是跨平台的,因为它采用的是XML技术,说穿了就是把你的请求按照该WebServece的标准将参数传过去,然后服务器返回结果,当然了最重要的是参数的传递和结果的返回都是采 ...

  9. tar命令的使用方法

    tar [-cxtzjvfpPN] 文件与目录参数说明:-c :建立一个打包文件:-x :解开一个打包文件:-t :查看 tar包里面的文件:-z :打包后用gzip压缩,生成.tar.gz文件:-j ...

  10. JavaWeb学习 (四)————Http协议

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...