85 lines
4.2 KiB
Scheme
85 lines
4.2 KiB
Scheme
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; ;;;
|
|
;;; Language Technologies Institute ;;;
|
|
;;; Carnegie Mellon University ;;;
|
|
;;; Copyright (c) 2000 ;;;
|
|
;;; 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. ;;;
|
|
;;; ;;;
|
|
;;; CARNEGIE MELLON UNIVERSITY 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 CARNEGIE MELLON UNIVERSITY 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. ;;;
|
|
;;; ;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; Author: Alan W Black (awb@cs.cmu.edu) ;;;
|
|
;;; Date: September 2000 ;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;; ;;;
|
|
;;; Display as we go synthesis ;;;
|
|
;;; ;;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defvar play_sync_program "/home/awb/projects/flite/testsuite/play_sync")
|
|
|
|
(define (display_as_we_go file filemode)
|
|
"(display_as_we_go file filemode)
|
|
Display the words as we synthesize them."
|
|
(set! tts_hooks
|
|
(list utt.synth utt.play_display))
|
|
(tts_file file filemode)
|
|
(format t "\n\n"))
|
|
|
|
(define (utt.play_display utt)
|
|
"(utt.play_display utt)
|
|
Play and display."
|
|
(let ((tmpwave (make_tmp_filename))
|
|
(tmpword (make_tmp_filename)))
|
|
(utt.save.wave utt tmpwave 'riff)
|
|
(utt.save.play_words utt tmpword)
|
|
; (utt.save.segs utt tmpword)
|
|
(system (format nil "%s %s %s" play_sync_program tmpwave tmpword))
|
|
(delete-file tmpwave)
|
|
(delete-file tmpword)
|
|
utt))
|
|
|
|
(define (utt.save.play_words utt filename)
|
|
"(utt.save.play_words UTT FILE)
|
|
Save words of UTT in a FILE in xlabel format, wityh added __silence__."
|
|
(let ((fd (fopen filename "w")))
|
|
(format fd "#\n")
|
|
(mapcar
|
|
(lambda (w)
|
|
(if (string-equal
|
|
(item.feat w "R:SylStructure.daughter1.daughter1.R:Segment.p.name")
|
|
(car (cadr (car (PhoneSet.description '(silences))))))
|
|
(format fd "%2.4f 100 %s\n"
|
|
(item.feat w "R:SylStructure.daughter1.daughter1.R:Segment.p.end")
|
|
"__silence__"))
|
|
(format fd "%2.4f 100 %s\n" (item.feat w "word_end")
|
|
(item.name w)))
|
|
(utt.relation.items utt 'Word))
|
|
(fclose fd)
|
|
utt))
|
|
|
|
|
|
(provide 'play_sync)
|