文章目录

  • 前言
  • 一、实现方式
    • 1.Android系统自带TTS
    • 2.第三方语音框架:云知声离线语音(32位:armeabi-v7a)、...
  • 二、Android系统自带TTS
    • 1.集成工具类TextToSpeechUtils
    • 2.初始化和调用
    • 3.需要的支持中文语音引擎
  • 三、第三方语音框架(云知声离线语音)
    • 1.Dos窗口查看是Android主板支持SO库架构(64位、32位)
    • 2.集成使用
  • 四、注意点
    • 1.喇叭问题
  • 总结

前言

Android文字转语音播报可以通过Android自带TTS和第三方语音框架实现。


一、实现方式

1.Android系统自带TTS

2.第三方语音框架:云知声离线语音(32位:armeabi-v7a)、…

二、Android系统自带TTS

1.集成工具类TextToSpeechUtils

代码如下(示例):

public class TextToSpeechUtils {private static TextToSpeechUtils textToSpeechUtils;private TextToSpeech mTextToSpeech;    // TTS对象public static TextToSpeechUtils getInstance() {if (textToSpeechUtils == null) {textToSpeechUtils = new TextToSpeechUtils();}return textToSpeechUtils;}private TextToSpeechUtils() {}public void initTextToSpeech(Context context) {mTextToSpeech = new TextToSpeech(context, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if (status == TextToSpeech.SUCCESS) {/*使用的是小米手机进行测试,打开设置,在系统和设备列表项中找到更多设置,点击进入更多设置,在点击进入语言和输入法,见语言项列表,点击文字转语音(TTS)输出,首选引擎项有三项为Pico TTs,科大讯飞语音引擎3.0,度秘语音引擎3.0。其中Pico TTS不支持中文语言状态。其他两项支持中文。选择科大讯飞语音引擎3.0。进行测试。如果自己的测试机里面没有可以读取中文的引擎,那么不要紧,我在该Module包中放了一个科大讯飞语音引擎3.0.apk,将该引擎进行安装后,进入到系统设置中,找到文字转语音(TTS)输出,将引擎修改为科大讯飞语音引擎3.0即可。重新启动测试Demo即可体验到文字转中文语言。*/// setLanguage设置语言int result = mTextToSpeech.setLanguage(Locale.CHINA);// TextToSpeech.LANG_MISSING_DATA:表示语言的数据丢失// TextToSpeech.LANG_NOT_SUPPORTED:不支持if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED) {Toast.makeText(context, "数据丢失或不支持", Toast.LENGTH_SHORT).show();}}}});// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规mTextToSpeech.setPitch(1.0f);// 设置语速mTextToSpeech.setSpeechRate(1.0f);}public void close(){if (mTextToSpeech != null) {mTextToSpeech.stop();        // 不管是否正在朗读TTS都被打断mTextToSpeech.shutdown();    // 关闭,释放资源mTextToSpeech = null;}}public void speak(String speakStr){if (mTextToSpeech != null && !mTextToSpeech.isSpeaking()) {mTextToSpeech.speak(speakStr, TextToSpeech.QUEUE_ADD, null);}}
}

2.初始化和调用

代码如下(示例):

//初始化
textToSpeechUtils = TextToSpeechUtils.getInstance();
textToSpeechUtils.initTextToSpeech(mContext);
//关闭
textToSpeechUtils.close();
//播放
textToSpeechUtils.speak("开始虹膜注册");

3.需要的支持中文语音引擎

1.包名、应用名:
com.svox.pico 系统自带不支持中文语音
com.baidu.duersdk.opensdk 度秘语音引擎3.0 不支持5.0以下系统,大小11.95M
com.google.android.tts 谷歌文字转语音引擎,不支持5.0以下系统,大小17.98M
com.iflytek.speechcloud 科大讯飞语音引擎3.0,支持4.0以上系统,大小27.27M,科大讯飞引擎3.0安装后的名字叫:语音设置
com.iflytek.tts 科大讯飞语音合成,较老,不支持7.0以上系统,大小9M

博客及下载地址:https://blog.csdn.net/yingchengyou/article/details/79591954

2.切换发音人
设置 —— 辅助功能 —— 无障碍 ——TTS文本转语音 —— 切换引擎(如果有多个引擎的话)
引擎右边设置可点击进入选择发音人(如果有的话)
科大讯飞语音引擎3.0支持多个人物的语音切换,可以自行下载这个引擎。

博客:https://blog.csdn.net/qq_35584878/article/details/100535133

3.Android11 初始化失败问题处理
博客:https://blog.csdn.net/Jason_996/article/details/121704510

三、第三方语音框架(云知声离线语音)

1.Dos窗口查看是Android主板支持SO库架构(64位、32位)

C:\Users\CWY>adb shell
rk3399_all:/ $ getprop

2.集成使用

