Android 云之声离线语音合成
离线语音解析
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 云之声离线语音合成的更多相关文章
- Android 开发 框架系列 百度语音合成
官方文档:http://ai.baidu.com/docs#/TTS-Android-SDK/6d5d6899 官方百度语音合成控制台:https://cloud.baidu.com/product/ ...
- Android之 -WebView实现离线缓存阅读
前言 本篇博客要实现的是一个离线下载和离线阅读的功能,这是很多阅读类app都常见的一个功能,典型的应用就是网易新闻.什么是离线下载?其实这个概念是比较模糊,是离线之后下载呢,还是下载之后离线,但稍微有 ...
- 利用HTML5开发Android(6)---构建HTML5离线应用
需要提供一个cache manifest文件,理出所有需要在离线状态下使用的资源例如 Manifest代码 CACHE MANIFEST #这是注释 images/sound-icon.png ima ...
- Android 讯飞语音之语音合成(在线有声朗读)
原文:http://www.cnblogs.com/scetopcsa/p/3845427.html 在线语音合成的使用方法: 首先下载相关的sdk,这个网址里有多种版本,我选择的Android. h ...
- android学习——ADT的离线安装
前一篇讲解了ADT的在线安装,不过有的时候在线在线安装的速度很慢.所以今天学习一下ADT的离线安装: 首先 下载与SDK相对应的ADT(如果SDK是最新版的就下最新版ADT否则就把SDK更新到最新版以 ...
- Android API 文档 离线秒开方法
http://blog.csdn.net/haifengzhilian/article/details/39898627 也是最近才看Android开发,但是,它的API文档无论是在线还是离线的,实在 ...
- Android Studio下载及离线升级方法
由于众所周知的原因,android官网无法访问,所以我们要用到翻.墙.工具,我用的是自.由.门,大家自行搜索下载. android studio下载地址: https://dl.google.com/ ...
- Android SDK 2.2 离线安装
android的普通安装方法非常easy,不必多说. 因为普通安装方法速度非常慢,对一般的用户要数小时的时间等待. 为更高速安装,能够採取离线安装方法.即,先分别下载所需包,再安装. 一,首先下载SD ...
- 【转】Android学习系列–App离线下载功能实现
原文:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/20/2108965.html 宜未雨而绸缪,毋临渴而掘井.----朱用纯<治 ...
随机推荐
- 一个linux内核编译时遇到的perl语法导致的编译问题解决
在编译linux内核时,遇到了一个比较诡异的问题.具体log如下: Can't locate strict.pm in @INC (you may need to install the strict ...
- vue 所有的指令
1. v-text v-text主要用来更新textContent,可以等同于JS的text属性. <span v-text="msg"></span> 这 ...
- Xamarin.Android 使用ListView绑定数据
使用ListView进行数据绑定 第一步:新建一个类,用于存储显示字段. namespace ListViewDataBIndDemo { public class Person { public i ...
- Hive的union和join操作
建表语句: create table tb_in_base ( id bigint, devid bigint, devname string ) partitioned b ...
- 使用FluentMigrator进行数据库迁移
介绍 在开发的过程中,经常会遇到数据库结构变动(表新增.删除,表列新增.修改.删除等).开发环境.测试环境.正式环境都要记性同步:如果你使用EF有自动迁移的功能,还是挺方便的.如果非EF我们需要手工处 ...
- Linux常用命令-vim
vim的基本模式 1普通模式Normal mode 输入vim命令后进入的就是普通模式. 2插入模式Insert mode 这是内容修改编辑的模式, 在普通模式进入插入模式方法 按i或insert 在 ...
- 音频标签化1:audioset与训练模型 | 音频特征样本
随着机器学习的发展,很多"历史遗留"问题有了新的解决方案.这些遗留问题中,有一个是音频标签化,即如何智能地给一段音频打上标签的问题,标签包括"吉他"." ...
- MySQL 5.7最新版本的2个bug
好久没写博客了,都长草了.新业务上了5.7没遇到什么问题,虽然没遇到什么问题,但不代表没有问题,我有个习惯就是没事就喜欢逛逛percona的Blog,于是看到目前最新GA版本5.7.17的2个bug, ...
- 图像处理中kmeans聚类算法C++实现
Kmeans聚类算法是十分常用的聚类算法,给定聚类的数目N,Kmeans会自动在样本数据中寻找N个质心,从而将样本数据分为N个类别.下面简要介绍Kmeans聚类原理,并附上自己写的Kmeans聚类算法 ...
- Java中的静态变量、静态方法问题
由关键字static所定义的变量与方法,分别称为静态变量和静态方法,它们又都被称为静态成员 1.静态方法 无需本类的对象也可以调用此方法,调用形式为“类名.方法名”,静态方法常常为其他类提供一些方法而 ...