安卓自带的文字转语音 使用很简单 但是语音库没有百度的只能 多音字读起来傻傻的
private TextToSpeech tts;
tts = new TextToSpeech(getApplicationContext(), new MyOnInitialListener());
使用的时候直接掉方法
tts.speak("文字",TextToSpeech.QUEUE_FLUSH, null);
class MyOnInitialListener implements TextToSpeech.OnInitListener { @Override public void onInit(int status) {// tts.setEngineByPackageName("com.iflytek.vflynote"); tts.setLanguage(Locale.CHINESE); } }
。。。就可以了
更新一下 发现点问题 在三星机型上可能对象创建失败 增加非空验证
class MyOnInitialListener implements TextToSpeech.OnInitListener { @Override public void onInit(int status) {// tts.setEngineByPackageName("com.iflytek.vflynote"); if (status == TextToSpeech.SUCCESS) { int result = tts.setLanguage(Locale.CHINA); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.d("文字转语音异常", "文字转语音异常"); } } } }
private void speak(String talk) { if (tts != null && !tts.isSpeaking()) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { tts.speak(talk, TextToSpeech.QUEUE_FLUSH, null, null); } else { tts.speak(talk, TextToSpeech.QUEUE_FLUSH, null); } } }
继续更新 发现了在华为手机上因为没有中文数据文件初始化失败 。。这个中文数据不直到在哪搞了。。 直接更换 又集成了讯飞得在线语音 将demo 发一下地址下面
http://download.csdn.net/download/qq_34709056/10150994