Android TTS 支持中文
16lz
2021-01-23
最近项目需求,要在android里面实现语音转文字朗读,TTS,于是上网各种搜索,比较好的是android有自带原生的api可以直接使用,android.speech.tts.TextToSpeech。封装一个java类方便使用,代码如下:
package dione.healthclub;import android.content.Context;import android.speech.tts.TextToSpeech;import android.util.Log;import android.widget.Toast;import java.util.Locale;public class AJTextToSpeech implements TextToSpeech.OnInitListener { private Context mContext; private TextToSpeech mTTS; public AJTextToSpeech(Context context){ mContext = context; mTTS = new TextToSpeech(mContext,this); } public boolean speak(final String text){ Log.d("dione","speak text:"+text); // 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规 mTTS.setPitch(1.0f); // 设置语速 mTTS.setSpeechRate(1.0f); //播放语音 int ret = mTTS.speak(text,TextToSpeech.QUEUE_ADD,null); if(ret == 0) { Toast.makeText(mContext, "文字转语音成功...", Toast.LENGTH_SHORT).show(); return true; } else { Toast.makeText(mContext, "文字转语音错误...", Toast.LENGTH_SHORT).show(); return false; } } @Override public void onInit(int status) { // 判断是否转化成功 if (status == TextToSpeech.SUCCESS){ //默认设定语言为中文,原生的android貌似不支持中文。 int result = mTTS.setLanguage(Locale.US); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){ Toast.makeText(mContext, "数据丢失或不支持..."+String.valueOf(result), Toast.LENGTH_SHORT).show(); }else{ //不支持中文就将语言设置为英文 mTTS.setLanguage(Locale.US); } } }}
将该java加入到自己的工程基本上就可以实现英文的语音转文字朗读。
TextToSpeech mTTS = new TextToSpeech(Context,this);
mTTS.speak("TTS中文朗读");
两句话就可以使用了。
一般系统都没有带中文TTS,不安装语音插件的情况下是可以直接实现英文朗读。
使用中文朗读:将TTS讯飞语音包(底部地址下载)解压出来的两个apk安装到android系统里面,然后在设置 -- 语言和输入法--文字转语音TTS输出--选择科大讯飞语音。
按照如上操作后android系统就支持了中文语音朗读。
仅供学习参考,by Dione.
完整代码已经中文语音插件apk下载地址:https://download.csdn.net/download/u012532263/10885562
更多相关文章
- android 在TextView中显示EditText,通过Button按键,更改TextView
- android中textview控件中的文字的位置是如何调整的
- TextView中的文字添加阴影效果及Style的使用
- android带有文字的图片按钮的两种实现方式
- Android中文 API (31) ―― TimePicker
- android 2.3 r1 中文 api (58) ―― TabHost
- 【游戏语音技术开发互联网公司】android 主程
- Android TextView文字链接4中方法
- TextView 文字描边