语音合成android代码,百度 TTS 语音合成-Android
参考百度语音合成demo,MiniActivity.java 抽离代码。
初始化
mSpeechSynthesizer放在Application 中,并在Activity调用,但是无法正常播放。先贴出关键代码
Application 初始化代码:
protected String appId = "15151421";
protected String appKey = "MxIQEHVeZg2222LNs3ygUYo1";
protected String secretKey = "t0F9gzpw1111AHkGdf8GM70zdOSnlrD";
private TtsMode ttsMode = TtsMode.ONLINE;
public SpeechSynthesizer mSpeechSynthesizer;
private void initTTs() {
LoggerProxy.printable(true); // 日志打印在logcat中
boolean isSuccess;
// 日志更新在UI中,可以换成MessageListener,在logcat中查看日志
SpeechSynthesizerListener listener = new UiMessageListener(mainHandler);
// 1. 获取实例
mSpeechSynthesizer = SpeechSynthesizer.getInstance();
mSpeechSynthesizer.setContext(this);
// 2. 设置listener
mSpeechSynthesizer.setSpeechSynthesizerListener(listener);
// 3. 设置appId,appKey.secretKey
int result = mSpeechSynthesizer.setAppId(appId);
result = mSpeechSynthesizer.setApiKey(appKey, secretKey);
// 5. 以下setParam 参数选填。不填写则默认值生效
// 设置在线发声音人: 0 普通女声(默认) 1 普通男声 2 特别男声 3 情感男声 4 情感儿童声
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");
// 设置合成的音量,0-9 ,默认 5
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "9");
// 设置合成的语速,0-9 ,默认 5
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, "5");
// 设置合成的语调,0-9 ,默认 5
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_PITCH, "5");
mSpeechSynthesizer.setParam(SpeechSynthesizer.PARAM_MIX_MODE, SpeechSynthesizer.MIX_MODE_DEFAULT);
// 该参数设置为TtsMode.MIX生效。即纯在线模式不生效。
// MIX_MODE_DEFAULT 默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
// MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
// MIX_MODE_HIGH_SPEED_NETWORK , 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
// MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
mSpeechSynthesizer.setAudioStreamType(AudioManager.MODE_IN_CALL);
// x. 额外 : 自动so文件是否复制正确及上面设置的参数
Map params = new HashMap<>();
// 复制下上面的 mSpeechSynthesizer.setParam参数
// 上线时请删除AutoCheck的调用
InitConfig initConfig = new InitConfig(appId, appKey, secretKey, ttsMode, params, listener);
AutoCheck.getInstance(this.getApplicationContext()).check(initConfig, new Handler() {
@Override
/**
* 开新线程检查,成功后回调
*/
public void handleMessage(Message msg) {
if (msg.what == 100) {
AutoCheck autoCheck = (AutoCheck) msg.obj;
synchronized (autoCheck) {
String message = autoCheck.obtainDebugMessage();
print(message);
}
}
}
});
// 6. 初始化
result = mSpeechSynthesizer.initTts(ttsMode);
checkResult(result,"initTts");
}
并在onCreate()中初始化。
并在Activity调用
private SpeechSynthesizer mSpeechSynthesizer;
application = MainApplication.getInstance();
mSpeechSynthesizer = application.mSpeechSynthesizer;
int result = mSpeechSynthesizer.speak(text);
调用正常,但是无法正常播放音频,求解。个人怀疑是UI阻塞,这个如何解决
语音合成android代码,百度 TTS 语音合成-Android相关推荐
- Android 系统性能优化(42)---Android代码内存优化建议-Android资源篇
Android代码内存优化建议-Android资源篇 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知识,那么写 ...
- Android集成百度TTS,实现离在线的中英语音合成
百度的离在线TTS,没有调用量限制,免费但是有QPS限制(是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准),增大QPS需要收费,所以对商用并不是很好友.如果想用完全免费的纯离线可参考我另 ...
- android 代码获取图片信息吗,Android 通过网络获取图片的代码
Android 通过网络获取图片的代码 主activity package com.netimg; import android.app.Activity; import android.graphi ...
- android 代码浏览,Webview实现android简单的浏览器实例代码
WebView是Android中一个非常实用的组件,它和Safai.Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面,下面通过本文给大家介绍Webv ...
- android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码
1 类图 在[FJU项目]1像素进程保活(二)中,涉及到的几个类的类图如下所示(仅供参考): 实线箭头:关联 虚线箭头:依赖 重构前UML类图在上图中,OnePixelManager里面有太多的职责, ...
- android studio百度地图教程,Android studio百度地图SDK开发 2020最新超详细的Android 百度地图开发讲解(4) 路线规划之起始点地址输入实现规划...
实现起始点输入的路线规划 要实现输入起始点的路线规划,需要两个输入框,可以将两个输入框设置在和地图同一个Activity中,也可以新建一个Activity,来实现地址的输入,然后通过页面之间的跳转来传 ...
- android代码zip怎么用,Android平台实现Zip文件解压缩
[android]代码库在Android平台中如何实现Zip文件的解压缩功能呢? 因为Android内部已经集成了zlib库,对于英文和非密码的Zip文件解压缩还是比较简单的,下面给大家一个解压缩zi ...
- android 调用百度地图规划,Android 调用百度地图API
一.到 百度地图开发平台下载SDK 1.点击自定义下载 2.下载自己想要的功能包我这里选了三个 3.获取密钥 获取密钥之前我们要新建一个应用 填写好相关的信息 二. 新建一个项目工程 1. 把下载好的 ...
- android代码修改excel文件格式,Android实现类似execel的表格 能回显并能修改表格内容的方法...
如下所示: 自定义实现一个水平滚动控件HorizontalScrollView package com.example.view; import android.content.Context; im ...
最新文章
- 各方评论《面向儿童的人工智能北京共识》:这是中国人工智能发展轨迹中的一份关键文件...
- php配置xdebug断点调试
- (二十)深入浅出TCPIP之epoll的一些思考
- 利用Python对文件进行批量重命名——以图片文件为例
- IDEA图形化操作git
- 数据结构—链表-双链表
- mysql 5.6参数_初识 MySQL 5.6 新功能、参数
- JavaScript:学习笔记(3)——正则表达式的应用
- linux将passwd文件拷贝到,Linux命令
- Excel 连接 MySQL 导入数据 自定义 SQL (Excel 2016 + 适用)
- Navicat15安装教程超详细步骤
- 连锁门店数字化营销,打造千城万店新零售体系
- Jsonp 原理简述
- 科赫雪花曲线 matlab编程,科赫雪花曲线的MATLAB编程实现.doc
- php的seeder是什么,laravel利用seeder实现数据表中填充数据
- centos python3, There was a problem confirming the ssl certificate
- html怎么设置左偏移量,CSS中margin属性的偏移量详解(代码示例)
- “远香烟·近健康”乡风文明之禁烟活动
- python-regex-thread-localhost
- Android 后台保活,这里有你需要的所有姿势。2019,最新版本。
热门文章
- 【跃迁之路】【531天】程序员高效学习方法论探索系列(实验阶段288-2018.07.21)...
- 新版vue-cli搭建多页应用2
- 最短路-SPAF模板
- 众所周知,static修饰的成员只实例化一次,而string类型每次赋值都会重新创建一个实例,那么用static修饰string呢?...
- 如何成为月入过万的斜杠青年
- Tomcat架构(二)
- 正则表达式基础(一)
- VS 常见快捷键(转)
- 20100707 学习记录:[System.Web.Script.Services.ScriptService]引用问题
- flex图表数据动态更新效果示例