android原生rom,本自带tts语音,在这基础上可以直接调用使用即可。源码如下。


public class TTSdemo extends Activity implements OnInitListener{



/** Called when the activity is first created. */private EditText inputText = null;private Button speakBtn = null;/** * default state : CHECK_VOICE_DATA_FAIL = 0; */private static final int REQ_TTS_STATUS_CHECK = 0;private static final String TAG = "TTS Demo";private TextToSpeech mTts;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);try {//"这里注意,如果本机tts没有安装,这里就会抓获到异常的。tts使用的时候也要注意非空验证"// 检查TTS数据是否已经安装并且可用Intent checkIntent = new Intent();checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);// 检查TTS状态PackageManager pm = getPackageManager();ResolveInfo resolveInfo = pm.resolveActivity( checkIntent, PackageManager.MATCH_DEFAULT_ONLY );if( resolveInfo == null ) {// Not able to find the activity which should be started for this intentLog.e("----resolveInfo--------", "" + " Not able to find the activity which should be started for this intent");} else {startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK);}} catch (ActivityNotFoundException e) {Log.e(TAG, "Oops! The function is not available in your device." + e.fillInStackTrace()); }inputText = (EditText) findViewById(R.id.inputText);speakBtn = (Button) findViewById(R.id.speakBtn);inputText.setText("This is an example of speech synthesis.");speakBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubmTts.speak(inputText.getText().toString(), TextToSpeech.QUEUE_ADD, null);// 朗读输入框里的内容}});}



// 实现TTS初始化接口@Overridepublic void onInit(int status) {// TODO Auto-generated method stub// TTS Engine初始化完成if (status == TextToSpeech.SUCCESS) {int result = mTts.setLanguage(Locale.US);// 设置发音语言if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)// 判断语言是否可用{Log.v(TAG, "Language is not available");speakBtn.setEnabled(false);} else {mTts.speak("This is an example of speech synthesis.", TextToSpeech.QUEUE_ADD, null);speakBtn.setEnabled(true);}}}protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == REQ_TTS_STATUS_CHECK) {switch (resultCode) {case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:// 这个返回结果表明TTS Engine可以用{mTts = new TextToSpeech(this, this);Log.v(TAG, "TTS Engine is installed!");}break;case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:// 需要的语音数据已损坏case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:// 缺少需要语言的语音数据case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:// 缺少需要语言的发音数据{// 这三种情况都表明数据有错,重新下载安装需要的数据Log.v(TAG, "Need language stuff:" + resultCode);Intent dataIntent = new Intent();dataIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);startActivity(dataIntent);}break;case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:// 检查失败default:Log.v(TAG, "Got a failure. TTS apparently not available");break;}} else {// 其他Intent返回的结果}}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();if (mTts != null)// activity暂停时也停止TTS{mTts.stop();}}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();// 释放TTS的资源if (mTts != null)mTts.shutdown();}



<?xml version="1.0" encoding="utf-8"?>            



以上源码粘贴进入项目就没有问题了。但是这只是英文。而且对于手机的tts依赖很高,如果手机没有装tts,那么这个程序时不起作用的,无法发音。


所有,第二种,从网络寻找 离线“语音合成”,   大家都在说什么  讯飞XX ,百度XX等等,  百度不知道。至少讯飞亲自测试了。  就是一个收费的垃圾??

根本没有免费,而且还是在线的。如下。



于是继续找寻,暂时找到了一个离线的 ‘语音合成’demo,支持中文语音,但是发现一个问题,对于单词都读成一个个字母了。  暂时没有调整。 项目如下。

诸如此类的大量文章,手机如果没有tts,都是无法运行的(http://blog.csdn.net/ichliebephone/article/details/6373184#java)


我找到的,离线语音包的demo现在分享出来,共同研究。   下载地址:http://download.csdn.net/detail/flyingsir_zw/9453049


后续会继续更新。




























更多相关文章

  1. android典型代码系列(二)------sqlite数据库操作高级
  2. Android 使用数据库 SQlite
  3. 获取定位数据
  4. android获取网络数据
  5. Fragment与FragmentActivity间的数据通讯详细解决方案
  6. android之SQLite数据库insert操作
  7. 利用android自带的JSONObject解析json数据
  8. android 以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新
  9. android操作sqlite3的blob字段,显示数据中的图片

随机推荐

  1. Android短视频开发
  2. Android(安卓)RadioButton背景图片和文字
  3. 头条Android(安卓)屏幕适配
  4. Android获取keystore文件的信息
  5. Android(安卓)AsyncTask
  6. Android中RelativeLayout各个属性的含义
  7. 【Android】联通性 -- USB从属模式
  8. Android面试题整理
  9. android如何处理不同屏幕的适配
  10. Android中RelativeLayout各个属性介绍