kevinwang676's picture
Upload 403 files
c06b7e2
raw
history blame
No virus
3.97 kB
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; 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. ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Functions specific to using Festival in cslush part of the OGI toolkit
;;; The OGI toolkit is a complete dialog building system with speech
;;; recognition and synthesis (Festival) it is available for free for
;;; research purposes from
;;; http://www.cse.ogi.edu/CSLU/toolkit/toolkit.html
;;;
;;; Note this cslush interface requires you to compile festival
;;; with tcl (7.6)
;;;
;;; The functions replace the C++ level functions Jacques H. de Villiers
;;; <jacques@cse.ogi.edu> from CSLU wrote for the previous version
;;;
(if (not (member 'tcl *modules*))
(error "cslush: can't load cslush, TCL not supported in this installation of Festival."))
(define (cslush.getwave utt)
"(cslush.getwave UTT)
Extract wave memory info, pass this to wave import in CSLUsh."
(format nil "%s %s %s"
(utt.wave.info utt 'data_addr)
(utt.wave.info utt 'num_samples)
(utt.wave.info utt 'sample_rate)))
(define (cslush.getphone utt)
"(cslush.getphone UTT)
Return segment names a single string of phones, for use to pass to
TCL."
(let ((phones ""))
(mapcar
(lambda (s)
(if (string-equal phones "")
(set! phones (format nil "%s" (utt.streamitem.feat utt s 'name)))
(set! phones (format nil "%s %s"
phones (utt.streamitem.feat utt s 'name)))))
(utt.stream utt 'Segment))
phones))
(define (cslush TCLCOMMAND)
"(cslush TCLCOMMAND)
Pass TCLCOMMAND to TCL interpreter, returns what TCL returns as a
string."
(tcl_eval TCLCOMMAND))
(provide 'cslush)