TextToSpeak

作者:追风剑情 发布于:2016-8-1 15:36 分类:Android

  1. package com.test.androidtest;
  2.  
  3. import java.util.Locale;
  4. import android.app.Activity;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.speech.tts.TextToSpeech;
  8. import android.widget.Toast;
  9. /**
  10. * 文本转语音测试
  11. */
  12. public class TextToSpeakActivity extends Activity {
  13. int TTS_DATA_CHECK = 1;
  14. boolean ttsIsInit = false;
  15. TextToSpeech tts = null;
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.fragment_shap_gradient);
  21. //通过启动一个活动来检查TTS库
  22. Intent intent = new Intent(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
  23. startActivityForResult(intent, TTS_DATA_CHECK);
  24. }
  25. public void onActivityResult(int requestCode, int resultCode, Intent data){
  26. if(requestCode == TTS_DATA_CHECK){
  27. //如果已安装了语音数据
  28. if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
  29. Toast.makeText(this, "已安装了语音数据", Toast.LENGTH_SHORT);
  30. tts = new TextToSpeech(this, new TextToSpeech.OnInitListener(){
  31. @Override
  32. public void onInit(int status) {
  33. if(status == TextToSpeech.SUCCESS){
  34. Toast.makeText(TextToSpeakActivity.this, "语音数据初始化完毕", Toast.LENGTH_SHORT);
  35. ttsIsInit = true;
  36. //如果支持英式英语,则设置成英式英语。
  37. if(tts.isLanguageAvailable(Locale.UK) >= 0)
  38. tts.setLanguage(Locale.UK);
  39. tts.setPitch(0.8f);//设置音高
  40. tts.setSpeechRate(1.1f);//设置音速
  41. speak();//说话
  42. }
  43. }
  44. });
  45. }else{
  46. Toast.makeText(this, "安装语音数据", Toast.LENGTH_SHORT);
  47. //安装语音数据
  48. Intent intentVoice = new Intent(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
  49. startActivityForResult(intentVoice, TTS_DATA_CHECK);
  50. }
  51. }
  52. }
  53. private void speak(){
  54. if(tts != null && ttsIsInit){
  55. tts.speak("Hello, Android", TextToSpeech.QUEUE_ADD, null);
  56. }
  57. }
  58. @Override
  59. public void onDestroy(){
  60. if(null != tts){
  61. tts.stop();//停止
  62. tts.shutdown();//释放tts资源
  63. }
  64. super.onDestroy();
  65. }
  66. }

 

标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号