adroid TTS编程(文字转语音)
功能就是让手机读出来你写的字。TTS就是Text To Speech废话不说,直接上代码:
/* * 这个程序是将文字转换成语音 * 作者:追梦 * 时间:2014年6月6日 * 邮箱:pjkui@qq.com * */ package com.example.tts; import java.util.Locale; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.Engine; import android.speech.tts.TextToSpeech.OnInitListener; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity implements OnInitListener{ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub //super.onActivityResult(requestCode, resultCode, data); if(requestCode==REQ_TTS_STATUS_CHECK) { switch(resultCode) { case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS: mTts=new TextToSpeech(this,this); Log.v(TAG,"TTS is Installed!"); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA: break; case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA: break; case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME: //缺少需要语言的发音数据 Log.v(TAG,"Need language stuff:"+resultCode); Intent dataIntent = new Intent(); dataIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivity(dataIntent); break; case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL: //检查失败 break; default : Log.v(TAG, "Got a failure"); break; } } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mTts.shutdown(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); if(mTts!=null) { mTts.stop(); } } private EditText inputText=null; private Button speakBtn=null; private static final int REQ_TTS_STATUS_CHECK=0; private static final String TAG="TTS Demo"; private TextToSpeech mTts; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //检测TTS数据是否已经安装且可以使用 Intent checkIntent= new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent,REQ_TTS_STATUS_CHECK); inputText=(EditText) findViewById(R.id.inputText); speakBtn=(Button) findViewById(R.id.SpeakBtn); inputText.setText("This a example of speech synthesis"); speakBtn.setOnClickListener(new OnClickListener(){ public void onClick(View v) { mTts.speak(inputText.getText().toString(), TextToSpeech.QUEUE_ADD, null); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onInit(int status) { // TODO Auto-generated method stub if(status==TextToSpeech.SUCCESS) { int result=mTts.setLanguage(Locale.US); if(result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED)//判断语言是否可用 {//如果不支持 Log.v(TAG,"语言不可用"); speakBtn.setEnabled(false); } else { mTts.speak("this is an example of speech example", TextToSpeech.QUEUE_ADD, null); speakBtn.setEnabled(true); } } }//end of oninit() }
