Android文字转语音播报

article/2025/8/18 19:32:24

文章目录

  • 前言
  • 一、实现方式
    • 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.添加工具类SpeechUtilOffline4.初始化和调用:
初始化:speechUtilOffline = SpeechUtilOffline.getInstance();if(speechUtilOffline!=null){speechUtilOffline.init(MainActivity.this);}关闭:
if (speechUtilOffline!=null){speechUtilOffline.release();}播放:
speechUtilOffline.play("云知声离线语音");

四、注意点

1.喇叭问题

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


总结


http://chatgpt.dhexx.cn/article/Bf7A5Vwa.shtml

相关文章

C# 文字转语音

不依赖于第三方程序,使用.net自带的System.Speech实现,添加引用至项目即可 实现功能: 将文字转为语音,实现播放、暂停、继续、停止;以及音量和语速调整等功能,并且支持将音频保存到本地 开发环境: 开发工具…

计算机将文本朗读出来应用语音,还有这种操作?一分钟轻松把文字变成语音,手机电脑都可以!...

原标题:还有这种操作?一分钟轻松把文字变成语音,手机电脑都可以! 有的时候,我们不想看文字的时候,就想用耳朵来听,所以现在很多人更喜欢听电台听故事。可是我们的文件没有声音啊,怎么…

有什么软件可以把文字变成语音?声音多点更好了

文字转语音用到就是AI智能功能,基于深度的学习技术,给用户提供了流畅、自然的发音服务。很多用户在线使用传统的配音工具时,经常遇到发音机械、选择主播有限、广告众多等各种缺点。选择知意配音的优点实在太多了简直不要套多,海量…

怎么让文字变成语音?如何将文字自动生成语音?

文字转语音怎么弄?如果不想用自己声音做音频,可以使用压缩视频网-文字合成语音https://www.yasuoshipin.com/make功能,简单好操作,语音合成的方法一起来看一下吧。 点击工具栏,文字合成语音功能,编辑文字内容或者将编…

html 文字 转 语音,把文字变成语音的软件

这年头爱看网络小说的人是越来越多了,但是,那密密麻麻的文字让人看着看着就头昏眼花了,额滴神啊! 要是能把文字变成语音就好了!偷偷告诉大家哦,其实我也是这类人 ,所以最近我找到了一款好用的文…

如何让文字变成语音?推荐三个免费把文字变成音频软件

日常生活中,我们不论是在办公还是在学习都经常会与文字打交道,有时候需要把文字变为音频来使用,但是自己去录制的话,不仅麻烦还容易出错,其实我们可以借助工具来完成文字变语音的操作。那么今天就让我来教教大家如何让…

文字怎么转语音?这些方法值得收藏

在我们不方便阅读,但又需要了解一些文章信息的时候,各位小伙伴们会怎么做呢?是等方便的时候再进行阅读吗?还是说让他人帮忙转述呢?其实我们可以让文字自己说话,只需要一些软件配合即可。那你们知道如何让文…

数学建模常用算法—灰色关联分析法(GRA)

解决问题 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。 一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种&…

灰色关联度分析-详细代码和说明

1、数据来源:自主计算 2、时间跨度:无 3、区域范围:无 4、指标说明: 因素分析的基本方法过去采用的主要是统计的方法,如回归分析,回归分析虽然是一种较通用的方法,但大都只用于少因素的、线…

数学建模-灰色关联度分析原理笔记

文章目录 灰色关联分析法简介步骤画统计图,进行简单分析确定分析数列对变量进行预处理计算子序列中各个指标与对应母指标的关联系数计算灰色关联度得到结论 讨论评价类问题完整分析步骤(该方法)对指标进行正向化预处理得到母序列计算灰色关联…

Python实现 灰色关联分析 与结果可视化

之前在比赛的时候需要用Python实现灰色关联分析,从网上搜了下只有实现两个列之间的,于是我把它改写成了直接像Pandas中的计算工具直接计算person系数那样的形式,可以对整个矩阵进行运算,并给出了可视化效果,效果请见实现 作者提醒:部分读者反应在某些情况下与MATLA…

灰色关联分析法步骤

https://wenku.baidu.com/view/dc356290af1ffc4fff47ac0d.html?rec_flagdefault&sxts1538121950212 利用灰色关联分析的步骤是: 1.根据分析目的确定分析指标体系,收集分析数据。 设n个数据序列形成如下矩阵: 其中m为指标的…

评价类问题_灰色关联分析

适用范围:计算影响结果的因素的重要程度,确定权重,也适用于评价类问题 基本思想:根据曲线集合形状的相似程度,判断联系是否紧密,曲线越接近,相应序列之间的关联度越大,反之越小 灰色…

灰色关联度分析算法(包含matlab源码及实例)

本文为整理后写出,不保证不会出现问题,若发现问题,请在评论区或私信指正!!! 目录 前言 1.确定母序列和子序列 2.数据归一化 1)初值化 2)均值化 3.计算绝对值差 4.计算灰色关联系…

熵值法、灰色关联分析与层次分析法

熵值法 在信息论中,熵值能够很好的反映信息无序化程度,其值越小,系统无序度越低,信息的效用值越大,其权重也相应越大;反之,其值越大,系统无序度越高,信息的效用值越小&a…

灰色关联分析(系统分析+综合评价)

系统分析:探究系统中哪个自变量对系统的影响最大 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小 应用一、进行系统分析(国内比赛合适&#xf…

Statistical Analysis:关联度分析之灰色关联分析软件

Statistical Analysis:关联度分析之灰色关联分析软件 导读:灰色关联分析,从其思想方法上来看,属于几何处理的范畴,其实质是对反映各因素变化特征的数据序列所进行的几何比较。用于度量因素之间关联程度的灰色关联度&am…

R语言灰色关联分析法

R语言灰色关联分析法 输入数据数据的标准化/归一化求灰色系数求差序列和最大值最小值求关联系数 计算关联度并排序所有代码 灰色关联度分析(Grey Relation Analysis,GRA),是一种多因素统计分析的方法。简单来讲,就是在…

如何用spss做灰色关联度分析?手把手教学快速掌握

1、作用 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高;反之&#xff…

(三)灰色关联分析

灰色关联分析法: 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高,即可谓二者关联程度较高&#x…