Java 文本到语音保存到音频文件,静音(长时间暂停)

Java 文本到语音保存到音频文件,静音(长时间暂停),java,android,text-to-speech,google-text-to-speech,Java,Android,Text To Speech,Google Text To Speech,我想将文字语音保存为音频文件,暂停5秒静音。我可以将文字保存为mp3文件。我尝试过,但没有成功 将文本保存到mp3文件的代码。我需要添加静默5秒 HashMap<String, String> myHashRender = new HashMap(); String text="Name ,How are you.";//After Name i need to stop 5 seconds silent String destFileName = Environment.getEx

我想将文字语音保存为音频文件,暂停5秒静音。我可以将文字保存为mp3文件。我尝试过,但没有成功

将文本保存到mp3文件的代码。我需要添加静默5秒

HashMap<String, String> myHashRender = new HashMap();
String text="Name ,How are you.";//After Name i need to stop 5 seconds silent
String destFileName = Environment.getExternalStorageDirectory()+"/myfolder/tts.mp3";
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, text);
tts.synthesizeToFile(text, myHashRender, destFileName);
HashMap myHashRender=newhashmap();
String text=“Name,你好。”//在Name之后,我需要停止5秒钟的沉默
字符串destFileName=Environment.getExternalStorageDirectory()+“/myfolder/tts.mp3”;
myHashRender.put(TextToSpeech.Engine.KEY\u PARAM\u outrance\u ID,text);
synthezetofile(文本、myHashRender、destFileName);

Silent意味着您需要使用handler将音频暂停5秒,或者使用coumtdown定时器。为什么您需要在结束时暂停5秒?你可以让程序在播放后休眠5秒。我认为你需要在字符串中添加黑色空格。使用处理程序或倒计时是为了在我从另一个应用程序播放时将音频保存为静音@Piyush@SteveSmith我需要暂停,因为在此之后,我要添加另一个字符串进行保存。我需要长时间暂停保存音频。沉默意味着你需要使用handler将音频暂停5秒或使用coumtdown定时器为什么在结束时需要5秒的静音?你可以让程序在播放后休眠5秒。我认为你需要在字符串中添加黑色空格。使用处理程序或倒计时是为了在我从另一个应用程序播放时将音频保存为静音@Piyush@SteveSmith我需要暂停,因为在此之后,我将添加另一个字符串以保存。我需要以长时间暂停保存音频。谢谢重播.您要在哪里添加静默或长时间暂停的输入答案,现在检查。在需要暂停的地方,可以使用Handler进行暂停。我在文件末尾添加了5秒的暂停。TTS和录音机都具有启动、停止和暂停任务的功能。您好,谢谢您的回答。但它正在记录我周围的噪音,而不是文字到特定声音。我不想保存此噪音,我需要将文字音频保存到SpeechThank以便重播。您在哪里添加无声或长时间暂停的现场答案,现在检查。在需要暂停的地方,可以使用Handler进行暂停。我在文件末尾添加了5秒的暂停。TTS和录音机都具有启动、停止和暂停任务的功能。您好,谢谢您的回答。但它记录的是我周围的噪音,而不是文本到特定语音。我不想保存此噪音,我需要将文本音频保存为语音
   // TAKE PERMISSIONS RUNTIME TOO
   private void requestPermission() {
     ActivityCompat.requestPermissions(MainActivity.this, new 
       String[]{WRITE_EXTERNAL_STORAGE, RECORD_AUDIO}, RequestPermissionCode);
   }

   @Override
   public void onRequestPermissionsResult(int requestCode, 
      String permissions[], int[] grantResults) {
       switch (requestCode) {
        case RequestPermissionCode:
          if (grantResults.length> 0) {
           boolean StoragePermission = grantResults[0] == 
              PackageManager.PERMISSION_GRANTED;
           boolean RecordPermission = grantResults[1] == 
             PackageManager.PERMISSION_GRANTED;

        if (StoragePermission && RecordPermission) {
           Toast.makeText(MainActivity.this, "Permission Granted", 
              Toast.LENGTH_LONG).show();
        } else {
           Toast.makeText(MainActivity.this,"Permission 
              Denied",Toast.LENGTH_LONG).show();
        }
     }
     break;
   }
 }

  public boolean checkPermission() {
    int result = ContextCompat.checkSelfPermission(getApplicationContext(), 
     WRITE_EXTERNAL_STORAGE);
   int result1 = ContextCompat.checkSelfPermission(getApplicationContext(), 
     RECORD_AUDIO);
   return result == PackageManager.PERMISSION_GRANTED && 
      result1 == PackageManager.PERMISSION_GRANTED;
  }

   //Prepare RECORDER
    String outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.3gp";
    private MediaRecorder myAudioRecorder = new MediaRecorder();
    myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
    myAudioRecorder.setOutputFile(outputFile);


   // START THE RECORDING
       try {
                myAudioRecorder.prepare();
                myAudioRecorder.start();

                // START YOUR TEXT_TO_SPEECH HERE

            } catch (IllegalStateException ise) {
                // make something ...
            } catch (IOException ioe) {
                // make something
            }           
            Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_LONG).show();


           // NOW TO STOP OR TO SAVE USE BELOW CODE 
           // when TTS is done playing, the OnUtteranceCompletedListener() get called automatically, for this your activity needs to IMPLEMENTS OnUtteranceCompletedListener 
  // It's callback // After 5 sec of TTS's speaking, file have saved

  public void onUtteranceCompleted(String utteranceId) {
    Log.i(TAG, utteranceId); //utteranceId == "SOME MESSAGE"

    new Handler().postDelayed(new Runnable() {
       @Override
       public void run() {
          myAudioRecorder.stop();
          myAudioRecorder.release();
          myAudioRecorder = null;
          Toast.makeText(getApplicationContext(), "Audio Recorder successfully", Toast.LENGTH_LONG).show();                
       }
    }, 5000);

  }