android语音播报

  • 前阵子在写android语音播报对接的科大讯飞的sdk说实话科大讯飞的语音这块着实厉害,但无奈是要钱滴。所以自己用个体验版玩玩还成。
  • 然后另辟蹊径,然后用android自带的TextToSpeech写了一个支持中文哟。
  • 贴代码,简单的小dome
  • 首先在xml文件里写一个EditText和Button
  • 大概就是这样。
  • 然后就是后台实现了

  • publicclass MainActivity extendsActivity implements
  •         TextToSpeech.OnInitListener {
  •     privateTextToSpeech tts;
  •     privateButton btnSpeak;
  •     privateEditText txtText;
  •  
  •     @Override
  •     publicvoid onCreate(Bundle savedInstanceState) {
  •         super.onCreate(savedInstanceState);
  •         setContentView(R.layout.main);
  •  //实例化TextToSpeech
  •         tts = newTextToSpeech(this,this);
  •  
  •         btnSpeak = (Button) findViewById(R.id.btnSpeak);
  •  
  •         txtText = (EditText) findViewById(R.id.txtText);
  •  
  •         // button on click event
  •         btnSpeak.setOnClickListener(newView.OnClickListener() {
  •  
  •             @Override
  •             publicvoid onClick(View arg0) {
  •                 speakOut();
  •             }
  •  
  •         });
  •     }
  •  
  •     @Override
  •     publicvoid onDestroy() {
  •         // Don't forget to shutdown tts!
  •         if(tts != null) {
  •             tts.stop();
  1.             tts.shutdown();
  •         }
  •         super.onDestroy();
  •     }
  •  
  •     @Override
  •     publicvoid onInit(intstatus) {
  •  
  •         if(status == TextToSpeech.SUCCESS) {
  •  //这个是重点这里现在可以设置中文了
  •             intresult = tts.setLanguage(Locale.CHINA);
  •  
  •             if(result == TextToSpeech.LANG_MISSING_DATA
  •                     || result == TextToSpeech.LANG_NOT_SUPPORTED) {
  •                 Log.e("TTS","This Language is not supported");
  •             }else{
  •                 btnSpeak.setEnabled(true);
  •                 speakOut();
  •             }
  •  
  •         }else{
  •             Log.e("TTS","Initilization Failed!");
  •         }
  •  
  •     }
  •  //播报语音
  •     privatevoid speakOut() {
  •  
  •         String text = txtText.getText().toString();
  •  
  •         tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
  •     }
  • }
  • 注:不同的手机tts会有所不同


猜你喜欢

转载自blog.csdn.net/jia_you1/article/details/77461645