;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                                                                     ;;;
;;;                     Carnegie Mellon University                      ;;;
;;;                  and Alan W Black and Kevin Lenzo                   ;;;
;;;                      Copyright (c) 1998-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.                                                      ;;;
;;;                                                                     ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; F0 model for English
;;;

;;; Load any necessary files here
;(require 'f2bf0lr)
(require 'cmu_us_awb_arctic_f0clunits)

(set! cmu_us_awb_arctic_int_lr_params
      '(
	;; These numbers may be modified the speakers range.
	(target_f0_mean 170)   ;; speaker's mean F0
	(target_f0_std 34)     ;; speaker's range
	;; These number should remain as they are
	(model_f0_mean 170)
	(model_f0_std 34)))

(defvar cmu_us_awb_arctic::f0_clunits_loaded nil)

(define (cmu_us_awb_arctic::f0_clunits_load)
  "(cmu_us_awb_arctic::f0_clunits_load)
Function that actual loads in the databases and selection trees.
SHould only be called once per session."
  (if (not cmu_us_awb_arctic::f0_clunits_loaded)
      (begin
	(set! dt_params cmu_us_awb_arctic::f0_dt_params)
	(set! clunits_params cmu_us_awb_arctic::f0_dt_params)
	(clunits:load_db clunits_params)
	(load (string-append
	       (string-append 
		cmu_us_awb_arctic::f0_clunits_dir "/"
		(get_param 'trees_dir dt_params "trees/")
		(get_param 'index_name dt_params "all")
		".tree")))
	(set! cmu_us_awb_arctic::f0_clunits_clunit_selection_trees clunits_selection_trees)
	(set! cmu_us_awb_arctic::f0_clunits_loaded t))))

(define (cmu_us_awb_arctic::select_f0model)
  "(cmu_us_awb_arctic::select_f0model)
Set up the F0 model for English."
  (set! f0_lr_start f2b_f0_lr_start)
  (set! f0_lr_mid f2b_f0_lr_mid)
  (set! f0_lr_end f2b_f0_lr_end)
  (set! int_lr_params cmu_us_awb_arctic_int_lr_params)
  (Parameter.set 'Int_Target_Method Int_Targets_LR)

;  (cmu_us_awb_arctic::f0_clunits_load)
;  (set! f0_db_clunits_params cmu_us_awb_arctic::f0_dt_params)
;  (set! f0_clunits_trees cmu_us_awb_arctic::f0_clunits_clunit_selection_trees)

;  (Parameter.set 'Int_Target_Method unit_select_f0_model)

)

(define (cmu_us_awb_arctic::reset_f0model)
  "(cmu_us_awb_arctic::reset_f0model)
Reset F0 model information."
  t
)

(provide 'cmu_us_awb_arctic_f0model)
