home *** CD-ROM | disk | FTP | other *** search
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; ;;
- ;;; Centre for Speech Technology Research ;;
- ;;; University of Edinburgh, UK ;;
- ;;; Copyright (c) 1996,1997 ;;
- ;;; All Rights Reserved. ;;
- ;;; ;;
- ;;; Permission is hereby granted, free of charge, to use and distribute ;;
- ;;; this software and its documentation without restriction, including ;;
- ;;; without limitation the rights to use, copy, modify, merge, publish, ;;
- ;;; distribute, sublicense, and/or sell copies of this work, and to ;;
- ;;; permit persons to whom this work is furnished to do so, subject to ;;
- ;;; the following conditions: ;;
- ;;; 1. The code must retain the above copyright notice, this list of ;;
- ;;; conditions and the following disclaimer. ;;
- ;;; 2. Any modifications must be clearly marked as such. ;;
- ;;; 3. Original authors' names are not deleted. ;;
- ;;; 4. The authors' names are not used to endorse or promote products ;;
- ;;; derived from this software without specific prior written ;;
- ;;; permission. ;;
- ;;; ;;
- ;;; THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK ;;
- ;;; DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ;;
- ;;; ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ;;
- ;;; SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE ;;
- ;;; FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ;;
- ;;; WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ;;
- ;;; AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ;;
- ;;; ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ;;
- ;;; THIS SOFTWARE. ;;
- ;;; ;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;
- ;;; An example tts text mode for reading email messages, this includes
- ;;; support for extracting the interesting headers from the message
- ;;; and for dealing with quoted text. Its all very primitive and
- ;;; will easily be confused but its here just as an example
- ;;;
-
- (define (email_init_func)
- "(email_init_func)
- Called on starting email text mode."
- (voice_rab_diphone)
- (set! email_previous_t2w_func token_to_words)
- (set! english_token_to_words email_token_to_words)
- (set! token_to_words english_token_to_words)
- (set! email_in_quote nil))
-
- (define (email_exit_func)
- "(email_exit_func)
- Called on exit email text mode."
- (set! english_token_to_words email_previous_t2w_func)
- (set! token_to_words english_token_to_words))
-
- (define (email_token_to_words token name)
- "(email_token_to_words utt token name)
- Email spcific token to word rules."
- (cond
- ((string-matches name "<.*@.*>")
- (append
- (email_previous_t2w_func token
- (string-after (string-before name "@") "<"))
- (cons
- "at"
- (email_previous_t2w_func token
- (string-before (string-after name "@") ">")))))
- ((and (string-matches name ">")
- (string-matches (item.feat token "whitespace")
- "[ \t\n]*\n *"))
- (voice_don_diphone)
- nil ;; return nothing to say
- )
- (t ;; for all other cases
- (if (string-matches (item.feat token "whitespace")
- ".*\n[ \n]*")
- (voice_rab_diphone))
- (email_previous_t2w_func token name))))
-
- (set! tts_text_modes
- (cons
- (list
- 'email ;; mode name
- (list ;; email mode params
- (list 'init_func email_init_func)
- (list 'exit_func email_exit_func)
- '(filter "email_filter")))
- tts_text_modes))
-
- (provide 'email-mode)
-