/*
These examples show the use of SwingOSC with the free
java text-to-speech synthesis package FreeTTS. To run, you
need to download FreeTTS from here:
http://sourceforge.net/projects/freetts
The jars jsapi.jar and freetts.jar have to be included in the
classpath when running SwingOSC. These jars are generated
when you run the script lib/jsapi.sh (on Linux/Mac OS) or
lib/jsapi.exe (on Windows). Copy the file speech.properties
into your home folder (~).
Here's an example of how to run SwingOSC with FreeTTS on
Mac OS X and Linux. It assumes that you have copied the
FreeTTS lib folder into the SwingOSC folder. In the terminal,
cd into the SwingOSC folder and type
java -cp build/SwingOSC.jar:lib/freetts.jar:lib/jsapi.jar de.sciss.swingosc.SwingOSC -u 57111 -L
*/
// Note that the whole lib folder of freetts has to stay intact.
// Unfortunately you cannot use '/classes' to add the jars at runtime
// because freetts will not find required resourced
// Speak to the default system output
(
g = SwingOSC.default;
g.sendBundle( nil,
[ '/local', \voice, '[', '/methodr', '[', '/method', 'com.sun.speech.freetts.VoiceManager', \getInstance, ']',
\getVoice, "kevin16", ']' ],
[ '/method', \voice, \allocate ]
);
)
g.sendMsg( '/method', \voice, \speak, "Thank you for giving me a voice. I'm so glad to say hello to this world." );
g.sendMsg( '/set', \voice, \rate, 200, \pitchShift, 2.0, \volume, 0.95 );
g.sendMsg( '/method', \voice, \speak, "The FreeTTS distribution includes a program that will allow you to test many of the features of FreeTTS" );
g.sendBundle( nil, [ '/method', \voice, \deallocate ], [ '/free', \voice ]);
// Render some speech to a sound file
(
g.sendBundle( nil,
[ '/local', \voice, '[', '/methodr', '[', '/method', 'com.sun.speech.freetts.VoiceManager', \getInstance, ']',
\getVoice, "kevin16", ']' ],
[ '/local', \file, '[', '/new', 'com.sun.speech.freetts.audio.SingleFileAudioPlayer', "~/Desktop/Schoko".absolutePath,
'[', '/field', 'javax.sound.sampled.AudioFileFormat$Type', \AIFF, ']', ']' ],
[ '/set', \voice, \rate, 50, \pitchShift, 0.5, \volume, 0.95, \audioPlayer, '[', "/ref", \file, ']' ],
[ '/method', \voice, \allocate ],
[ '/method', \voice, \speak, "Sets the dumpfile for this voice" ],
[ '/method', \file, \close ],
[ '/method', \voice, \deallocate ],
[ '/free', \voice, \file ]
);
)
// last mod : 30-jul-07 sciss