I use x-chat2 with uberscripts and festival plugin. Tired of the default festival voice, Today's effort was to change the voices ;). I found this to be the best available resource.
Here are the instructions in command format. You can just copy paste the following.
sudo apt-get install festival festlex-cmu festlex-poslex festlex-oald libestools1.2 unzip sudo apt-get install festvox-don festvox-rablpc16k festvox-kallpc16k festvox-kdlpc16 cd ~/tmp mkdir hts_tmp cd hts_tmp/ wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_awb_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_bdl_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_clb_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_rms_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_slt_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/2.0.1/festvox_nitech_us_jmk_arctic_hts-2.0.1.tar.bz2 wget -c http://hts.sp.nitech.ac.jp/archives/1.1.1/cmu_us_kal_com_hts.tar.gz wget -c http://hts.sp.nitech.ac.jp/archives/1.1.1/cstr_us_ked_timit_hts.tar.gz for t in `ls` ; do tar xvf $t ; done sudo mkdir -p /usr/share/festival/voices/us sudo mv lib/voices/us/* /usr/share/festival/voices/us/ sudo mv lib/hts.scm /usr/share/festival/hts.scm cd ../ rm -rf hts_tmp/
NOTE: I have chosen just the smallest of the voices. In the link I provided previously, MonkeeSage explains other voices.
Testing, Selecting and Configuring the default voice
Start up festival. Note that festival is a "lispy". () form each sentence. (quit) is to quit, (SayText "Hello World") causes festival to speak "Hello World".
Procedure for testing and selecting voice
- (voice.list) - list all voices available.
- (voice_
) - select as the current voice - (SayText "Hello World") - Say the text Hello World
- Repeat steps 2 and 3 till you find the voice which you are ok with.
- (quit) - to exit from festival
(voice.list) (voice_rab_diphone) (SayText "magnetic interferance from money/credit cards") (voice_ked_diphone) (SayText "waste water tank overflowed onto computer") (voice_kal_diphone) (SayText "nesting roaches shorted out the ether cable") (voice_nitech_us_jmk_arctic_hts) (SayText "need to wrap system in aluminum foil to fix problem") (voice_nitech_us_bdl_arctic_hts) (SayText "Groundskeepers stole the root password") (voice_nitech_us_rms_arctic_hts) (SayText "your keyboard's space bar is generating spurious keycodes") (voice_nitech_us_slt_arctic_hts) (SayText "Communications satellite used by the military for star wars") (voice_nitech_us_clb_arctic_hts) (SayText "We didn't pay the Internet bill and it's been cut off") (voice_nitech_us_awb_arctic_hts) (SayText "Your cat tried to eat the mouse.")(Disclaimer: all of the above wordings were "borrowed" from bofh.txt from uberscript)
Next step will be to create/edit your own ~/.festivalrc file using your fav editor(gedit, vim etc..). Mine is as follows:
(set! default_after_synth_hooksNote: you can change the voice_nitech_us_slt_artic_hts to which ever voice you choose. IRC: xchat configuration:
(list (lambda (utt) (utt.wave.rescale utt 1.6 t))))
(set! voice_default 'voice_nitech_us_slt_arctic_hts)
#!/usr/bin/perl # # An X-Chat interface to the Festival speech synthesis system # # Based on ircspeal.pl v0.2 by Gareth Watts 1998# # For more information # Festival http://www.cstr.ed.ac.uk/projects/festival/ # ircspeak.pl http://www.omnipotent.net/ircspeak/ # ################################### ## CONFIGURE THIS BIT! # I react only when any of the case insensitive regex is found in list below. @MyKeyWordsRegeXs=("NishanthMenon"); # I react only for the following events: #@HANDLERS=("PRIVMSG", "NOTICE", "TOPIC", "NICK", "JOIN", "PART", "QUIT", "INVITE"); @HANDLERS=("PRIVMSG", "INVITE"); # # Adjust this so it reflects the location of your festival executable $festival='/usr/bin/festival --pipe'; # Adjust this to your preferred Voice #$VOICE = "voice_don_diphone"; # A British voice. #$VOICE = "voice_rab_diphone"; # A muted British-esque voice #$VOICE = "voice_kal_diphone"; # An American male voice $VOICE = "voice_ked_diphone"; # A less mechanical American male voice # Smaller numbers = faster speech $SPEED = ".75"; ## YOU CAN STOP CONFIGURING! ################################### # # Commands # Enable speech using /speechon # Disable speech using /speechoff # # Uncomment for Debugging printing in IRC #$DEBUG = 1; # # Released WITHOUT WARRANTY under version 2 of the GNU Public License # See the end of this file for the full text # $MY_NAME = "xchat_speak.pl by SCK based on ircspeak.pl by Gareth Watts"; $VERSION = "0.3.2"; # Changelog: # 25/Oct/2002 # v0.03 released # + First code release by SCK # 08/Nov/2002 # v0.03.1 released # + Removed un-needed strippuunct sub routine that failed under Perl 5.8 # 09/Nov/2002 # v0.03.2 released # + Fixed return code issue with xchat. # IRC translator data below. Feel free to add to the list # Be sure it is is all lowercase, and escape any contractions %regex_convert = ( 'privmsg' => 'says', 'topic' => 'changes topic to', 'join' => 'has joined', 'part' => 'has left', 'quit' => 'has quit', 'invite' => 'has invited you to', ); %wordsub = ( '..'=> '\,', '...'=> '\,', '2nd'=> 'second', '31337'=> 'eleet', '56k'=> '56 k', ':)'=> 'smiles', ':-)'=> 'smiles', ':-p'=> 'sticks tongue out', ':>'=> 'smiles', ':p'=> 'sticks tongue out', ';)'=> 'winks', ';-)'=> 'winks', 'aamof'=> 'as a matter of fact', 'ad'=> 'add', 'adn'=> 'any day now', 'afaik'=> 'as far as i know', 'afair'=> 'as far as i remember', 'afj'=> 'april fool\'s joke', 'afk'=> 'away from the keyboard', 'asap'=> 'as soon as possible', 'at0mic_'=> 'atomic', 'atm'=> 'at the moment', 'awc'=> 'after while, crocodile', 'awgthtgtwta?'=> 'are we going to have to go through with this again?', 'ayt'=> 'are you there?', 'b4'=> 'before', 'b4n'=> 'bye for now', 'bak'=> 'back at keyboard', 'bakerw0rk'=> 'baker-work', 'bbfn'=> 'bye bye for now', 'bbiab'=> 'be back in a bit', 'bbiaf'=> 'be back in a few', 'bbialb'=> 'be back in a little bit', 'bbl'=> 'be back later', 'bcnu'=> 'be seeing you', 'bf'=> 'boy friend', 'brb'=> 'be right back', 'bta'=> 'but then again', 'btw'=> 'by the way', 'bye?'=> 'are you ready to say goodbye', 'bykt'=> 'but you knew that', 'byob'=> 'bring your own bottle', 'byom'=> 'bring your own mac', 'cmiiw'=> 'correct me if i\'m wrong', 'cu'=> 'see you', 'cul'=> 'see you later', 'cul8r'=> 'see you later', 'cula'=> 'see you later, alligator', 'cya'=> 'see ya', 'd/l'=> 'download', 'd00d'=> 'dood', 'diku?'=> 'do i know you?', 'dtrt'=> 'do the right thing', 'dvd'=> 'd v d', 'esad'=> 'eat shit and die', 'f2f'=> 'face to face', 'fcfs'=> 'first come, first served', 'fitb'=> 'fill in the blank', 'flyaway'=> 'fly away', 'foad'=> 'feck off and die', 'foaf'=> 'friend of a friend', 'freebsd'=> 'free bsd', 'fs'=> 'for sale', 'fubar'=> 'fecked up beyond all repair', 'fud'=> 'fear, uncertainty and doubt', 'fwiw'=> 'for what it\'s worth', 'fya'=> 'for your amusement', 'fyi'=> 'for your information', 'ga'=> 'go ahead', 'gal'=> 'get a life', 'gb'=> 'gigabytes', 'gd\&r'=> 'grinning, ducking and running', 'gd\&wvvf'=> 'grinning, ducking, and walking very, very fast', 'gf'=> 'girl friend', 'giwist'=> 'gee, i wish i\'d said that', 'gmta'=> 'great minds think alike', 'hhoj'=> 'ha ha only joking', 'hhok'=> 'ha ha only kidding', 'hhos'=> 'ha ha only serious', 'hmm'=> 'hurrmmm', 'hoyew'=> 'hanging on your every word', 'hp/ux'=> 'hp ux', 'hrm'=> 'herm', 'hth'=> 'hope that helps!', 'i8urdog'=> 'I ate your dog', 'iac'=> 'in any case', 'ianal'=> 'i am not a lawyer', 'iaw'=> 'in accordance with', 'ic'=> 'i see', 'identd'=> 'ident d', 'iirc'=> 'if i remember correctly', 'ijwtk'=> 'i just want to know', 'ijwts'=> 'i just want to say', 'ikwum'=> 'i know what you mean', 'ima'=> 'i might add', 'imao'=> 'in my arrogant opinion', 'imco'=> 'in my considered opinion', 'ime'=> 'in my experience', 'imho'=> 'in my humble opinion', 'imnsho'=> 'in my not so humble opinion', 'imo'=> 'in my opinion', 'inpo'=> 'in no particular order', 'irq'=> 'i r q', 'iow'=> 'in other words', 'ip'=> 'i p', 'ipx'=> 'i p x', 'irl'=> 'in real life', 'isdn'=> 'i s d n', 'iss'=> 'i\'m so sure', 'issygti'=> 'i\'m so sure you get the idea!', 'iswim'=> 'if you see what i mean', 'iwbni'=> 'it would be nice if', 'iyfeg'=> 'insert your favorite ethnic group', 'iyswim'=> 'if you see what i mean', 'jam'=> 'just a minute', 'jic'=> 'just in case', 'k3nny'=> 'kenny', 'kb'=> 'kilobytes', 'kibo'=> 'knowledge in, bullshit out', 'kwim'=> 'know what i mean?', 'kyfc'=> 'keep your fingers crossed', 'l8r'=> 'later', 'lin0x'=> 'linux', 'ljbf'=> 'let\'s just be friends', 'lol'=> 'laughing out loud', 'lshmba'=> 'laughing so hard my belly aches', 'lthtt'=> 'laughing too hard to type', 'ltns'=> 'long time no see', 'mb'=> 'megabytes', 'motas'=> 'member of the appropriate sex', 'motd'=> 'message of the day', 'motos'=> 'member of the opposite sex', 'motss'=> 'member of the same sex', 'msg'=> 'message', 'myob'=> 'mind your own business', 'n-tropy'=> 'entropy', 'nah'=> 'no', 'ne1'=> 'anyone', 'netbsd'=> 'net bsd', 'nhoh'=> 'never heard of him slash her', 'np'=> 'no problem', 'obo'=> 'or best offer', 'obtw'=> 'oh, by the way', 'oic'=> 'oh, i see', 'ok'=> 'o k', 'openbsd'=> 'open bsd', 'otf'=> 'on the floor', 'otfl'=> 'on the floor laughing', 'otoh'=> 'on the other hand', 'ott'=> 'over the top', 'pci'=> 'p c i', 'pmf'=> 'pardon my french', 'pmfbi'=> 'pardon me for butting in', 'pmfji'=> 'pardon me for jumping in', 'pmji'=> 'pardon my jumping in', 'pncah'=> 'please, no cursing allowed here', 'pnpisa'=> 'p n p i s a', 'po0p'=> 'poop', 'ppl'=> 'people', 'pstn'=> 'p s t n', 'ptmm'=> 'please tell me more', 'quazwork'=> 'quaz-work', 'r u there?'=> 'are you there?', 're'=> 'regreet', 'redhat'=> 'red hat', 'rehi'=> 'hi again', 'rl'=> 'real life', 'rotf'=> 'rolling on the floor', 'rotfl'=> 'rolling on the floor laughing', 'rotflol'=> 'rolling on the floor laughing out loud', 'rsn'=> 'real soon now', 'rsvp'=> 'please reply', 'rtbm'=> 'read the bloody manual', 'rtfaq'=> 'read the frequently asked questions', 'rtfm'=> 'read the fecking manual', 'rtm'=> 'read the manual', 'ryfm'=> 'read your friendly manual', 'scsi'=> 'scuzy', 'sec'=> 'wait a second', 'secs'=> 'seconds', 'snafu'=> 'situation normal, all fouled up', 'sol'=> 'shit out of luck', 'sos'=> 'help!', 'swim'=> 'see what i mean?', 'tafn'=> 'that\'s all for now', 'tanj'=> 'there ain\'t no justice', 'tanstaafl'=> 'there ain\'t no such thing as a free lunch', 'tcp'=> 't c p', 'thankx'=> 'thanks', 'thx'=> 'thanks', 'tia'=> 'thanks in advance', 'tic'=> 'tongue in cheek', 'tntl'=> 'trying not to laugh', 'tnx'=> 'thanks', 'tnxe6'=> 'thanks a million', 'tptb'=> 'the powers that be', 'ttbomk'=> 'to the best of my knowledge', 'ttfn'=> 'ta ta for now', 'ttksf'=> 'trying to keep a straight face', 'ttyl'=> 'talk to you later', 'tyvm'=> 'thank you very much', 'uok'=> 'are you ok?', 'w/o'=> 'without', 'wb'=> 'welcome back', 'wdyt'=> 'what do you think?', 'wibni'=> 'wouldn\t it be nice if', 'willg'=> 'will g', 'wrt'=> 'with regard to, or with respect to', 'wtb'=> 'want to buy', 'wtf'=> 'what the feck', 'wtg'=> 'way to go!', 'wtgp'=> 'want to go private?', 'wth'=> 'what the hell?', 'wygiswypf'=> 'what you get is what you pay for', 'xoxoxo'=> 'kisses and hugs', 'yaba'=> 'yet another bloody acronym', 'yaun'=> 'yet another unix nerd', 'ygti'=> 'you get the idea?', 'ygwypf'=> 'you get what you pay for', 'yiu'=> 'yes, i understand', 'yiwgp'=> 'yes, i will go private', 'ymmv'=> 'your mileage may vary', ); %spellcorrect = ( 'Ameria'=> 'America', 'I\"m'=> 'I\'m', 'I\;d'=> 'I\'d', 'I\;ll'=> 'I\'ll', 'UnitedStates'=> 'United States', 'abbout'=> 'about', 'abotu'=> 'about', 'abouta'=> 'about a', 'aboutit'=> 'about it', 'aboutthe'=> 'about the', 'abscence'=> 'absence', 'accesories'=> 'accessories', 'accidant'=> 'accident', 'accomodate'=> 'accommodate', 'accordingto'=> 'according to', 'accross'=> 'across', 'acheive'=> 'achieve', 'acheived'=> 'achieved', 'acheiving'=> 'achieving', 'acn'=> 'can', 'acommodate'=> 'accommodate', 'acomodate'=> 'accommodate', 'actualyl'=> 'actually', 'additinal'=> 'additional', 'addtional'=> 'additional', 'adequit'=> 'adequate', 'adequite'=> 'adequate', 'adn'=> 'and', 'advanage'=> 'advantage', 'affraid'=> 'afraid', 'afterthe'=> 'after the', 'againstt he'=> 'against the', 'aganist'=> 'against', 'aggresive'=> 'aggressive', 'agian'=> 'again', 'agreemeent'=> 'agreement', 'agreemeents'=> 'agreements', 'agreemnet'=> 'agreement', 'agreemnets'=> 'agreements', 'agressive'=> 'aggressive', 'ahppen'=> 'happen', 'ahve'=> 'have', 'allwasy'=> 'always', 'allwyas'=> 'always', 'almots'=> 'almost', 'almsot'=> 'almost', 'alomst'=> 'almost', 'alot'=> 'a lot', 'alraedy'=> 'already', 'alreayd'=> 'already', 'alreday'=> 'already', 'alwasy'=> 'always', 'alwats'=> 'always', 'alway'=> 'always', 'alwyas'=> 'always', 'amde'=> 'made', 'amke'=> 'make', 'amkes'=> 'makes', 'anbd'=> 'and', 'andone'=> 'and one', 'andt he'=> 'and the', 'andteh'=> 'and the', 'andthe'=> 'and the', 'anothe'=> 'another', 'anual'=> 'annual', 'apparant'=> 'apparent', 'apparrent'=> 'apparent', 'appearence'=> 'appearance', 'appeares'=> 'appears', 'applicaiton'=> 'application', 'applicaitons'=> 'applications', 'applyed'=> 'applied', 'appointiment'=> 'appointment', 'approrpiate'=> 'appropriate', 'approrpriate'=> 'appropriate', 'aquisition'=> 'acquisition', 'aquisitions'=> 'acquisitions', 'aren\;t'=> 'aren\'t', 'arguement'=> 'argument', 'arguements'=> 'arguments', 'arn\'t'=> 'aren\'t', 'arond'=> 'around', 'artical'=> 'article', 'articel'=> 'article', 'asdvertising'=> 'advertising', 'askt he'=> 'ask the', 'assistent'=> 'assistant', 'asthe'=> 'as the', 'atention'=> 'attention', 'atmospher'=> 'atmosphere', 'attentioin'=> 'attention', 'atthe'=> 'at the', 'audeince'=> 'audience', 'audiance'=> 'audience', 'availalbe'=> 'available', 'awya'=> 'away', 'aywa'=> 'away', 'bakc'=> 'back', 'balence'=> 'balance', 'ballance'=> 'balance', 'baout'=> 'about', 'bcak'=> 'back', 'beacuse'=> 'because', 'becasue'=> 'because', 'becaus'=> 'because', 'becausea'=> 'because a', 'becauseof'=> 'because of', 'becausethe'=> 'because the', 'becauseyou'=> 'because you', 'becomeing'=> 'becoming', 'becomming'=> 'becoming', 'becuase'=> 'because', 'becuse'=> 'because', 'befoer'=> 'before', 'beggining'=> 'beginning', 'begining'=> 'beginning', 'beginining'=> 'beginning', 'beleiev'=> 'believe', 'beleieve'=> 'believe', 'beleif'=> 'belief', 'beleive'=> 'believe', 'beleived'=> 'believed', 'beleives'=> 'believes', 'benifit'=> 'benefit', 'benifits'=> 'benefits', 'betwen'=> 'between', 'beutiful'=> 'beautiful', 'blase'=> 'blas\E9', 'boxs'=> 'boxes', 'brodcast'=> 'broadcast', 'butthe'=> 'but the', 'bve'=> 'be', 'byt he'=> 'by the', 'cafe'=> 'caf\E9', 'caharcter'=> 'character', 'calcullated'=> 'calculated', 'calulated'=> 'calculated', 'can\'t of been'=> 'can\'t have been', 'can\;t'=> 'can\'t', 'candidtae'=> 'candidate', 'candidtaes'=> 'candidates', 'catagory'=> 'category', 'categiory'=> 'category', 'certian'=> 'certain', 'challange'=> 'challenge', 'challanges'=> 'challenges', 'chaneg'=> 'change', 'chanegs'=> 'changes', 'changable'=> 'changeable', 'changeing'=> 'changing', 'changng'=> 'changing', 'charachter'=> 'character', 'charachters'=> 'characters', 'charactor'=> 'character', 'charecter'=> 'character', 'charector'=> 'character', 'cheif'=> 'chief', 'chekc'=> 'check', 'chnage'=> 'change', 'cieling'=> 'ceiling', 'circut'=> 'circuit', 'claer'=> 'clear', 'claered'=> 'cleared', 'claerly'=> 'clearly', 'cliant'=> 'client', 'cliche'=> 'clich\E9', 'cna'=> 'can', 'colection'=> 'collection', 'comanies'=> 'companies', 'comany'=> 'company', 'comapnies'=> 'companies', 'comapny'=> 'company', 'combintation'=> 'combination', 'comited'=> 'committed', 'comittee'=> 'committee', 'commadn'=> 'command', 'comming'=> 'coming', 'commitee'=> 'committee', 'committe'=> 'committee', 'committment'=> 'commitment', 'committments'=> 'commitments', 'committy'=> 'committee', 'comntain'=> 'contain', 'comntains'=> 'contains', 'compair'=> 'compare', 'company\;s'=> 'company\'s', 'compleated'=> 'completed', 'compleatly'=> 'completely', 'compleatness'=> 'completeness', 'completly'=> 'completely', 'completness'=> 'completeness', 'composate'=> 'composite', 'comtain'=> 'contain', 'comtains'=> 'contains', 'comunicate'=> 'communicate', 'comunity'=> 'community', 'condolances'=> 'condolences', 'conected'=> 'connected', 'conferance'=> 'conference', 'confirmmation'=> 'confirmation', 'considerit'=> 'considerate', 'considerite'=> 'considerate', 'consonent'=> 'consonant', 'conspiricy'=> 'conspiracy', 'consultent'=> 'consultant', 'convertable'=> 'convertible', 'cooparate'=> 'cooperate', 'cooporate'=> 'cooperate', 'corproation'=> 'corporation', 'corproations'=> 'corporations', 'corruptable'=> 'corruptible', 'cotten'=> 'cotton', 'coudl'=> 'could', 'coudln\'t'=> 'couldn\'t', 'coudn\'t'=> 'couldn\'t', 'could of been'=> 'could have been', 'could of had'=> 'could have had', 'couldn\;t'=> 'couldn\'t', 'couldnt'=> 'couldn\'t', 'couldthe'=> 'could the', 'cpoy'=> 'copy', 'creme'=> 'cr\E8me', 'ctaegory'=> 'category', 'cusotmer'=> 'customer', 'cusotmers'=> 'customers', 'cutsomer'=> 'customer', 'cutsomers'=> 'customers', 'cxan'=> 'can', 'danceing'=> 'dancing', 'dcument'=> 'document', 'deatils'=> 'details', 'decison'=> 'decision', 'decisons'=> 'decisions', 'decor'=> 'd\E9cor', 'defendent'=> 'defendant', 'definately'=> 'definitely', 'deja vu'=> 'd\E9j\E0 vu', 'deptartment'=> 'department', 'desicion'=> 'decision', 'desicions'=> 'decisions', 'desision'=> 'decision', 'desisions'=> 'decisions', 'detente'=> 'd\E9tente', 'develeoprs'=> 'developers', 'devellop'=> 'develop', 'develloped'=> 'developed', 'develloper'=> 'developer', 'devellopers'=> 'developers', 'develloping'=> 'developing', 'devellopment'=> 'development', 'devellopments'=> 'developments', 'devellops'=> 'develop', 'develope'=> 'develop', 'developement'=> 'development', 'developements'=> 'developments', 'developor'=> 'developer', 'developors'=> 'developers', 'develpment'=> 'development', 'diaplay'=> 'display', 'didint'=> 'didn\'t', 'didn\;t'=> 'didn\'t', 'didnot'=> 'did not', 'didnt'=> 'didn\'t', 'difefrent'=> 'different', 'diferences'=> 'differences', 'differance'=> 'difference', 'differances'=> 'differences', 'differant'=> 'different', 'differemt'=> 'different', 'differnt'=> 'different', 'diffrent'=> 'different', 'directer'=> 'director', 'directers'=> 'directors', 'directiosn'=> 'direction', 'disatisfied'=> 'dissatisfied', 'discoverd'=> 'discovered', 'disign'=> 'design', 'dispaly'=> 'display', 'dissonent'=> 'dissonant', 'distribusion'=> 'distribution', 'divsion'=> 'division', 'do\'nt'=> 'don\'t', 'docuement'=> 'documents', 'docuemnt'=> 'document', 'documetn'=> 'document', 'documnet'=> 'document', 'documnets'=> 'documents', 'doe snot'=> 'does not', 'doens\'t'=> 'doesn\'t', 'doese'=> 'does', 'doesn\;t'=> 'doesn\'t', 'doesnt'=> 'doesn\'t', 'doign'=> 'doing', 'doimg'=> 'doing', 'doind'=> 'doing', 'dollers'=> 'dollars', 'don\'t no'=> 'don\'t know', 'don\;t'=> 'don\'t', 'donig'=> 'doing', 'dont'=> 'don\'t', 'dosn\'t'=> 'doesn\'t', 'driveing'=> 'driving', 'drnik'=> 'drink', 'eclair'=> '\E9clair', 'efel'=> 'feel', 'effecient'=> 'efficient', 'efort'=> 'effort', 'eforts'=> 'efforts', 'ehr'=> 'her', 'eligable'=> 'eligible', 'embarass'=> 'embarrass', 'emigre'=> '\E9migr\E9', 'enought'=> 'enough', 'entree'=> 'entr\E9e', 'equippment'=> 'equipment', 'equivalant'=> 'equivalent', 'esle'=> 'else', 'especally'=> 'especially', 'especialyl'=> 'especially', 'espesially'=> 'especially', 'excellant'=> 'excellent', 'excercise'=> 'exercise', 'exchagne'=> 'exchange', 'exchagnes'=> 'exchanges', 'excitment'=> 'excitement', 'exhcange'=> 'exchange', 'exhcanges'=> 'exchanges', 'experiance'=> 'experience', 'experienc'=> 'experience', 'exprience'=> 'experience', 'exprienced'=> 'experienced', 'eyt'=> 'yet', 'facade'=> 'fa\E7ade', 'faeture'=> 'feature', 'faetures'=> 'features', 'familair'=> 'familiar', 'familar'=> 'familiar', 'familliar'=> 'familiar', 'fammiliar'=> 'familiar', 'feild'=> 'field', 'feilds'=> 'fields', 'fianlly'=> 'finally', 'fidn'=> 'find', 'finalyl'=> 'finally', 'firends'=> 'friends', 'firts'=> 'first', 'follwo'=> 'follow', 'follwoing'=> 'following', 'fora'=> 'for a', 'foriegn'=> 'foreign', 'forthe'=> 'for the', 'forwrd'=> 'forward', 'forwrds'=> 'forwards', 'foudn'=> 'found', 'foward'=> 'forward', 'fowards'=> 'forwards', 'freind'=> 'friend', 'freindly'=> 'friendly', 'freinds'=> 'friends', 'frmo'=> 'from', 'fromt he'=> 'from the', 'fromthe'=> 'from the', 'furneral'=> 'funeral', 'fwe'=> 'few', 'garantee'=> 'guarantee', 'gaurd'=> 'guard', 'gemeral'=> 'general', 'gerat'=> 'great', 'geting'=> 'getting', 'gettin'=> 'getting', 'gievn'=> 'given', 'giveing'=> 'giving', 'gloabl'=> 'global', 'goign'=> 'going', 'gonig'=> 'going', 'govenment'=> 'government', 'goverment'=> 'government', 'gruop'=> 'group', 'gruops'=> 'groups', 'grwo'=> 'grow', 'guidlines'=> 'guidelines', 'hadbeen'=> 'had been', 'hadn\;t'=> 'hadn\'t', 'haev'=> 'have', 'hapen'=> 'happen', 'hapened'=> 'happened', 'hapening'=> 'happening', 'hapens'=> 'happens', 'happend'=> 'happened', 'hasbeen'=> 'has been', 'hasn\;t'=> 'hasn\'t', 'hasnt'=> 'hasn\'t', 'havebeen'=> 'have been', 'haveing'=> 'having', 'haven\;t'=> 'haven\'t', 'hda'=> 'had', 'he\;ll'=> 'he\'ll', 'hearign'=> 'hearing', 'helpfull'=> 'helpful', 'herat'=> 'heart', 'here\;s'=> 'here\'s', 'hesaid'=> 'he said', 'hewas'=> 'he was', 'hge'=> 'he', 'hismelf'=> 'himself', 'hlep'=> 'help', 'hsa'=> 'has', 'hsi'=> 'his', 'hte'=> 'the', 'htere'=> 'there', 'htese'=> 'these', 'htey'=> 'they', 'hting'=> 'thing', 'htink'=> 'think', 'htis'=> 'this', 'hvae'=> 'have', 'hvaing'=> 'having', 'hwich'=> 'which', 'i snot'=> 'is not', 'idae'=> 'idea', 'idaes'=> 'ideas', 'identofy'=> 'identify', 'ihs'=> 'his', 'iits the'=> 'it\'s the', 'imediate'=> 'immediate', 'imediatly'=> 'immediately', 'immediatly'=> 'immediately', 'importent'=> 'important', 'importnat'=> 'important', 'impossable'=> 'impossible', 'improvemnt'=> 'improvement', 'improvment'=> 'improvement', 'includ'=> 'include', 'indecate'=> 'indicate', 'indenpendence'=> 'independence', 'indenpendent'=> 'independent', 'indepedent'=> 'independent', 'independance'=> 'independence', 'independant'=> 'independent', 'influance'=> 'influence', 'infomation'=> 'information', 'informatoin'=> 'information', 'inital'=> 'initial', 'instaleld'=> 'installed', 'insted'=> 'instead', 'insurence'=> 'insurance', 'int he'=> 'in the', 'inteh'=> 'in the', 'interum'=> 'interim', 'inthe'=> 'in the', 'inwhich'=> 'in which', 'isn\;t'=> 'isn\'t', 'isthe'=> 'is the', 'it snot'=> 'it\'s not', 'it\' snot'=> 'it\'s not', 'it\;ll'=> 'it\'ll', 'it\;s'=> 'it\'s', 'itis'=> 'it is', 'ititial'=> 'initial', 'itnerest'=> 'interest', 'itnerested'=> 'interested', 'itneresting'=> 'interesting', 'itnerests'=> 'interests', 'its a'=> 'it\'s a', 'its the'=> 'it\'s the', 'itwas'=> 'it was', 'iwll'=> 'will', 'iwth'=> 'with', 'jsut'=> 'just', 'jugment'=> 'judgment', 'knowldge'=> 'knowledge', 'knowlege'=> 'knowledge', 'knwo'=> 'know', 'knwon'=> 'known', 'knwos'=> 'knows', 'konw'=> 'know', 'konwn'=> 'known', 'konws'=> 'knows', 'labratory'=> 'laboratory', 'lastyear'=> 'last year', 'learnign'=> 'learning', 'lenght'=> 'length', 'let\'s him'=> 'lets him', 'let\'s it'=> 'lets it', 'let\;s'=> 'let\'s', 'levle'=> 'level', 'libary'=> 'library', 'librarry'=> 'library', 'librery'=> 'library', 'liek'=> 'like', 'liekd'=> 'liked', 'lieutenent'=> 'lieutenant', 'liev'=> 'live', 'likly'=> 'likely', 'lisense'=> 'license', 'littel'=> 'little', 'litttle'=> 'little', 'liuke'=> 'like', 'liveing'=> 'living', 'loev'=> 'love', 'lonly'=> 'lonely', 'lookign'=> 'looking', 'maintenence'=> 'maintenance', 'makeing'=> 'making', 'managment'=> 'management', 'mantain'=> 'maintain', 'marraige'=> 'marriage', 'may of been'=> 'may have been', 'may of had'=> 'may have had', 'memeber'=> 'member', 'merchent'=> 'merchant', 'mesage'=> 'message', 'mesages'=> 'messages', 'might of been'=> 'might have been', 'might of had'=> 'might have had', 'mispell'=> 'misspell', 'mispelling'=> 'misspelling', 'mispellings'=> 'misspellings', 'mkae'=> 'make', 'mkaes'=> 'makes', 'mkaing'=> 'making', 'moeny'=> 'money', 'morgage'=> 'mortgage', 'mroe'=> 'more', 'msot'=> 'most', 'must of been'=> 'must have been', 'must of had'=> 'must have had', 'mysefl'=> 'myself', 'myu'=> 'my', 'naive'=> 'na\EFve', 'necassarily'=> 'necessarily', 'necassary'=> 'necessary', 'neccessarily'=> 'necessarily', 'neccessary'=> 'necessary', 'necesarily'=> 'necessarily', 'necesary'=> 'necessary', 'negotiaing'=> 'negotiating', 'nkow'=> 'know', 'nothign'=> 'nothing', 'nver'=> 'never', 'nwe'=> 'new', 'nwo'=> 'now', 'obediant'=> 'obedient', 'ocasion'=> 'occasion', 'occassion'=> 'occasion', 'occured'=> 'occurred', 'occurence'=> 'occurrence', 'occurrance'=> 'occurrence', 'ocur'=> 'occur', 'oeprator'=> 'operator', 'ofits'=> 'of its', 'oft he'=> 'of the', 'ofthe'=> 'of the', 'oging'=> 'going', 'ohter'=> 'other', 'omre'=> 'more', 'oneof'=> 'one of', 'onepoint'=> 'one point', 'ont he'=> 'on the', 'onthe'=> 'on the', 'onyl'=> 'only', 'oppasite'=> 'opposite', 'opperation'=> 'operation', 'oppertunity'=> 'opportunity', 'opposate'=> 'opposite', 'opposible'=> 'opposable', 'opposit'=> 'opposite', 'oppotunities'=> 'opportunities', 'oppotunity'=> 'opportunity', 'orginization'=> 'organization', 'orginized'=> 'organized', 'otehr'=> 'other', 'otu'=> 'out', 'outof'=> 'out of', 'overthe'=> 'over the', 'owrk'=> 'work', 'owuld'=> 'would', 'oxident'=> 'oxidant', 'papaer'=> 'paper', 'parliment'=> 'parliament', 'partof'=> 'part of', 'paymetn'=> 'payment', 'paymetns'=> 'payments', 'pciture'=> 'picture', 'peice'=> 'piece', 'peices'=> 'pieces', 'peolpe'=> 'people', 'peopel'=> 'people', 'percentof'=> 'percent of', 'percentto'=> 'percent to', 'performence'=> 'performance', 'perhasp'=> 'perhaps', 'perhpas'=> 'perhaps', 'permanant'=> 'permanent', 'perminent'=> 'permanent', 'personalyl'=> 'personally', 'pleasent'=> 'pleasant', 'poeple'=> 'people', 'porblem'=> 'problem', 'porblems'=> 'problems', 'porvide'=> 'provide', 'possable'=> 'possible', 'postition'=> 'position', 'potentialy'=> 'potentially', 'pregnent'=> 'pregnant', 'presance'=> 'presence', 'probelm'=> 'problem', 'probelms'=> 'problems', 'prominant'=> 'prominent', 'protege'=> 'prot\E9g\E9', 'protoge'=> 'prot\E9g\E9', 'psoition'=> 'position', 'ptogress'=> 'progress', 'puting'=> 'putting', 'pwoer'=> 'power', 'quater'=> 'quarter', 'quaters'=> 'quarters', 'quesion'=> 'question', 'quesions'=> 'questions', 'questioms'=> 'questions', 'questiosn'=> 'questions', 'questoin'=> 'question', 'quetion'=> 'question', 'quetions'=> 'questions', 'realyl'=> 'really', 'reccomend'=> 'recommend', 'reccommend'=> 'recommend', 'receieve'=> 'receive', 'recieve'=> 'receive', 'recieved'=> 'received', 'recieving'=> 'receiving', 'recomend'=> 'recommend', 'recomendation'=> 'recommendation', 'recomendations'=> 'recommendations', 'recomended'=> 'recommended', 'reconize'=> 'recognize', 'recrod'=> 'record', 'religous'=> 'religious', 'reluctent'=> 'reluctant', 'remeber'=> 'remember', 'reommend'=> 'recommend', 'representativs'=> 'representatives', 'representives'=> 'representatives', 'represetned'=> 'represented', 'represnt'=> 'represent', 'reserach'=> 'research', 'resollution'=> 'resolution', 'resorces'=> 'resources', 'respomd'=> 'respond', 'respomse'=> 'response', 'responce'=> 'response', 'responsability'=> 'responsibility', 'responsable'=> 'responsible', 'responsibile'=> 'responsible', 'responsiblity'=> 'responsibility', 'restaraunt'=> 'restaurant', 'restuarant'=> 'restaurant', 'reult'=> 'result', 'reveiw'=> 'review', 'reveiwing'=> 'reviewing', 'rumers'=> 'rumors', 'rwite'=> 'write', 'rythm'=> 'rhythm', 'saidhe'=> 'said he', 'saidit'=> 'said it', 'saidt he'=> 'said the', 'saidthat'=> 'said that', 'saidthe'=> 'said the', 'scedule'=> 'schedule', 'sceduled'=> 'scheduled', 'seance'=> 's\E9ance', 'secratary'=> 'secretary', 'sectino'=> 'section', 'seh'=> 'she', 'selectoin'=> 'selection', 'sentance'=> 'sentence', 'separeate'=> 'separate', 'seperate'=> 'separate', 'sercumstances'=> 'circumstances', 'shcool'=> 'school', 'she\;ll'=> 'she\'ll', 'shesaid'=> 'she said', 'shineing'=> 'shining', 'shiped'=> 'shipped', 'shoudl'=> 'should', 'shoudln\'t'=> 'shouldn\'t', 'should of been'=> 'should have been', 'should of had'=> 'should have had', 'shouldent'=> 'shouldn\'t', 'shouldn\;t'=> 'shouldn\'t', 'shouldnt'=> 'shouldn\'t', 'showinf'=> 'showing', 'signifacnt'=> 'significant', 'simalar'=> 'similar', 'similiar'=> 'similar', 'simpyl'=> 'simply', 'sincerly'=> 'sincerely', 'sitll'=> 'still', 'smae'=> 'same', 'smoe'=> 'some', 'soem'=> 'some', 'sohw'=> 'show', 'soical'=> 'social', 'somethign'=> 'something', 'someting'=> 'something', 'somewaht'=> 'somewhat', 'somthing'=> 'something', 'somtimes'=> 'sometimes', 'sot hat'=> 'so that', 'soudn'=> 'sound', 'soudns'=> 'sounds', 'speach'=> 'speech', 'specificaly'=> 'specifically', 'specificalyl'=> 'specifically', 'statment'=> 'statement', 'statments'=> 'statements', 'stnad'=> 'stand', 'stopry'=> 'story', 'stoyr'=> 'story', 'stpo'=> 'stop', 'strentgh'=> 'strength', 'stroy'=> 'story', 'struggel'=> 'struggle', 'strugle'=> 'struggle', 'studnet'=> 'student', 'successfull'=> 'successful', 'successfuly'=> 'successfully', 'successfulyl'=> 'successfully', 'sucess'=> 'success', 'sucessfull'=> 'successful', 'sufficiant'=> 'sufficient', 'suposed'=> 'supposed', 'suppossed'=> 'supposed', 'suprise'=> 'surprise', 'suprised'=> 'surprised', 'swiming'=> 'swimming', 'tahn'=> 'than', 'taht'=> 'that', 'talekd'=> 'talked', 'talkign'=> 'talking', 'tath'=> 'that', 'tecnical'=> 'technical', 'teh'=> 'the', 'tehy'=> 'they', 'tellt he'=> 'tell the', 'termoil'=> 'turmoil', 'tghe'=> 'the', 'tghis'=> 'this', 'thansk'=> 'thanks', 'thats'=> 'that\'s', 'thatt he'=> 'that the', 'thatthe'=> 'that the', 'thecompany'=> 'the company', 'thefirst'=> 'the first', 'thegovernment'=> 'the government', 'their are'=> 'there are', 'their is'=> 'there is', 'themself'=> 'themselves', 'themselfs'=> 'themselves', 'thenew'=> 'the new', 'there\'s is'=> 'theirs is', 'theri'=> 'their', 'thesame'=> 'the same', 'thetwo'=> 'the two', 'they\'re are'=> 'there are', 'they\'re is'=> 'there is', 'they\;l'=> 'they\'ll', 'they\;ll'=> 'they\'ll', 'they\;r'=> 'they\'re', 'they\;re'=> 'they\'re', 'they\;v'=> 'they\'ve', 'they\;ve'=> 'they\'ve', 'theyll'=> 'they\'ll', 'theyve'=> 'they\'ve', 'thgat'=> 'that', 'thge'=> 'the', 'thier'=> 'their', 'thigsn'=> 'things', 'thisyear'=> 'this year', 'thna'=> 'than', 'thne'=> 'then', 'thnig'=> 'thing', 'thnigs'=> 'things', 'threatend'=> 'threatened', 'thsi'=> 'this', 'thsoe'=> 'those', 'thta'=> 'that', 'tihs'=> 'this', 'timne'=> 'time', 'tiogether'=> 'together', 'tje'=> 'the', 'tjhe'=> 'the', 'tkae'=> 'take', 'tkaes'=> 'takes', 'tkaing'=> 'taking', 'tlaking'=> 'talking', 'todya'=> 'today', 'togehter'=> 'together', 'toldt he'=> 'told the', 'tomorow'=> 'tomorrow', 'tongiht'=> 'tonight', 'tonihgt'=> 'tonight', 'totaly'=> 'totally', 'totalyl'=> 'totally', 'tothe'=> 'to the', 'towrad'=> 'toward', 'traditionalyl'=> 'traditionally', 'transfered'=> 'transferred', 'truely'=> 'truly', 'truley'=> 'truly', 'tryed'=> 'tried', 'tthe'=> 'the', 'tyhat'=> 'that', 'tyhe'=> 'the', 'udnerstand'=> 'understand', 'understnad'=> 'understand', 'undert he'=> 'under the', 'unliek'=> 'unlike', 'unpleasently'=> 'unpleasantly', 'untilll'=> 'until', 'useing'=> 'using', 'usualyl'=> 'usually', 'veyr'=> 'very', 'virtualyl'=> 'virtually', 'vis-a-vis'=> 'vis-\E0-vis', 'vrey'=> 'very', 'vulnerible'=> 'vulnerable', 'wa snot'=> 'was not', 'waht'=> 'what', 'warrent'=> 'warrant', 'wasnt'=> 'wasn\'t', 'watn'=> 'want', 'we\;d'=> 'we\'d', 'we\;ll'=> 'we\'ll', 'we\;re'=> 'we\'re', 'we\;ve'=> 'we\'ve', 'wehn'=> 'when', 'wern\'t'=> 'weren\'t', 'werre'=> 'were', 'what\;s'=> 'what\'s', 'whcih'=> 'which', 'whent he'=> 'when the', 'where\;s'=> 'where\'s', 'wherre'=> 'where', 'whic'=> 'which', 'whicht he'=> 'which the', 'whihc'=> 'which', 'who\;s'=> 'who\'s', 'who\;ve'=> 'who\'ve', 'whta'=> 'what', 'wief'=> 'wife', 'wierd'=> 'weird', 'wihch'=> 'which', 'wiht'=> 'with', 'will of been'=> 'will have been', 'will of had'=> 'will have had', 'willbe'=> 'will be', 'windoes'=> 'windows', 'witha'=> 'with a', 'withe'=> 'with', 'witht he'=> 'with the', 'withthe'=> 'with the', 'wiull'=> 'will', 'wnat'=> 'want', 'wnated'=> 'wanted', 'wnats'=> 'wants', 'wo\'nt'=> 'won\'t', 'woh'=> 'who', 'wohle'=> 'whole', 'wokr'=> 'work', 'won\;t'=> 'won\'t', 'woudl'=> 'would', 'woudln\'t'=> 'wouldn\'t', 'would of been'=> 'would have been', 'would of had'=> 'would have had', 'wouldbe'=> 'would be', 'wouldn\;t'=> 'wouldn\'t', 'wouldnt'=> 'wouldn\'t', 'wriet'=> 'write', 'writting'=> 'writing', 'wrod'=> 'word', 'wroet'=> 'wrote', 'wroking'=> 'working', 'wtih'=> 'with', 'wuould'=> 'would', 'wya'=> 'way', 'yera'=> 'year', 'yeras'=> 'years', 'yersa'=> 'years', 'yoiu'=> 'you', 'you\'re own'=> 'your own', 'you\;d'=> 'you\'d', 'you\;re'=> 'you\'re', 'youare'=> 'you are', 'your a'=> 'you\'re a', 'your an'=> 'you\'re an', 'your her'=> 'you\'re her', 'your here'=> 'you\'re here', 'your his'=> 'you\'re his', 'your my'=> 'you\'re my', 'your the'=> 'you\'re the', 'your their'=> 'you\'re their', 'your your'=> 'you\'re your', 'youve'=> 'you\'ve', 'ytou'=> 'you', 'yuo'=> 'you', 'yuor'=> 'your', ); IRC::register ($MY_NAME, $VERSION, "cmd_speechoff", ""); IRC::print("*** \0038,2$MY_NAME text->speech module $VERSION loaded \003"); IRC::add_command_handler("speechon", cmd_speechon); IRC::add_command_handler("speechoff", cmd_speechoff); $lastthingsaid = ""; sub spch_substitute { my $linein=$_[0]; my ($sub,$lineout); foreach my $word (split(' ',$linein)) { # $sub=$wordsub{$word}; $sub=$wordsub{$word} unless $sub; if ($sub) { $lineout.=" $sub "; } else { $lineout.=" $word "; } undef($sub); } return($lineout); } sub spch_spellcorrect { my $linein=$_[0]; my ($sub,$lineout); foreach my $word (split(' ',$linein)) { $sub=$spellcorrect{$word}; $sub=$spellcorrect{$word} unless $sub; if ($sub) { $lineout.=" $sub "; } else { $lineout.=" $word "; } } return($lineout); } sub cmd_speechon { if (!defined($speech_pipe)) { open(SPEECH,"|$festival 2>&1 >/dev/null") || do { &print("*E* Error opening pipe to $festival"); return; }; $fhcp=select(SPEECH); $|=1; select($fhcp); $speech_pipe=1; IRC::print("*** Speech activated!"); $DEBUG && IRC::add_message_handler("NOTICE","speak"); for my $handle ( @HANDLERS ) { IRC::add_message_handler($handle, "speak"); } print SPEECH "($VOICE)\n"; print SPEECH "(Parameter.set 'Duration_Stretch $SPEED)\n"; &speak("Speech activated"); return(1); } } sub cmd_speechoff { defined($speech_pipe) || return; IRC::print("*** Speech disabled"); &speak("Speech disabled"); undef($speech_pipe); close(SPEECH); return(1); } sub speak { defined($speech_pipe) || return; my $speakline; my $talk = 0; $speakline=$_[0]; $speakline = lc($speakline); # parse the privmsg if ($DEBUG) { IRC::print("incoming: $speakline\n"); } if ($speakline eq $lastthingsaid) { if ($DEBUG) {IRC::print("Repeating last line\n");} return 0; } $lastthingsaid = $speakline; # Cleanup text foreach my $convert (keys %regex_convert) { if ($speakline=~/^:(.*)!.*$convert[^:]*:(.*)/) { $speakline = "$1 $regex_convert{$convert} $2"; if ($DEBUG) {IRC::print("event_match $convert\n,");} break; } } if ($DEBUG) {if ($speakline=~/.*notice[^:]*:(.*)/) { $speakline="Server says $1"; $talk = 1; }} # Find match for my $regex ( @MyKeyWordsRegeXs ) { if ( $speakline=~ /$regex/i) { $talk = 1; if ($DEBUG) {IRC::print("Match found for $regex\n");} break; } } if ($talk == 0) { if ($DEBUG) {IRC::print("No Match found for '$speakline' - no words\n");} return 0; } $speakline=&spch_substitute($speakline); $speakline=&spch_spellcorrect($speakline); $speakline =~ tr/a-z0-9,.<>?'@+=&%$\A3!\/: ]//cd; $speakline =~ s/ +/ /g; # Collapse spaces $speakline =~ s/\.{2,}/ /g; # Collapse multiple dots $DEBUG && IRC::print("Will say '$speakline'\n\$1 = $speaker \$2 = $message talk=$talk\n"); print SPEECH "(SayText \"$speakline\")\n"; return 0; } IRC::command("/speechon"); #END OF PROGRAM ###################################################################################### ## LICENSE INFORMATION # # GNU GENERAL PUBLIC LICENSE # Version 2, June 1991 # # Copyright (C) 1989, 1991 Free Software Foundation, Inc. # 675 Mass Ave, Cambridge, MA 02139, USA # Everyone is permitted to copy and distribute verbatim copies # of this license document, but changing it is not allowed. # # Preamble # # The licenses for most software are designed to take away your # freedom to share and change it. By contrast, the GNU General Public # License is intended to guarantee your freedom to share and change free # software--to make sure the software is free for all its users. This # General Public License applies to most of the Free Software # Foundation's software and to any other program whose authors commit to # using it. (Some other Free Software Foundation software is covered by # the GNU Library General Public License instead.) You can apply it to # your programs, too. # # When we speak of free software, we are referring to freedom, not # price. Our General Public Licenses are designed to make sure that you # have the freedom to distribute copies of free software (and charge for # this service if you wish), that you receive source code or can get it # if you want it, that you can change the software or use pieces of it # in new free programs; and that you know you can do these things. # # To protect your rights, we need to make restrictions that forbid # anyone to deny you these rights or to ask you to surrender the rights. # These restrictions translate to certain responsibilities for you if you # distribute copies of the software, or if you modify it. # # For example, if you distribute copies of such a program, whether # gratis or for a fee, you must give the recipients all the rights that # you have. You must make sure that they, too, receive or can get the # source code. And you must show them these terms so they know their # rights. # # We protect your rights with two steps: (1) copyright the software, and # (2) offer you this license which gives you legal permission to copy, # distribute and/or modify the software. # # Also, for each author's protection and ours, we want to make certain # that everyone understands that there is no warranty for this free # software. If the software is modified by someone else and passed on, we # want its recipients to know that what they have is not the original, so # that any problems introduced by others will not reflect on the original # authors' reputations. # # Finally, any free program is threatened constantly by software # patents. We wish to avoid the danger that redistributors of a free # program will individually obtain patent licenses, in effect making the # program proprietary. To prevent this, we have made it clear that any # patent must be licensed for everyone's free use or not licensed at all. # # The precise terms and conditions for copying, distribution and # modification follow. # # GNU GENERAL PUBLIC LICENSE # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION # # 0. This License applies to any program or other work which contains # a notice placed by the copyright holder saying it may be distributed # under the terms of this General Public License. The "Program", below, # refers to any such program or work, and a "work based on the Program" # means either the Program or any derivative work under copyright law: # that is to say, a work containing the Program or a portion of it, # either verbatim or with modifications and/or translated into another # language. (Hereinafter, translation is included without limitation in # the term "modification".) Each licensee is addressed as "you". # # Activities other than copying, distribution and modification are not # covered by this License; they are outside its scope. The act of # running the Program is not restricted, and the output from the Program # is covered only if its contents constitute a work based on the # Program (independent of having been made by running the Program). # Whether that is true depends on what the Program does. # # 1. You may copy and distribute verbatim copies of the Program's # source code as you receive it, in any medium, provided that you # conspicuously and appropriately publish on each copy an appropriate # copyright notice and disclaimer of warranty; keep intact all the # notices that refer to this License and to the absence of any warranty; # and give any other recipients of the Program a copy of this License # along with the Program. # # You may charge a fee for the physical act of transferring a copy, and # you may at your option offer warranty protection in exchange for a fee. # # 2. You may modify your copy or copies of the Program or any portion # of it, thus forming a work based on the Program, and copy and # distribute such modifications or work under the terms of Section 1 # above, provided that you also meet all of these conditions: # # a) You must cause the modified files to carry prominent notices # stating that you changed the files and the date of any change. # # b) You must cause any work that you distribute or publish, that in # whole or in part contains or is derived from the Program or any # part thereof, to be licensed as a whole at no charge to all third # parties under the terms of this License. # # c) If the modified program normally reads commands interactively # when run, you must cause it, when started running for such # interactive use in the most ordinary way, to print or display an # announcement including an appropriate copyright notice and a # notice that there is no warranty (or else, saying that you provide # a warranty) and that users may redistribute the program under # these conditions, and telling the user how to view a copy of this # License. (Exception: if the Program itself is interactive but # does not normally print such an announcement, your work based on # the Program is not required to print an announcement.) # # These requirements apply to the modified work as a whole. If # identifiable sections of that work are not derived from the Program, # and can be reasonably considered independent and separate works in # themselves, then this License, and its terms, do not apply to those # sections when you distribute them as separate works. But when you # distribute the same sections as part of a whole which is a work based # on the Program, the distribution of the whole must be on the terms of # this License, whose permissions for other licensees extend to the # entire whole, and thus to each and every part regardless of who wrote it. # # Thus, it is not the intent of this section to claim rights or contest # your rights to work written entirely by you; rather, the intent is to # exercise the right to control the distribution of derivative or # collective works based on the Program. # # In addition, mere aggregation of another work not based on the Program # with the Program (or with a work based on the Program) on a volume of # a storage or distribution medium does not bring the other work under # the scope of this License. # # 3. You may copy and distribute the Program (or a work based on it, # under Section 2) in object code or executable form under the terms of # Sections 1 and 2 above provided that you also do one of the following: # # a) Accompany it with the complete corresponding machine-readable # source code, which must be distributed under the terms of Sections # 1 and 2 above on a medium customarily used for software interchange; or, # # b) Accompany it with a written offer, valid for at least three # years, to give any third party, for a charge no more than your # cost of physically performing source distribution, a complete # machine-readable copy of the corresponding source code, to be # distributed under the terms of Sections 1 and 2 above on a medium # customarily used for software interchange; or, # # c) Accompany it with the information you received as to the offer # to distribute corresponding source code. (This alternative is # allowed only for noncommercial distribution and only if you # received the program in object code or executable form with such # an offer, in accord with Subsection b above.) # # The source code for a work means the preferred form of the work for # making modifications to it. For an executable work, complete source # code means all the source code for all modules it contains, plus any # associated interface definition files, plus the scripts used to # control compilation and installation of the executable. However, as a # special exception, the source code distributed need not include # anything that is normally distributed (in either source or binary # form) with the major components (compiler, kernel, and so on) of the # operating system on which the executable runs, unless that component # itself accompanies the executable. # # If distribution of executable or object code is made by offering # access to copy from a designated place, then offering equivalent # access to copy the source code from the same place counts as # distribution of the source code, even though third parties are not # compelled to copy the source along with the object code. # # 4. You may not copy, modify, sublicense, or distribute the Program # except as expressly provided under this License. Any attempt # otherwise to copy, modify, sublicense or distribute the Program is # void, and will automatically terminate your rights under this License. # However, parties who have received copies, or rights, from you under # this License will not have their licenses terminated so long as such # parties remain in full compliance. # # 5. You are not required to accept this License, since you have not # signed it. However, nothing else grants you permission to modify or # distribute the Program or its derivative works. These actions are # prohibited by law if you do not accept this License. Therefore, by # modifying or distributing the Program (or any work based on the # Program), you indicate your acceptance of this License to do so, and # all its terms and conditions for copying, distributing or modifying # the Program or works based on it. # # 6. Each time you redistribute the Program (or any work based on the # Program), the recipient automatically receives a license from the # original licensor to copy, distribute or modify the Program subject to # these terms and conditions. You may not impose any further # restrictions on the recipients' exercise of the rights granted herein. # You are not responsible for enforcing compliance by third parties to # this License. # # 7. If, as a consequence of a court judgment or allegation of patent # infringement or for any other reason (not limited to patent issues), # conditions are imposed on you (whether by court order, agreement or # otherwise) that contradict the conditions of this License, they do not # excuse you from the conditions of this License. If you cannot # distribute so as to satisfy simultaneously your obligations under this # License and any other pertinent obligations, then as a consequence you # may not distribute the Program at all. For example, if a patent # license would not permit royalty-free redistribution of the Program by # all those who receive copies directly or indirectly through you, then # the only way you could satisfy both it and this License would be to # refrain entirely from distribution of the Program. # # If any portion of this section is held invalid or unenforceable under # any particular circumstance, the balance of the section is intended to # apply and the section as a whole is intended to apply in other # circumstances. # # It is not the purpose of this section to induce you to infringe any # patents or other property right claims or to contest validity of any # such claims; this section has the sole purpose of protecting the # integrity of the free software distribution system, which is # implemented by public license practices. Many people have made # generous contributions to the wide range of software distributed # through that system in reliance on consistent application of that # system; it is up to the author/donor to decide if he or she is willing # to distribute software through any other system and a licensee cannot # impose that choice. # # This section is intended to make thoroughly clear what is believed to # be a consequence of the rest of this License. # # 8. If the distribution and/or use of the Program is restricted in # certain countries either by patents or by copyrighted interfaces, the # original copyright holder who places the Program under this License # may add an explicit geographical distribution limitation excluding # those countries, so that distribution is permitted only in or among # countries not thus excluded. In such case, this License incorporates # the limitation as if written in the body of this License. # # 9. The Free Software Foundation may publish revised and/or new versions # of the General Public License from time to time. Such new versions will # be similar in spirit to the present version, but may differ in detail to # address new problems or concerns. # # Each version is given a distinguishing version number. If the Program # specifies a version number of this License which applies to it and "any # later version", you have the option of following the terms and conditions # either of that version or of any later version published by the Free # Software Foundation. If the Program does not specify a version number of # this License, you may choose any version ever published by the Free Software # Foundation. # # 10. If you wish to incorporate parts of the Program into other free # programs whose distribution conditions are different, write to the author # to ask for permission. For software which is copyrighted by the Free # Software Foundation, write to the Free Software Foundation; we sometimes # make exceptions for this. Our decision will be guided by the two goals # of preserving the free status of all derivatives of our free software and # of promoting the sharing and reuse of software generally. # # NO WARRANTY # # 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY # FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN # OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES # PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED # OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS # TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE # PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, # REPAIR OR CORRECTION. # # 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING # WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR # REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, # INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING # OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED # TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY # YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER # PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE # POSSIBILITY OF SUCH DAMAGES. # # END OF TERMS AND CONDITIONS
No comments:
Post a Comment