80 lines
3.9 KiB
Scheme
80 lines
3.9 KiB
Scheme
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; ;;
|
|
;;; 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)
|