Android文字转语音播报

这篇具有很好参考价值的文章主要介绍了Android文字转语音播报。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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() {
            @Override
            public 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.集成使用

Android文字转语音播报

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时遇到)文章来源地址https://www.toymoban.com/news/detail-403212.html


总结

到了这里,关于Android文字转语音播报的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 9.0 设置讯飞语音引擎为默认tts语音播报引擎

    在9.0的系统rom定制化开发中,在产品开发中,一些内置的app需要用到tts语音播报功能,所以需要用到讯飞语音引擎作为默认的系统tts语音引擎功能,所以就需要 了解系统关于tts语音引擎默认的设置方法,然后在设置讯飞语音引擎为默认的tts语音引擎来实现tts语音播报功能的实

    2024年02月07日
    浏览(70)
  • Android 文件转语音TTS输出(文字转语音)

    目录 一、介绍 二、配置 三、使用 四、权限 五、补充 目前国内Android系统自带语音引擎基本上都是Pico TTS,Pico TTS不支持中文转语音播报。因为项目需要播放中文,引入科大讯飞引擎3.0.apk。 下载好科大讯飞语音引擎3.0.apk(若是下载小爱,小度等其他引擎也可以),安装成功

    2024年02月11日
    浏览(39)
  • android 离线语言合成(文字转语音)

    1、基于开源MaryTTS https://github.com/AndroidMaryTTS/AndroidMaryTTS 目前查到的资料,不支持中文,只针对西方语种。 2、基于TensorFlowTTS 官方个地址:为 Android 构建 TensorFlow Lite 库 (google.cn) 所依赖包下载地址:Maven Central (sonatype.com) 官方Demo https://github.com/TensorSpeech/TensorFlowTTS/tree/v1.8 其他选

    2024年02月09日
    浏览(29)
  • Android通过TextToSpeech实现文字转语音

            如果在Android11里转语音不发声,并且报错: speak failed:not bound to TTS engine ,则需要在AndroidManifest.xml文件中声明如下内容: 1、setLanguage支持的一些语言环境: 语言 常量 美式英语 US 加拿大法语 CANADA_FRENCH 德语 GERMANY 意大利语 ITALY 日语 JAPAN 汉语 CHINA  2、TextToSpeech类

    2024年02月15日
    浏览(38)
  • uniapp 语音文本播报功能

    最近uniapp项目上遇到一个需求 就是在接口调用成功的时候加上语音播报 , ‘创建成功’ ‘开始成功’ ‘结束成功’ 之类的。 因为是固定的文本 ,所以我先利用工具生成了 文本语音mp3文件,放入项目中,直接用就好了。 这里用到的工具: 知意配音 链接地址:https://peiy

    2024年02月15日
    浏览(44)
  • h5开发语音播报功能

    一、使用window自带的api,但是手机浏览器多数不支持,兼容性差(不推荐) 1.使用到了window的speechSynthesis属性,如下如1.1                                                                         图1.1  2.主要用到了播报方法speak()和取消播报

    2024年02月14日
    浏览(49)
  • (vue)vue项目实现语音播报

    解决参考1: 在 Vue 项目中,你可以使用 Web Speech API 中的 SpeechSynthesis 接口来实现文本内容的自动朗读。下面是一个示例: 1.在 Vue 组件的模板中添加一个按钮,用于触发朗读: 2.在 Vue 组件的方法中实现朗读功能: 学习参考2:https://www.yzktw.com.cn/post/1266165.html

    2024年02月15日
    浏览(37)
  • STM32+JR6001语音播报

      文章目录 前言 一、JR6001怎么用? 二、使用步骤 1.合成语音 2.STM32代码 总结   最近在做一个利用STM32最小系统实现语音播报的小项目,加入到智能家居远程控制系统中,用来提示上位机对应操作的播报,于是就选择了JR6001作为语音播报模块,接下来就是学习过程。 提示:

    2024年02月06日
    浏览(163)
  • 基于STM32 + SYN6288语音播报

    完整代码下载 https://download.csdn.net/download/zhouml_msn/85592868 1:5V供电 ,功耗约120mA (带图中小喇叭); 2:最少接3根线:5V,  GND,  RXD,TXD-可不接,BY-可不接 3:两种音源输出接口,排针、标准3.5mm接口,接小喇叭和普通音箱都无压力。 4:每次最多可转换200字节文本; 1:串口配置波

    2024年02月13日
    浏览(38)
  • Qt完成文本转换为语音播报与保存(系统内置语音引擎)(一)

    在当今数字化社会,人们对于交互式应用程序的需求越来越高。除了传统的图形用户界面,语音交互也成为了一种流行的交互方式。在这种情况下,将文本转换为语音成为了一项重要的技术,它可以为用户提供更加人性化和便捷的交互方式。在此背景下,Qt提供了QTextToSpeech类

    2024年02月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包