android实现tts文字转语音功能(代码片段)

Android_小黑 Android_小黑     2022-11-12     244

关键词:

本文地址:https://blog.csdn.net/qq_40785165/article/details/122746461,转载需附上此链接

简单是稳定的前提。

大家好,我是小黑,一个还没秃头的程序员~~~

这次给大家介绍一个Android自带的功能——TTS文字转语音,即将输入的文字以音频的形式朗读或存储成为文件。使用的是Android自带的TextToSpeech类,话不多说,正文开始

(一)初始化

TextToSpeech有两个主要的构造函数

  1. TextToSpeech(Context context, OnInitListener listener)
  2. TextToSpeech(Context context, OnInitListener listener, String engine)
TextToSpeech mTextToSpeech;
mTextToSpeech = new TextToSpeech(this, this, "com.iflytek.speechcloud")
参数说明
context上下文
listener初始化监听
context引擎的包名

上面的引擎中,如科大讯飞引擎的包名为com.iflytek.speechcloud,用于手机默认引擎非科大讯飞引擎时手动设置,但前提是手机已安装科大讯飞文字转语音引擎,否则无法设置

注:若手机上未安装科大讯飞引擎,可到我的资源中下载引擎安装应用,https://download.csdn.net/download/qq_40785165/85041048

初始化的结果由TextToSpeech.OnInitListener返回,具体代码如下:

 @Override
    public void onInit(int status) 
        //设置朗读的语言是中文
        int language = mTextToSpeech.setLanguage(Locale.CHINA);
        if (language == TextToSpeech.LANG_MISSING_DATA || language == TextToSpeech.LANG_NOT_SUPPORTED) 
            Toast.makeText(this, "不支持中文或语言数据丢失", Toast.LENGTH_SHORT).show();
        
    

(二)添加朗读配置

朗读状态监听由UtteranceProgressListener返回,具体代码如下:

        mTextToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() 
            @Override
            public void onStart(String utteranceId) 
               //朗读中
            

            @Override
            public void onDone(String utteranceId) 
               //朗读结束
            

            @Override
            public void onError(String utteranceId) 
               //朗读失败
            
        );

设置其他配置

   // 设置音调,可模拟男女声
        mTextToSpeech.setPitch(1.0f);
        // 设置语速
        mTextToSpeech.setSpeechRate(1f);

(三)朗读或者保存为文件

朗读:

speak(final CharSequence text,
                     final int queueMode,
                     final Bundle params,
                     final String utteranceId)
参数说明
text要朗读的文本串。 长度不超过4000
queueMode使用的队列策略,QUEUE_ADD或QUEUE_FLUSH。
params请求的参数。 可以为空,可是携带如引擎包名、音量等参数
utteranceId此请求的唯一标识符

其他的函数

  • isSpeaking 是否在朗读
  • stop 中断当前的话语(无论是播放还是呈现到文件中),并丢弃队列中的其他话语。
  • shutdown 释放资源,可在onDestroy中进行

具体代码如下:

mTextToSpeech.speak(content, TextToSpeech.QUEUE_FLUSH, null, getClass().getName());

保存为文件:

synthesizeToFile(final CharSequence text, final Bundle params,
            final File file, final String utteranceId) 
参数说明
text要合成的文本串。 长度不超过4000
file生成的音频数据写入的文件
params请求的参数。 可以为空
utteranceId此请求的唯一标识符

具体代码如下:

int result = mTextToSpeech.synthesizeToFile(content, null, mMp3Path, this.getClass().getName());
                            if (result >= 0) 
                               //执行了合成逻辑,但此时不一定生成了文件
                             else 
                               //该文本无法转成音频
                            

注:朗读和合成文件都属于异步操作,调用API时就会返回结果,合成不一定完成甚至还未开始,所以要合理利用上面设置的状态监听进行后续操作

今天的介绍就到此为止,内容并没有什么难度,只是分享一个有趣的知识,后面还有学习到有趣的工具或者功能,我都会陆续和大家分享,谢谢大家的阅读!晚安!

android实现tts文字转语音功能(代码片段)

...小黑,一个还没秃头的程序员~~~这次给大家介绍一个Android自带的功能——TTS文字转语音,即将输入的文字以音频的形式朗读或存储成为文件。使用的是Android自带的TextToSpeech类,话不多说,正文开始(一)初始化TextToSpeech... 查看详情

chrome文字转语音(tts)(代码片段)

...统2.3验证是否有WindowsTTS(语音转文本)三、chrome文字转语音3.1WebSpeech相关的API实际上有两类3.2语音合成SpeechSynthesisAPI3.2.1SpeechSynthesisUtterance对象,主要用来构建语音合成实例3.2.1.1属性3.2.1.2回调函数3.2.2speechSynthesis对... 查看详情

chrome文字转语音(tts)(代码片段)

...统2.3验证是否有WindowsTTS(语音转文本)三、chrome文字转语音3.1WebSpeech相关的API实际上有两类3.2语音合成SpeechSynthesisAPI3.2.1SpeechSynthesisUtterance对象,主要用来 查看详情

文字转语音(TTS)-Android

