1.下载官网demo后倒入此jar包放入lib下

2.在main目录下导入相对应的so文件

3.添加权限,权限可按自己需求而定

<!--连接网络权限,用于执行云端语音能力 --><uses-permission android:name="android.permission.INTERNET" /><!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 --><uses-permission android:name="android.permission.RECORD_AUDIO" /><!--读取网络信息状态 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--获取当前wifi状态 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--允许程序改变网络连接状态 --><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><!--读取手机信息权限 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--读取联系人权限,上传联系人需要用到此权限 --><uses-permission android:name="android.permission.READ_CONTACTS" /><!--外存储写权限,构建语法需要用到此权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--外存储读权限,构建语法需要用到此权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!--配置权限,用来记录应用配置信息 --><uses-permission android:name="android.permission.WRITE_SETTINGS" /><!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务--><!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!--如需使用人脸识别,还要添加:摄相头权限,拍照需要用到 --><uses-permission android:name="android.permission.CAMERA" />

4.同步项目   并进行初始化操作

  private void initKDXF() {SpeechUtility.createUtility(this, SpeechConstant.APPID + "=APPID");}

5.放入语音播报的语音文件(语音文件在官网demo里面附带可自行搜索)

注:免费的

6.在相对应的播报页面进行播报

 private void initTTS() {SpeechSynthesizer  mTts = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener);if (mTts != null) {mTts.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaofeng"); // 设置发音人mTts.setParameter(SpeechConstant.SPEED, "1");// 设置语速mTts.setParameter(SpeechConstant.VOLUME, "80");// 设置音量,范围 0~100mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端//这里出现的问题是因为多次进入语音播报页面会导致语音未播报,只是稍微简单处理一下boolean speaking = mTts.isSpeaking();ToastUtils.showShort(speaking + "");if (speaking) {if (mTts != null) {mTts.pauseSpeaking();mTts.stopSpeaking();mTts.destroy();}mTts1 = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener);mTts1.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());mTts1.setParameter(SpeechConstant.VOICE_NAME, "xiaofeng"); // 设置发音人mTts1.setParameter(SpeechConstant.SPEED, "1");// 设置语速mTts1.setParameter(SpeechConstant.VOLUME, "80");// 设置音量,范围 0~100mTts1.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端mTts1.startSpeaking("需要播报的文字", new MySynthesizerListener());} else {mTts.startSpeaking("需要播报的文字"", new MySynthesizerListener());}}}

6.1获取发言人资源方法

    //获取发音人资源路径private String getResourcePath() {StringBuffer tempBuffer = new StringBuffer();String type = "tts";if (mEngineType.equals(SpeechConstant.TYPE_XTTS)) {type = "xtts";}//合成通用资源tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/common.jet"));tempBuffer.append(";");//发音人资源if (mEngineType.equals(SpeechConstant.TYPE_XTTS)) {tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/" + LeaveDatailsActivity.voicerXtts + ".jet"));} else {tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, type + "/" + LeaveDatailsActivity.voicerLocal + ".jet"));}return tempBuffer.toString();}

