2016-08-10 13 views
3

.wavファイルをmaryttsで作成しています。Java 128 kpbs wavファイルの書き方

.wavのkpbsは音声によって変化します。以下のコードで使用しています。すべてのオーディオファイルを128 kpbsで書きたいと思います。

私はプログラムのために、.wavファイルを生成する予定であり、128 kpbsしかサポートしていません。.wavファイルは常に128kpbsと書くことができますか?

これは私のコードです:

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 
+0

「WAVファイル」と「128 kbpsのは、」(MP3など)ではなくWAV、あなたが実際に非可逆圧縮形式のいくつかの王を望んでいないことを確認しています...本当に奇妙な、本当に聞こえます? –

+0

私はAsteriskで生成されたオーディオを使用します。私はアスタリスクの作業オーディオファイルをチェックし、それらはすべて128 kpbsのwavファイルです。私が生成したものは、256または768 kbpsのwavファイルであり、動作しません。 –

+2

私が尋ねたのは、非圧縮オーディオ(WAVなど)がビットレートではなく、ビット深度とサンプルレート(オーディオCD品質では16ビット/44.1KHzなど)の点で通常指定されていないからです。圧縮がないので、ビットレートは単に2つの乗算に過ぎません。例えば16ビット×44.1KHz = 704kbps(またはステレオの場合は1408kbps)。 768 kbpsのWAVファイルはほぼ確実に16ビット/ 48 KHzのモノラルです。おそらく16ビット/ 16KHzのモノラル256kbpsです。私はあなたがいつも8KHzにサンプリングレートを下げることを試みることができたと思う(http://stackoverflow.com/q/11421874/3801695参照)? –

答えて

4

私は私の質問への答えを見つけることができました。

誰かも同じことを尋ねることがありますので、私は解決策を挙げています。私は

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; 

私のwavファイルを望んでいたそして、このように私のコードを変更して、クラスの下で

は、私はこれらのグローバル変数を書きました。

私は必要なフォーマットを作成し、テキストからオーディオを生成し、自分のフォーマットでオーディオを変更して書きました。同じ文で

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 
+0

ゴールデンの答えthanks :) – GOXR3PLUS

関連する問題