This is done using JMF (Java Media Framework). Voice data is read from a file using `MediaLocator’. It is used as the data source for a `Processor’. The `Processor’ specifies and converts the audio data to a certain format and then output the converted data into a `DataSink’. The `DataSink’ then transfers the stream to its destination address and port.
Leave a CommentTag: Voice
When the web server receives a POST' message from the web page, it will first check whether the message is valid. If so, freeTTS‘ is used to generate a voice file and the file is saved in the `wav’ directory with pre-configured file name.
The voice generator looks as follows:
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
import com.sun.speech.freetts.audio.SingleFileAudioPlayer;
/**
*
* @author Daoyuan
*/
public class VoiceGenerator {
String message;
public VoiceGenerator(String message){
this.message = message;
}
public void generateVoiceFile(String filename){
Voice voice;
VoiceManager vm = VoiceManager.getInstance();
voice = vm.getVoice("kevin16");
voice.allocate();
String baseName = filename.substring(0, filename.toLowerCase().indexOf(".wav"));
SingleFileAudioPlayer sfap = new SingleFileAudioPlayer("wav/" + baseName, javax.sound.sampled.AudioFileFormat.Type.WAVE);
voice.setAudioPlayer(sfap);
voice.speak(message);
sfap.close();
voice.deallocate();
}
}
Leave a Comment