1.添加jar包:
api files('libs/usc.jar')  //语音2.build文件defaultConfig下添加so文件:ndk {// 设置支持的SO库架构abiFilters 'armeabi-v7a'// 'arm64-v8a'//'armeabi'}
3.添加工具类SpeechUtilOffline:
4.初始化和调用:
初始化:speechUtilOffline = SpeechUtilOffline.getInstance();if(speechUtilOffline!=null){speechUtilOffline.init(MainActivity.this);}关闭:
if (speechUtilOffline!=null){speechUtilOffline.release();}播放:
speechUtilOffline.play("云知声离线语音");

四、注意点

1.喇叭问题

调试Android主板时喇叭确保装上、喇叭声音大小与其功率有关。(调试Android主板rk3399时遇到)


总结

Android文字转语音播报相关推荐

  1. 苹果原生文字转语音播报

    1.CHiOSSpeech.h // // 文 件 名:CHiOSSpeech.h // // 版权所有:Copyright © 2018年 leLight. All rights reserved. ...

  2. java 文字转换成语音 代码_java文字转语音播报功能的实现方法

    前言 本文主要给大家分享了关于java文字转语音播报的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下 一.pom.xml引入jar包依赖 com.hynnet ja ...

  3. Android 文字转语音使用讯飞语音SDK(eclipse版 无UI)

    Android 文字转语音使用讯飞语音SDK(eclipse版) 1.下载SDK(地址:http://www.xfyun.cn/sdk/dispatcher)下载前会让你先创建应用,创建应用后会得到一 ...

  4. ios 原生语音识别,百度翻译API使用,原生文字转语音播报

    若有不正之处,希望大家不吝赐教,谢谢! 原生语音识别所需: 首先需要再plist文件中加入: Privacy - Speech Recognition Usage Description 需要使用si ...

  5. Android如何解决文字转语音播报的问题

    如何解决文字转语音的问题 1.网上的普遍解决方式 2.我自己需求和解决方式 3.总结 1.网上的普遍解决方式 TTS+语音引擎实现离线的语音播报的功能 下载百度,讯飞等厂家的离线SDK(收费) 由于这 ...

  6. android 文字转语音(中文) TextSpeech

    1.介绍 TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话. 它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经 ...

  7. Android实现TTS语音播报

    TTS工具类: public class SystemTTS {private static SystemTTS singleton;private Context mContext;//核心播放对象 ...

  8. Android自带语音播报+讯飞语音播报封装(直接用)

    一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开'设置' -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...

  9. Android 文字转语音2种方式

    今天在开发中做了一个文字转为语音的功能,入了很多坑. 首先我采用的是科大讯飞的在线语音合成技术.写完之后他可以在低版本的手机上读出来,但是再高版本的7.0以上就读不出来,都听不懂再读什么. 下面贴出我 ...

  10. SpeechSynthesisUtterance文字转语音播报

    一.介绍 SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等 二.基本属性 var sp ...

最新文章

  1. linux ubuntu/deepin安装tengine(nginx增强版)2.3.2
  2. 领域驱动设计-3-模型的管理
  3. python 遍历对象_python js对象的遍历
  4. mysql索引久了需要重新_mysql索引更新要多久
  5. 基于图像界面工具postman进行测试
  6. 我和EDAS这两年——阿里巴巴入职两年的小结
  7. 【不积跬步,无以致千里】五个常用的Linux监控脚本代码
  8. 《Python编程:从入门到实践》学习笔记——第5章 if语句
  9. 巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
  10. bootstrap fileupload插件实现文件上传与前端回显图片
  11. Strategic game poj1463
  12. 最酷网学习,如何做一个轮播
  13. 【LINUX】Linux之Ubuntu系统安装搜狗输入法
  14. 字典(骚气的加上二叉排序树)
  15. 流利地回答出面试官提出的八股问题,面试官却突然说“背得不错”,该怎么回答?...
  16. OpenGL画三角形 圆 五角星 菱形
  17. 张小龙演讲全文:如何把产品做简单
  18. R语言STAMP-丰度差异比较图
  19. c# 二维码识别 摄像头使用 windows
  20. 全国计算机二级考试江苏报名时间,江苏省2018年全国计算机等级考试报名时间...

热门文章

  1. Java多线程(7):JUC(下)
  2. 蚂蚁金服实习Android岗,面试闯关记。
  3. 通俗易懂讲PID,附参数调试口诀
  4. 用户‘Sa’登录失败原因
  5. 带你深入了解 DNS 解析原理-递归与迭代
  6. Axure-RP8 介绍
  7. 关于springboot:Spring-ContentNegotiation内容协商之使用篇一
  8. 热敏电阻(NTC)的基本参数及其应用
  9. HDU2586 How far away ?(LCA模板题)
  10. 5.3输入两个正整数m和n,求其最大公约数和最小公倍数。