Nov 27 1998 Darxus finds ircspeak by Gareth Watts, and envisions /dev/speech Dec 1 14:25:05 EST 1998 We were blessed with the presence of Kyle R. Burton, thanks to Jason. Dec 1 15:22:33 EST 1998 v0.1 22 minutes after he was told what we needed from /dev/speech, Kyle provided us with a working implementation. Dec 1 19:42:12 EST 1998 1st app using /dev/speech created by Darxus -- speech.irc Dec 2 07:50:26 EST 1998 v0.2 krb - changed from 'exec' to open pipe methodology Dec 3 22:39 EST 1998 v0.3 Darxus added example command lines for use with esdplay, wavplay, play, and wavp, in addition to the original for bplay. Dec 4 19:58:22 EST 1998 v0.4 Darxus added support for rsynth (ftp://ftp.cdrom.com/pub/linux/sunsite/apps/sound/speech/) which does not require a .wav player. Dec 4 23:02:40 EST 1998 v0.5 Darxus implemented command line switches -s and -p. Dec 5 00:00:35 EST 1998 v0.6 Darxus cleaned up command line switch code -- reduced by 18 lines. Dec 5 00:24:52 EST 1998 v0.7 Darxus - now supports all .wav players that can handle being executed as " " Dec 5 11:38:10 EST 1998 v0.8 Darxus - Festival support nolonger requires a .wav player. (this is broken -- quotes & parenthases cause errors) Dec 6 16:42:32 EST 1998 v0.9 Darxus - Can now use .wav player or broken mode w/out .wav player. Dec 6 18:45:27 EST 1998 v0.10 Darxus - support for using Festival w/out a wav player is almost, if not completely, unbroken. Dec 6 21:02:35 EST 1998 v0.11 Darxus - nolonger dependant on festival_client, uses socket connection to festival server. Nolonger supports .wav players. Dec 7 18:45:09 EST 1998 v0.12 Darxus - corrected error that caused rsynth support to fail if the festival server was not running (doh). Dec 8 20:13:47 EST 1998 v0.13 Darxus - can now modify "use_festival" function to choose tts_file (more secure) or SayText modes (faster). Was previously using SayText mode. v0.14 Kyle - this version lost to all mankind forever Aug 1 14:41:29 EDT 1999 v0.15 Darxus - automatically loads "festival --server" & when creating /dev/speech, makes it world writeable. Aug 1 15:21:58 EDT 1999 v0.16 Darxus - more proper handling of pause between executing "festival --server" & when it starts accepting connections. Aug 1 16:09:24 EDT 1999 v0.17 Darxus - corrected handling of absent command line options. Aug 1 19:11:45 EDT 1999 v0.18 Darxus - test for festival server before attempting to start it. Aug 1 16:13:06 PST 1999 v0.19 Michael - FIFO fixes, -q and -Q cmd line options added, and command line help added. Aug 1 19:37:37 EDT 1999 v0.20 Michael - open /dev/null readonly Aug 1 19:42:06 EDT 1999 v0.21 Darxus - verify not only that $synth isn't null, but actually valid. Aug 1 17:02:17 PST 1999 v0.22 Michael - now daemonizes by default, and cleaned up -Q Aug 1 21:46:34 EDT 1999 v0.23 Darxus - read /etc/speechdrc & ~/.speechdrc. Darxus v0.24 Aug 1 23:25:36 EDT 1999 made speechdrc files work. Oops. Darxus v0.25 Aug 3 20:40:16 EDT 1999 changed default festival function to tts_file, added "or die" for write to $handle Darxus v0.26 6102 Aug 3 21:47:16 EDT 1999 1) Moved code to connect to festival out to connect_to_festival function. 2) Allowed overriding of speechdrc file variables. Darxus v0.27 6259 Aug 3 22:01:15 EDT 1999 Fixed "Broken pipe" bug discovered by Michael. Cought SIGPIPE when connection to Festival breaks & call connect_to_festival. Darxus v0.28 6393 Aug 3 22:31:17 EDT 1999 1) Moved load_festival into connect_to_festival. 2) Changed or's to if/else's in connect_to_festival. Darxus v0.29 6247 Aug 3 22:51:15 EDT 1999 Eliminated redundant code in connect_to_festival. Michael v0.30 6771 Aug 5 00:53:13 EDT 1999 1) Changed default back to SayText. 2) -H (host) -P (port) flags 3) removed ".wave player =" 4) fixed SayText regex substitution 5) sanity checks for writes to $handle 6) added recv $handle -- fixed Broken pipe problem (festival wanted to be heard ? Darxus v0.31 6807 Aug 6 01:23:31 EDT 1999 Now can handle cat CHANGELOG > /dev/speech Darxus v0.32 7162 Aug 7 18:18:18 EDT 1999 -e flag & $use_esd speechdrc variable, to use the Enlightened Sound Daemon (esd) Darxus v0.34 7226 Aug 7 18:46:13 EDT 1999 $daemonize redirects output to $logfile instead of /dev/null. Darxus v0.35 7237 Aug 7 19:11:21 EDT 1999 Only open /dev/speech once (in speechd & catspeech). Changed catspeech to open /dev/speech for appending instead of overwriting. Darxus v0.36 7438 Aug 7 22:05:31 EDT 1999 Display more of the interaction between speechd & festival. Darxus v0.37 7622 Aug 7 23:59:12 EDT 1999 String substitution !! (w/ a little help from ircspeak). Ex: "31337" is converted to "eleet" before it's spoken. Darxus v0.38 7623 Aug 8 00:18:12 EDT 1999 Fixed case-insensitivity of string substitution. Darxus v0.39 7623 Aug 8 00:32:05 EDT 1999 Catch SIGHUP & reload /etc/speech.sub. Darxus v0.40 8365 Aug 8 04:13:18 EDT 1999 Cleaned up stuff -- handling of variables & comments. Darxus v0.41 8384 Aug 8 05:04:02 EDT 1999 Improved (unbroke?) rsynth I/O. Darxus v0.42 8385 Aug 8 10:31:07 EDT 1999 Open logfile to append instead of overwrite. Darxus v0.43 8678 Aug 8 10:49:27 EDT 1999 1) Strip single quotes so that "they're" is treated as 1 word 2) Convert "_" to " " so that "#twilight_zone_sex_with_yellow_orangeish_giant_sand_worms_from_mars" isn't read as "#twilight underscore zone_sex with_yellow underscore orangeish underscore giant underscore sand underscore worms underscore from underscore mars" (finally). Darxus v0.44 8606 Aug 8 11:19:58 EDT 1999 Merged strip of single quote & conversion of underscore to space. Darxus v0.45 8863 Aug 8 21:01:56 EDT 1999 Write PID to /var/run/speechd.pid, at Turmio's request Darxus v0.46 8865 Aug 8 21:21:13 EDT 1999 Write correct PID if daemonized, & changed pid file to speechd.pid (found by Turmio). v0.47... well, see next entry :) mortis@voicenet.com v0.48 11943 Mon Aug 9 13:02:22 EDT 1999 We lost a couple of incrementations between Darxus and I...0.48 should get around the confilcts... Created initial makefile Added pod documentation to speechd and catspeak. The make file now builds and installs man pages for catspeak and speechd. Implemented the functionality of the install in the makefile, and removed the install script. Implemented the functionality of the uninstall in the makefile, and removed the uninstall script. At line 181, I changed $path (which wasn't defined) to $fifo which is the correct behavior (I think). This was brought to light by the fact that I added -w to the #! line at the top of the scripts :) Made numerous other changes necessary so the script would run with the '-w' cmdline switch, and the 'use strict' directive. This mostly consisted of using 'my' where appropriate -- sorry if this breaks stuff, but its proper form to use '-w' and 'use strict'. This version lost the change from v0.45 to v0.46. Darxus v0.49 12483 Tue Aug 10 21:50:53 EDT 1999 Re-added fix that was done from v0.45 to v0.46 & lost in v0.48. 1st attempt by Darxus to use Kyle's make dist. Sweet. :) Darxus v0.50 12484 Tue Aug 10 22:09:17 EDT 1999 Strip single quote instead of converting it to a space. Darxus v0.51 Sun Aug 29 11:43:16 EDT 1999 Unbroke catspeech -- at some point "use strict" had been added w/out defining all the necessary variables. Darxus v0.52 12547 Sun Aug 29 21:40:39 EDT 1999 Added line to report # of speech substitutions during startup mortis@voicenet.com v0.53 Thu Nov 11 08:46:51 EST 1999 'make install' was failing unless /usr/local/man/man1 existed, fixed. Added '-s' to incver.pl to extract the version number (the regex that was used with awk in the Makefile wasn't very flexible). Added some comments to the makefile, and the 'make showver' target. Darxus v0.54 12684 Sun Nov 14 20:28:52 EDT 1999 Added support for "morse". This is a program that takes text input, and plays the corresponding morse code through the speaker. Modified use_rsynth a bit to accomidate it. mortis@voicenet.com v0.55 Thu Sep 13 14:32 EDT 2001 Patched for shell-expansion vulnerability reported on Bugtraq: http://www.securityfocus.com/archive/1/213553