Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Audio volume control (increase or decrease) in Java

Tags:

How do I increase the volume of an outgoing wav audio stream using Java? I'm having issues with various Java TTS engines and the output volume of the synthesized speech. Is there an API call or a doo-hickey.jar I can use to pump up the volume?

like image 302
Cliff Avatar asked Jun 04 '09 23:06

Cliff


2 Answers

If you're using the Java Sound API, you can set the volume with the MASTER_GAIN control.

import javax.sound.sampled.*;  AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(     new File("some_file.wav")); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); FloatControl gainControl =      (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN); gainControl.setValue(-10.0f); // Reduce volume by 10 decibels. clip.start(); 
like image 180
markusk Avatar answered Sep 17 '22 00:09

markusk


You can adjust volume using a GainControl, try something like this after you have opened the line

FloatControl volume= (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);  
like image 40
objects Avatar answered Sep 20 '22 00:09

objects