首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java如何写128kpbs的wav文件

Java如何写128kpbs的wav文件
EN

Stack Overflow用户
提问于 2016-08-10 20:02:54
回答 1查看 993关注 0票数 4

我正在使用marytts创建.wav文件。

.wav文件的kpb随声音变化,我使用下面的代码。我想写每一个音频文件在128kpbs。

由于我计划使用生成的.wav文件,并且只支持128kpbs,有没有办法写.wav文件总是128kpbs?

这是我的代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 20:47:15

我设法找到了我的问题的答案。

也许以后有人也会问同样的问题,所以我给出了我的解决方案。

在这个类下,我按照我想要的wav编写了这些全局变量

代码语言:javascript
复制
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;

并像这样修改了我的代码。

我随心所欲地创建了一种格式,从文本生成音频,将音频转换为我的格式并编写。

代码语言:javascript
复制
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
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38872931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档