TextToSpeech核心代码:

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);mBinding.setOnClick(this);mTextToSpeech = new TextToSpeech(this,this);}private void speakOut() {if (mTextToSpeech!= null && !mTextToSpeech.isSpeaking()){
//            Bundle bundle = new Bundle();
//            bundle.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME,1.0f);//朗读,注意这里三个参数的added in API level 4   四个参数的added in API level 21
//            mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null,"");}}/*** 初始化语音播放* @param status*/@Overridepublic void onInit(int status) {if (status == TextToSpeech.SUCCESS){// 设置音调,1.0是常规mTextToSpeech.setPitch(1.0f);//设定语速 ,默认1.0正常语速mTextToSpeech.setSpeechRate(1.0f);int result = mTextToSpeech.setLanguage(Locale.CHINA);if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED){Toast.makeText(this,"数据丢失或不支持",Toast.LENGTH_SHORT).show();}}}

科大讯飞:

@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBinding = DataBindingUtil.setContentView(this, R.layout.activity_xun_fei);mBinding.setOnClick(this);//初始化科大讯飞SpeechUtility.createUtility(getApplicationContext(), SpeechConstant.APPID + "=5b558975");mSynthesizer = SpeechSynthesizer.createSynthesizer(this, this);}private void speak() {mSynthesizer.startSpeaking(mBinding.editTextXf.getText().toString(),mSynthesizerListener);}/*合成回调*/private SynthesizerListener mSynthesizerListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {//开始播放}@Overridepublic void onBufferProgress(int i, int i1, int i2, String s) {//合成进度}@Overridepublic void onSpeakPaused() {//暂停播放}@Overridepublic void onSpeakResumed() {//继续播放}@Overridepublic void onSpeakProgress(int i, int i1, int i2) {//播放进度}@Overridepublic void onCompleted(SpeechError speechError) {if (speechError == null){//播放完成}else {}}@Overridepublic void onEvent(int i, int i1, int i2, Bundle bundle) {// 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因// 若使用本地能力,会话id为null}};@Overridepublic void onInit(int i) {if (i != ErrorCode.SUCCESS){return;//初始化失败}mSynthesizer.setParameter(SpeechConstant.ENGINE_MODE, SpeechConstant.MODE_MSC);mSynthesizer.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);mSynthesizer.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());mSynthesizer.setParameter(SpeechConstant.VOICE_NAME, voicerLocal);}

代码较为简单,有不足之处大家可以留言交流

完整代码见GitHub

文字转语音 两种方法:TextToSpeech、科大讯飞相关推荐

  1. 计算机将文本朗读出来应用语音,如何实现电脑语音朗读文字?可以选择两种方法...

    眼睛长时间对着电脑会让人觉得疲劳,到了休息时间想要放松心情,看看小说,又担心影响视力,怎么办?很简单,我们可以直接选择"听书",除了借助语音朗读软件,还有其他方法,下面小编来为大家 ...

  2. 怎么将图片内容转换成文字?这两种方法可以轻松实现

    如何将图片的内容转换成文字呢?大家在使用图片文件的时候,遇到那种图片中包含一些有用的文字信息时,没有办法直接复制下来使用,只能对照着图片将文字信息给记录下来,这样会很耗费我们的时间.其实是有方法能够直 ...

  3. 环形文字拉直的两种方法:极坐标转换和薄板样条插值python代码示例

    目录 引言 极坐标转换 方案一: 方案二: 薄板样条插值法 引言 针对环形文字识别,通过这几天调研,一般有两种方法,一是极坐标转换:二是薄板样条插值(TPS)法. 极坐标转换 方案一: 代码来源:Se ...

  4. 文字转语音哪种方法比较好?试试这三个方法

    在自媒体领域工作时,制作短视频并为其配音是一个家常便饭的事情,但并非所有人都拥有成为声优的天赋.因此,许多人会选择使用一些文字转语音工具来为视频配音.那么,在众多的文字转语音软件中,哪些是比较好用的呢 ...

  5. 如何批量在excel中将中文转换为汉语拼音(Excel文字转拼音两种方法)

    今天工作遇到一个需求,其中有一列的需求是将姓名转变为拼音全称 这个需求有两种解决办法(目前) 直接进入正题: 1.第一种方法,利用自定义函数 要将以上的名字汉语拼音写出来,(举个例子,实际数据比这要多 ...

  6. krpano 热点显示文字 hotspot的两种方法。

    krpano里面有时候需要一个热点显示文字.现在学会两种显示方式: 1 鼠标移入显示 <hotspot name="h3_x" onhover="showtext( ...

  7. CDR利用修剪命令将文字一分为二的两种方法

    在做一些设计作品时,经常会使用CorelDRAW完成一些特殊字体效果,因为CDR的软件特点,所以在制作矢量图,包括文字效果时非常的方便省力.比如,使用CDR软件提供的修剪命令,可以快速将一个字分成两半 ...

  8. CSS多行文字垂直居中的两种方法

    <div class="middle-box"><div class="middle-inner"><p><span ...

  9. java实现图片文字识别的两种方法

    一.使用tesseract-ocr 1.    https://github.com/tesseract-ocr/tesseract/wiki上下载安装包安装和简体中文训练文件 window64位安装 ...

最新文章

  1. 智能化时代的到来,智能机器人会抢走我们的工作和收入吗?
  2. go get 获取被墙依赖包解决方法
  3. 用构造函数来完成结构体的初始化
  4. ubuntu10右键脚本中增加发送到命令
  5. NuGet程序包安装SQLite后完全抽离出SQLite之入门介绍及注意事项,你真的懂了吗?...
  6. 【华为云技术分享】如何拆分用户故事
  7. 创建list集合_Java 9新增的不可变集合
  8. python的pip换源_[Python]Pip换源以及设置代理
  9. 用python画散点图
  10. 麦子学院bootstrap实战项目官网,后台,jquery.singlePageNav.min.js ,wow.min.js,animate.css使用...
  11. linux音频alsa-uda134x驱动文档阅读之一(over-view)
  12. Barrett reduction
  13. excel中快速输入打勾
  14. 手把手教你如何免费把多张图片合并为PDF文件,一看就懂。
  15. 基于PHP+MySQL的志愿者管理系统
  16. SpringMVC视图及如何在域对象中共享数据
  17. 【MATLAB】— xlsread和xlswrite函数
  18. mysql内嵌插入语句_MySQL中添加或插入语句(Insert)的几种使用方式
  19. Android shortcut的使用及源码分析
  20. 基于微信小程序的学生选课系统

热门文章

  1. IGraphicsContain 删除元素
  2. 广州红海云计算股份有限公司获全球软件最高级别CMMI5认证
  3. 朱棣文先生在哈佛大学毕业典礼上的演讲
  4. python爬虫实战--爬取猫眼专业版-实时票房
  5. 骐俊CAT1模组 - MQTT接入腾讯云平台篇
  6. 青龙面板--花花阅读
  7. Could not find artifact pom:2.0.0 in public
  8. Xilinx IOB输出寄存器约束笔记
  9. Win11+RTX3060显卡 配置cuda和cudnn
  10. 青海大学的计算机专业排名,青海大学王牌专业有哪些及专业排名