简体   繁体   English

Java如何编写128 kpbs的wav文件

[英]Java how to write 128 kpbs wav file

I'm creating .wav files using marytts. 我正在使用marytts创建.wav文件。

The kpbs of .wav files changing according to voice I'm using with the code below. .wav文件的kpbs根据我正在使用的语音改变,下面的代码。 I would like to write every audio file in 128 kpbs. 我想用128 kpbs写每个音频文件。

Due to the program I am planning to use generated .wav files and only supports 128 kpbs, is there a way to write the .wav files always 128kpbs? 由于我计划使用生成的.wav文件的程序,并且只支持128 kpbs,有没有办法写.wav文件总是128kpbs?

This is my code: 这是我的代码:

AudioInputStream audio = marytts.generateAudio(text); //generate audio from text
AudioSystem.write(audio, AudioFileFormat.Type.WAVE, new File("F:\\temp\\" + filename + ".wav"));//save audio as .wav to the static location with filename
return true;//function completed so return true

I managed to find an answer to my question. 我设法找到了我的问题的答案。

Maybe later someone also ask the same so I'm giving my solution. 也许以后有人也会问同样的问题,所以我给出了解决方案。

Under the class I wrote these global variables as I wanted my wav 在课程下我写了这些全局变量,因为我想要我的wav

static AudioFormat.Encoding defaultEncoding = AudioFormat.Encoding.PCM_SIGNED;
static float fDefaultSampleRate = 8000;
static int nDefaultSampleSizeInBits = 16;
static int nDefaultChannels = 1;
static int frameSize = 2;
static float frameRate= 8000;
static boolean bDefaultBigEndian = false;

And changed my code like this. 并改变了我的代码。

I created a format as I wanted, generated audio from text, changed audio in my format and wrote it. 我创建了一个我想要的格式,从文本生成音频,以我的格式更改音频并编写它。

AudioFormat defaultFormat = new AudioFormat(defaultEncoding,fDefaultSampleRate,nDefaultSampleSizeInBits,nDefaultChannels,frameSize,frameRate,bDefaultBigEndian);
AudioInputStream GeneratedAudio = marytts.generateAudio(text); //generate audio from text
AudioInputStream audio = AudioSystem.getAudioInputStream(defaultFormat, GeneratedAudio);
AudioSystem.write(audio, AudioFileFormat.Type.WAVE, new File("F:\\temp\\" + filename + ".wav"));//save audio as .wav to the static location with filename
return true;//function completed so return true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM