前言:
在日常的生活中免不了要有一些指定的文字需要手机帮我们读出来,那这个时候我就需要考虑到怎么样才能让手机帮我们读出来呢?
实现的方法:
接下来我来说说实现的方法以及步骤,我们都知道Android原声给我们提供了一种方式供我们实现这样的功能,这个类叫做TextToSpeech(文本转化为语言),这是第一种实现的方式,但是这个方式的局限性比较大;这个时候我们可以考虑第二种实现的方式,使用第三方的SDK接入到我们的APP中,这里我使用的是讯飞的SDK,接下来看看实现步骤:

  • 步骤一
    要使用第三方平台的SDK,那第一步肯定是在平台上注册开发者账号:http://www.xfyun.cn/这是讯飞的开发者平台的链接
    步骤二
    创建自己的应用,如图所示

    步骤三
    应用创建成功后根据提示去下载相应的SDK,下载完成之后如图所示

    步骤四
    创建自己的项目,然后导入相应的so文件和jar包,这里需要提的一个地方就是下载的sdk包中 官方的项目是eclipse的使用Android studio的人需要分成两个文件夹来导入,在下载后的libs文件夹中导入MSC.jar到项目的libs中,而另一个文件需要导入到main文件下面的jniLibs文件夹中,需要导入的文件如图,也就是so文件

    这样的话准备工作就已经完成,接下来就按照官方的文档来实现自己的代码逻辑就可以了,接下来贴出我的代码。
    private void Speak() {
    String content = editText.getText().toString().trim();
    // 初始化AppId
    SpeechUtility.createUtility(context, SpeechConstant.APPID + “=你的申请的APPID”);
    // 1.创建SpeechSynthesizer对象, 第二个参数:本地合成时传InitListener
    SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(context, null);
    // 2.合成参数设置,详见《科大讯飞MSC API手册(Android)》SpeechSynthesizer 类
    mTts.setParameter(SpeechConstant.VOICE_NAME, “xiaoyan”);// 设置发音人
    mTts.setParameter(SpeechConstant.SPEED, “50”);// 设置语速
    mTts.setParameter(SpeechConstant.VOLUME, “80”);// 设置音量,范围0~100
    mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); // 设置云端
    // 设置合成音频保存位置(可自定义保存位置),保存在“./sdcard/iflytek.pcm”
    // 保存在SD卡需要在AndroidManifest.xml添加写SD卡权限
    // 如果不需要保存合成音频,注释该行代码
    // mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH, “./sdcard/iflytek.pcm”);
    // 3.开始合成
    mTts.startSpeaking(content, mSynListener);
    }

    //合成监听器
    private SynthesizerListener mSynListener = new SynthesizerListener() {
    //会话结束回调接口,没有错误时,error为null
    public void onCompleted(SpeechError error) {
    }
    //缓冲进度回调
    //percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在文本中结束位置,info为附加信息。
    public void onBufferProgress(int percent, int beginPos, int endPos, String info) {
    }
    //开始播放
    public void onSpeakBegin() {
    }
    //暂停播放
    public void onSpeakPaused() {
    }
    //播放进度回调
    //percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文本中结束位置.
    public void onSpeakProgress(int percent, int beginPos, int endPos) {
    }
    //恢复播放回调接口
    public void onSpeakResumed() {
    }
    //会话事件回调接口
    public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
    }
    };
    以上就是整个使用语音合成的所有步骤,谢谢

