【问题标题】:Android TTS speech synthesizerAndroid TTS 语音合成器
【发布时间】:2012-10-19 04:41:24
【问题描述】:

我想知道是否有任何方法可以将输入保存到 android 扬声器。我的意思是保存扬声器正在播放的当前声音。这是我需要的,因为 android TTS 语音合成器不起作用。所以我不能保存音频,我可以播放它。 感谢您, 斯里坎特

【问题讨论】:

    标签: android text-to-speech


    【解决方案1】:

    通过以下代码解决了问题(android TTS 开始工作)

    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);
               }
          }
     }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 2017-07-21
      • 2011-07-02
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多