】文字转语音(TTS)-Android【英文标题】:Texttospeech(TTS)-Android【发布时间】:2011-03-0418:54:55【问题描述】:我是安卓平台的新手。现在我正在处理TTS(TexttoSpeech)。如果我在TextArea中输入文本,并且我希望在单击发言按钮时将其转... 查看详情

androidtts文字转语音,中文需第三方插件(代码片段)

TextToSpeech默认不支持中文,需要第三方应用,这里推荐“讯飞语记”安装后,将应用的录音权限设置为允许,然后在系统的TTS设置下选择“讯飞语记”,重启使用TTS的应用即可。一、使用TextToSpeech完成语音播... 查看详情

微软语音引擎tts最基本使用(代码片段)

TTS(TextToSpeak)需求:需要借助程序实现文字合成语音/语音识别。TTS介绍就不说了,这里介绍非常详细>>>TTS详细介绍 + SAPI(微软的TTS语音合成和识别接口,可在程序中直接调用)下面介绍一下,怎么来使用它1.下载安... 查看详情

利用百度接口实现免费文字转语音

 利用百度接口实现免费文字转语音http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&tex=需要转换的文字 有的时候想装逼,需要用到文字转语音,网上有很多,可能需要下载软件啊,注册账号什么的,可能还... 查看详情

qbot6.讯飞文字转语音api使用/vits派蒙复读机实现(代码片段)

该项目计划长期进行维护更新,欢迎star:https://github.com/zstar1003/Qbot前言看完流浪地球2之后,萌生了一个想法:我想给机器人完整的一生。作为一个完整的机器人,声音势必是其灵魂所在,正好go-cqhttp支持... 查看详情

jsatobbtoa方法处理base64数据后转blob类型实现文字转语音.mp3文件(代码片段)

前端js+googleText-to-SpeechAPI实现文字转mp3文件使用由Google的AI技术提供支持的API将文字转换为自然而逼真的语音。地址GoogleText-to-Speech官网Tip:官网可以在线体验文字转语音,切换语言、男女声、语音速度等功能(详... 查看详情

微信小程序|基于小程序实现发送语音消息及转文字(代码片段)

此文主要在小程序内聊天的基础上实现语音发送及文字转换。小程序账号创建及工具准备页面大体设计实现录音功能实现对话界面语音转换文字账号创建及应用申请实现语音转文字小程序账号创建及工具准备访问微信公众平台&#x... 查看详情

python+edge-tts:一行代码,让你的文本轻松变成语音!(代码片段)

edge-tts是一个Python的库,继承了微软Azure的文本转语音功能(TTS),且是免费使用的。该库提供了一个简单的API,可以将文本转换为语音,并且支持多种语言和声音。大家好,我是树先生!今天给大家介绍一个Python库edge-tts,可以... 查看详情

小程序开发之语音合成(代码片段)

 如今,越来越多的人成为视频博主,文字合成语音是很多博主的强需求。今天结合“工具百宝箱”这款微信小程序,介绍一下如何开发文字转语音的功能。 文字合成语音在学术界被称为tts(texttospeech),国内的... 查看详情

小程序开发之语音合成(代码片段)

 如今,越来越多的人成为视频博主,文字合成语音是很多博主的强需求。今天结合“工具百宝箱”这款微信小程序,介绍一下如何开发文字转语音的功能。 文字合成语音在学术界被称为tts(texttospeech),国内的... 查看详情

用小姐姐的声音为你指路,实时语音导航功能如何实现?(代码片段)

...用HMSCore的Mapkit和MLkit所提供了对应能力,来详解如何实现导航语音播报功能。关键能力地图显示:使用mapkit在界面上绘制地图。路径规划:使用mapkit的路线规划api。TTS:MLkit中提供了 查看详情

python使用websocket调用语音识别,语音转文字(代码片段)

...列,直接使用1.Python调用标贝科技语音识别websocket接口,实现语音转文字1.1环境准备:1.2获取权限1.2.1登录1.2.2创建新应用1.2.3选择服务1.2.4获取Key&Secret2.代码实现2.1获取access_token2.2准备数据2.3配置接口参数2.4建立websocket客户端2... 查看详情

ai实现语音文字处理,paddlespeech项目安装使用|机器学习(代码片段)

目录前言环境安装1、conda安装Python3.9虚拟环境2、安装VisualStudio20193、安装requirements.txt4、安装paddlepaddle和paddlespeech5、nltk_data下载项目验证tts语音合成asr语音识别标点恢复总结前言这段时间一直在研究飞浆平台,最近试了试Padd... 查看详情

dotnet4.0调用tts引擎实现朗读功能更简洁~(代码片段)

SpVoice类是支持语音合成(TTS)的核心类。【主要属性】: Voice:表示发音类型,相当于进行朗读的人,包括MicrosoftMary,MicrosoftMike,MicrosoftSam和MicrosoftSimplifiedChinese四种。其中前三种只能读英文,最后一种... 查看详情

android文字转语音,语音消息播放之texttospeech

publicclassMainActivityextendsAppCompatActivity implementsView.OnClickListener,TextToSpeech.OnInitListener  privateButtonspeechBtn;//按钮控制开始朗读  privateEditTextspeechTxt;//需要朗读的内容  privateTextToSpeechtextToSpeech;//TTS对象  @Override  publicvoidonCreate(B... 查看详情