Android应用开发接入讯飞语音合成相关推荐

  1. Android 讯飞语音合成

    . . 首先,需要先去科大讯飞官网申请帐号,以及创建应用,创建应用后可以进入我的应用查看APPID,并开通"讯飞语音合成"服务.然后下载对应的SDK,并进行以下步骤 http:// ...

  2. uniapp使用讯飞语音合成

    uniapp使用讯飞语音合成 封装: // A code block var foo = 'bar'; var receiver = plus.android.implements('com.ifly ...

  3. Android Studio快速集成讯飞SDK实现文字朗读功能

    今天,我们来学习一下怎么在Android Studio快速集成讯飞SDK实现文字朗读功能,先看一下效果图: 第一步 :了解TTS语音服务 TTS的全称为Text To Speech,即"从文 ...

  4. 讯飞语音合成andriod版本

    目录直达 1.成员变量声明 2.参数设置 3.获取离线资源 4.语音合成监听 5.调用方法合成语音 6.在onCreate中初始化合成对象 7.添加一个按钮 8.按钮按下监听 在离线命令的基础上,我们 ...

  5. 讯飞语音合成 下载音频Java Demo

    注册讯飞账号 略 实名认证 略 创建应用 添加语音合成服务 进入控制台,点击我的应用,然后添加语音合成服务(免费),并记下APPID 下载SDK 点击应用右侧的SDK下载 你将会下载到一个压缩包: 解 ...

  6. 讯飞语音合成和百度语音合成,粘贴就能用

    XFAudioComp 脚本中包含连接讯飞相关方法(其中讯飞使用Websocket  我使用的  BestHttp插件,插件在我资源里可以找到) using BestHTTP.WebSocket; u ...

  7. 讯飞语音合成 发音不准确怎么解决

    讯飞语音合成发音不准确怎么解决 替换要朗读文本中的容易读错的字符 首先讯飞语音合成我们是无法控制的,我们能控制的之后是自己传给他的文本.为了朗读效果,我这里通过替换掉一些容易读错的字符,加入空白符等方 ...

  8. 让计算机开口说话教案,生活创客系列教学设计:第十三节 利用讯飞语音合成技术让掌控板开口说话 —掌控板与讯飞语音合成...

    一.项目内容 项目背景:在同学们的作品中,都用到了物联网.同学们又提出了问题:联网后,同伴发来了文字信息,但我们不可能长期看着掌控板的屏幕,咋办?能否让掌控板把文字朗读出来? 可以!今天,我们就一起尝 ...

  9. Android接入讯飞sdk使用,遇到的问题和解决

    最近因为项目原因需要语音识别,Android自带的识别厂商有些会删除谷歌自带的功能,这时候就需要接入第三方,这里列举讯飞接入时遇到的问题: 1:添加Msc.jar包时的问题 添加Msc.jar需要ad ...

最新文章

  1. ASP.NET AJAX环境的简单构建(ZT)
  2. 知识图谱要看的书 了解的人 公众的号
  3. Xen server三 为xen添加存储及创建虚拟机
  4. 通过Python实现某个目录下所有文件(包含子目录中的文件)的列出
  5. Zabbix Server安装
  6. (译)Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机
  7. 通用mapper如何处理多表条件查询通过list封装(强烈不推荐)(一对一,一对多)
  8. java 虚拟机初始堆_了解java虚拟机—堆相关参数设置(3)
  9. 高质量壁纸网站,满足壁纸控的所有想象!
  10. Centos7安装jdk1.8
  11. Python中文手册——开胃菜
  12. HTML5期末大作业:游戏网站设计与实现——基于bootstrap响应式游戏资讯网站制作HTML+CSS+JavaScript
  13. python经纬度转换xy坐标公式_Python经纬度坐标转换为距离及角度的实现
  14. 【单片机笔记】STM8S003F3使用内部基准电压测量供电电压
  15. 苹果UDID泄露续:为什么UDID泄露会引起这么大反响?
  16. PHP 中的 use function是什么意思
  17. SDCC 2016讲师、知名JavaScript专家周爱民议题公布:有前端思想的物联网系统架构...
  18. c语言求数组最大值最小值泡沫法,C语言选择法排序
  19. linux中C语言获取高精度时钟gettimeofday函数
  20. Zmeet云雾架构-融合AI能力的通讯层的变革,性能远超传统通讯技术

热门文章

  1. Vue:获取v-for循环中的数组下标、索引及数据
  2. 使用YQL解决跨域请求json转jsonp问题
  3. 分类计数原理与分步计数原理_分类计数原理与分步计数原理
  4. 怎样用好CorelDRAW中的位图颜色遮罩
  5. OSPF DR选举详解
  6. ISO3834国际焊接认证简介
  7. Springboot毕业设计毕设作品,黑白图片和上色处理系统 开题报告
  8. 超级计算机不必采用并行技术,高速并行光互联技术及其应用-通信/网络-与非网...
  9. 如何通过安装包安装应用到手机
  10. 专升本-计算机公共课考点(4)—— 电子表格处理软件 Excel 2010