6.2初始化监听操作

    /*** 初始化监听。*/private InitListener mTtsInitListener = new InitListener() {@Overridepublic void onInit(int code) {LogUtil.e("InitListener init() code = " + code);if (code != ErrorCode.SUCCESS) {LogUtil.e("初始化失败,错误码:" + code + ",请点击网址https://www.xfyun.cn/document/error-code查询解决方案");} else {// 初始化成功,之后可以调用startSpeaking方法// 注:有的开发者在onCreate方法中创建完合成对象之后马上就调用startSpeaking进行合成,// 正确的做法是将onCreate中的startSpeaking调用移至这里}}};

6.3使用的相对应的全局变量

    // 引擎类型private String mEngineType = SpeechConstant.TYPE_CLOUD;public static String voicerXtts = "xiaofeng";// 默认本地发音人public static String voicerLocal = "xiaofeng";private SpeechSynthesizer mTts;private SpeechSynthesizer mTts1;

7.最后只需要在播报页面相对应的生命周期里加入和SpeechSynthesizer相对应的生命周期即可

例:

    @Overrideprotected void onResume() {super.onResume();if (mTts != null) {mTts.resumeSpeaking();}if (mTts1 != null) {mTts1.resumeSpeaking();}}@Overrideprotected void onPause() {super.onPause();if (mTts != null) {mTts.pauseSpeaking();}if (mTts1 != null) {mTts1.pauseSpeaking();}}@Overrideprotected void onStop() {super.onStop();if (mTts1 != null) {if (mTts != null) {mTts.stopSpeaking();}mTts1.stopSpeaking();}}@Overrideprotected void onDestroy() {super.onDestroy();if (mTts != null) {mTts.destroy();}if (mTts1 != null) {mTts1.destroy();}}

大致就是这个样子,其他的请默认移步官网

android 科大讯飞语音播报简单集成相关推荐

  1. 【Uniapp 原生插件】科大讯飞语音播报插件

    文章目录 科大讯飞语音播报插件 插件需求 使用插件 科大讯飞语音播报插件 插件地址:https://ext.dcloud.net.cn/plugin?id=8287 插件需求 使用插件前,请先使用试用 ...

  2. Android 科大讯飞 语音转文字

    Android 科大讯飞 语音转文字 语音听写SDK适配安卓6.0需要手动申请权限,各位可以自信查询资料实现,关于语音听写SDK的开发,参考科大讯飞开放平台官网为准 第一,首先去科大讯飞官网注册一个账 ...

  3. Android科大讯飞语音按队列播报

    在Android开发中,语音播报经常使用,但是,在使用过程中会发现,如果语音来源过于块,频率过高,在前一条没有播放完的情况下会执行第二条播放,本篇文章用来解决这个问题. 一.科大讯飞语音集成: 1.在 ...

  4. Android 科大讯飞语音SDK集成步骤

    前言 科大讯飞语音虽好,其严格的认证与校验确实精密,不过也大大提高了开发者的集成难度,并非危言耸听,我想大多数人都有经历过 11210(用户ID与离线资源不匹配) 21480( 离线引擎GUID不一致 ...

  5. Android 原生语音播报

    Android系统本身自带的语音引擎不支持中文,所以需要依赖 如 科大讯飞.度秘 等,类似语音引擎才可以. 三步: 1:安装语音引擎.  安装包百度找一下.安装到需要播报的机子上 如果没找到的话,这里 ...

  6. Android TTS语音播报实践

    在工作中遇到了语音播报的需求,在收到push后,用语音播报push携带的播报内容.类似于微信支付宝的收款信息一样.调研后主要的语音播报方案有一下几种: 基于第三方的TTS SDK,如百度.思必驰.讯飞 ...

  7. android开发语音播报

    转载请注明出处:http://blog.csdn.net/sw950729/article/details/52069582 本文出自:马云飞的博客 上次也说了最近一直在整理东西以及封装东西.然后今天 ...

  8. Android TTS语音播报

    TTS 语音播报:  代码摘要: private TextToSpeech mTts;private EditText et_setPitch;private EditText et_setSpeec ...

  9. python 语音播报 简单入门

    # coding: utf-8 import pyttsx3 import time # 初始化 pt = pyttsx3.init() # 说什么 pt.say("你好,dbirder&q ...

  10. android支付宝语音播报,支付宝商家语音播报 PushVoiceBroadcast

    PushVoiceBroadcast 支付宝商家语音播报 gradle引入 allprojects { repositories { ... maven { url 'https://jitpack. ...

最新文章

  1. msicuu.exe (msizap.exe),程序的作用
  2. 比较高明的暗部提亮方法:选取暗部,滤色叠加
  3. 软件开发人员该如何深入理解自己的代码
  4. 能源利用率逼近理论极限 阿里巴巴展示液冷黑科技
  5. 自动驾驶科普:一辆无人车到底是怎样工作的?
  6. 计算机应用基础专2020春,计算机应用基础(专)(专,2020春)(20200831130023).pdf
  7. Anaconda创建虚拟环境报错—UnavailableInvalidChannel: The channel is not accessible or is invalid
  8. Spring IOC 容器源码分析 - 循环依赖的解决办法 1
  9. Open3D 点云包围盒
  10. 学软件测试必须要会Java吗_软件测试需要学什么?
  11. 电脑桌面云便签怎么将界面最小化?
  12. 同或门真值表_三输入异或门真值表计算详解
  13. C#开发工控上位机编程 csdn_5种将死的编程语言
  14. Tableau基础 | 维度、度量、蓝色、绿色
  15. java 标点符号_java的标点符号
  16. WebRTC 教程二:WebRTC API 和 Leak
  17. 谈谈值得注意的高危端口
  18. 华为测试 称砝码
  19. Gartner 魔力象限:云基础设施和平台服务 2020年
  20. 基于切比雪夫逼近法的滤波器的matlab设计与实现

热门文章

  1. C#调用Outlook发送邮件
  2. 百度2005年面试题
  3. hive mapreduce reducer 调优
  4. 大厂职级、薪资一览表,你处在哪一级?(BAT/TMD/华为)
  5. Cisco命令合集-1
  6. 惠普HP compaq康柏系列 CQ40笔记本电脑拆机除尘
  7. 爬虫实战爬取豆瓣电影Top250榜单电影
  8. 知乎spark与hadoop讨论
  9. pdfpcell输出换行_fpdf 的cell 中文自动换行问题
  10. springboot之Result结果类处理