Android TTS speech synthesizer

匿名 (未验证) 提交于 2019-12-03 02:29:01

问题:

I want to know whether is there any way I can save the input to the android speaker.I mean save the current voice being played by the speaker.This I need because android TTS speech synthesizer doesn't work.So I cannot save the audio,I can just play it. Thanking you, Sreekanth

回答1:

Solved the issue by the following code (android TTS started working)

public class TextToSpeechActivity extends Activity implements OnInitListener {   private static TextToSpeech mTts;   private int MY_DATA_CHECK_CODE    =   0;   private Button mSpeakButton;  //String name;     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          mSpeakButton  = (Button)findViewById(R.id.btnSpeak);                 mSpeakButton.setEnabled(false);         mSpeakButton.setOnClickListener(new OnClickListener() {              @Override            public void onClick(View v) {             sayHello();            }         });          Intent checkTTSIntent = new Intent();         checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);         startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);       }       public void onInit(int status){   // TODO Auto-generated method stub   if (status == TextToSpeech.SUCCESS) {              // Set preferred language to US english.             // Note that a language may not be available, and the result will indicate this.             int result = mTts.setLanguage(Locale.US);             // Try this someday for some interesting results.             // int result mTts.setLanguage(Locale.FRANCE);             if (result == TextToSpeech.LANG_MISSING_DATA ||                 result == TextToSpeech.LANG_NOT_SUPPORTED) {                // Lanuage data is missing or the language is not supported.                 Log.e("TAG", "Language is not available.");             }             else              {                 // Check the documentation for other possible result codes.                 // For example, the language may be available for the locale,                 // but not for the specified country and variant.                  // The TTS engine has been successfully initialized.             }         } else {             // Initialization failed.             Log.e("TAG", "Could not initialize TextToSpeech.");         }   }      private void sayHello()      {                 String speakTextTxt                  = "Good morning,have a nice day";         HashMap<String, String> myHashRender = new HashMap<String, String>();         myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, speakTextTxt);          String exStoragePath                = Environment.getExternalStorageDirectory().getAbsolutePath();         File appTmpPath                     = new File(exStoragePath);         appTmpPath.mkdirs();         String tempFilename                 = "tmpaudio.wav";         String tempDestFile                 = appTmpPath.getAbsolutePath() + "/" + tempFilename;          mTts.synthesizeToFile(speakTextTxt, myHashRender, tempDestFile);     }   @Override  protected void onDestroy() {   // TODO Auto-generated method stub       super.onDestroy();          if (mTts != null) {              mTts.stop();              mTts.shutdown();           }   }   protected void onActivityResult(int requestCode, int resultCode, Intent data) {       if (requestCode == MY_DATA_CHECK_CODE) {            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { //the user has the necessary data - create the TTS                mTts  =  new TextToSpeech(this, this);                mSpeakButton.setEnabled(true);             }else {               //no data - install it now will no go to Google Play.                 Intent installTTSIntent = new Intent();                 installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);                 startActivity(installTTSIntent);            }       }  } } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!