This commit is contained in:
luisgulo 2025-02-09 16:55:31 +01:00
commit 2b16024633
5019 changed files with 530297 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,14 @@
Package: festival-voces-silvia-pedro
Version: 1.0.5
Section: non-free/sound
Priority: extra
Architecture: all
Depends: festival (>= 1.4.3-9)
Maintainer: <luisgulo@soloconlinux.org.es>
Description: Voces en castellano para Festival de Silvia y Pedro.
Voces desarrolladas para Ubuntu por la Junta de Andalucia
en un proyecto liberado para distribuciones Linux.
Empaquetado de ambas voces en castellano e inclusion de scripts
para cambio de voces por Solo Con Linux
Ficheros originales en https://github.com/guadalinex-archive/hispavoces
https://soloconlinux.org.es

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
#!/bin/sh -e
# Se deja la voz por defecto
grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm
cp /tmp/festival.scm /etc/festival.scm
# Arreglo de copia de ficheros de versiones previas
cp /usr/share/festival/voices.scm /tmp/voices.scm
cp /usr/share/festival/voices.scm.Default /tmp/voices.scm 2>/dev/null
rm -f /usr/share/festival/voices.scm
cp /tmp/voices.scm /usr/share/festival/voices.scm
# Se deja por defecto la voz de Silvia
echo "(set! voice_default 'voice_JuntaDeAndalucia_es_sf_diphone)" >> /etc/festival.scm

View File

@ -0,0 +1,20 @@
#!/bin/bash
# --------------------------------------------
# Ajuste de las voces para festival. Luis GuLo
# --------------------------------------------
# VOZ POR DEFECTO
# --------------------------------------------
ID=`id -u`
if [ "$ID" = "0" ] ; then
grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm
cp /tmp/festival.scm /etc/festival.scm
else
echo -ne "Escribe la clave de root y pulsa INTRO: "; read -s claveroot
echo "$claveroot" |su -c "grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm"
echo "$claveroot" |su -c "cp /tmp/festival.scm /etc/festival.scm"
fi
# --------------------------------------------
clear
echo "Default voice"
echo "Default voice" | festival --tts
echo

View File

@ -0,0 +1,22 @@
#!/bin/bash
# --------------------------------------------
# Ajuste de las voces para festival. Luis GuLo
# --------------------------------------------
# VOZ DE PEDRO
# --------------------------------------------
ID=`id -u`
if [ "$ID" = "0" ] ; then
grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm
cp /tmp/festival.scm /etc/festival.scm
echo "(set! voice_default 'voice_JuntaDeAndalucia_es_pa_diphone)" >> /etc/festival.scm
else
echo -ne "Escribe la clave de root y pulsa INTRO: "; read -s claveroot
echo "$claveroot" | su -c "grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm"
echo "$claveroot" | su -c "cp /tmp/festival.scm /etc/festival.scm"
echo "$claveroot" | su -c "echo \"(set! voice_default 'voice_JuntaDeAndalucia_es_pa_diphone)\" >> /etc/festival.scm"
fi
# --------------------------------------------
clear
echo "Voz de Pedro por defecto"
echo "Voz de Pedro por defecto" | festival --tts
echo

View File

@ -0,0 +1,22 @@
#!/bin/bash
# --------------------------------------------
# Ajuste de las voces para festival. Luis GuLo
# --------------------------------------------
# VOZ DE SILVIA
# --------------------------------------------
ID=`id -u`
if [ "$ID" = "0" ] ; then
grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm
cp /tmp/festival.scm /etc/festival.scm
echo "(set! voice_default 'voice_JuntaDeAndalucia_es_sf_diphone)" >> /etc/festival.scm
else
echo -ne "Escribe la clave de root y pulsa INTRO: "; read -s claveroot
echo "$claveroot" | su -c "grep -v voice_JuntaDeAndalucia_es_ /etc/festival.scm > /tmp/festival.scm"
echo "$claveroot" | su -c "cp /tmp/festival.scm /etc/festival.scm"
echo "$claveroot" | su -c "echo \"(set! voice_default 'voice_JuntaDeAndalucia_es_sf_diphone)\" >> /etc/festival.scm"
fi
# --------------------------------------------
clear
echo "Voz de Silvia por defecto"
echo "Voz de Silvia por defecto" | festival --tts
echo

View File

@ -0,0 +1,41 @@
=============================================================
Voces en castellano de Silvia y Pedro para Festival
=============================================================
Desde soloconlinux.org.es se ha procedido a empaquetar y modificar los
ficheros de configuracion antiguos 'voices.scm' para que funcione
con la nuevas versiones de Festival de Debian 9 y Debian 10.
Se han unificado ademas 2 paquete separados de voces en uno solo.
Se dispone además de tres script para cambiar entre las distintas voces:
-> voz-silvia
-> voz-pedro
-> voz-defecto
Ejecute 'voz-silvia' para usar la voz femenina de Silvia por defecto.
Active el volumen y lance el comando para cambiar y comprobar la voz:
voz-silvia
Ejecute 'voz-pedro' para usar por defecto la voz masculina de Pedro.
Con el volumen activo lance el comando para cambiar y oir como suena la voz:
voz-pedro
Si quiere dejar la voz anterior a la instalación simplemente ejecute:
voz-defecto
USO:
Una vez configurado, puede probar como suena cualquiera de las voces,
simplemente escribiendo lo siguiente en su consola:
echo "Esto es una prueba de sonido" | festival --tts
Si va a utilizar algun caracter especial en el texto a leer, para que sea
correctamente interpretado puede usar la siguiente orden en su consola:
echo "¡Voz en castellano!" | iconv -f utf8 -t iso-8859-1 |festival --tts
NOTA:
Se han respetado todas las licencias disponibles de los paquetes originales
Puede leerlo en el fichero: 'copyright'
==== Luis GuLo =========================================================

View File

@ -0,0 +1,57 @@
This is a Debian prepackaged version of the higher-quality diphone-based
male Spanish voice developed by the Junta de Andalucia (Andalusian
Government).
This distribution falls under the following copyright
(i.e. with commercial restriction). See notes below.
Junta de Andalucía
Copyright (c) 2007
All Rights Reserved.
This package was generated and the source files were provided by Intelligent
Dialogue Systems S.L. (http://www.indisys.es)
Contact person: Jesús González Martí <j.gonzalez@indisys.es>
This development is based on the previous work of the University of
Edimburgh on 'ellpc11k' Spanish male voice.
(Package available at
http://packages.debian.org/stable/sound/festvox-ellpc11k)
License:
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.

View File

@ -0,0 +1,440 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; 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. ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Prepare to access voices. Searches down a path of places.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define current-voice nil
"current-voice
The name of the current voice.")
;; The path to search for voices is created from the load-path with
;; an extra list of directories appended.
(defvar system-voice-path '("/usr/share/festival/voices/")
"system-voice-path
Additional directory not near the load path where voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar system-voice-path-multisyn '( )
"system-voice-path-multisyn
Additional directory not near the load path where multisyn voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar voice-path
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path)
))
"voice-path
List of places to look for voices. If not set it is initialised from
load-path by appending \"voices/\" to each directory with
system-voice-path appended.")
(defvar voice-path-multisyn
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices-multisyn/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path-multisyn)
))
"voice-path-multisyn
List of places to look for multisyn voices. If not set it is initialised from
load-path by appending \"voices-multisyn/\" to each directory with
system-voice-path-multisyn appended.")
;; Declaration of voices. When we declare a voice we record the
;; directory and set up an autoload for the voice-selecting function
(defvar voice-locations ()
"voice-locations
Association list recording where voices were found.")
(defvar voice-location-trace nil
"voice-location-trace
Set t to print voice locations as they are found")
(define (voice-location name dir doc)
"(voice-location NAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" name) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (voice-location-multisyn name rootname dir doc)
"(voice-location NAME ROOTNAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" rootname) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (current_voice_reset)
"(current_voice_reset)
This function is called at the start of defining any new voice.
It is design to allow the previous voice to reset any global
values it has messed with. If this variable value is nil then
the function wont be called.")
(define (voice_reset)
"(voice_reset)
This resets all variables back to acceptable values that may affect
voice generation. This function should always be called at the
start of any function defining a voice. In addition to reseting
standard variables the function current_voice_reset will be called.
This should always be set by the voice definition function (even
if it does nothing). This allows voice specific changes to be reset
when a new voice is selection. Unfortunately I can't force this
to be used."
(Parameter.set 'Duration_Stretch 1.0)
(set! after_synth_hooks default_after_synth_hooks)
;; The follow are reset to allow existing voices to continue
;; to work, new voices should be setting these explicitly
(Parameter.set 'Token_Method 'Token_English)
(Parameter.set 'POS_Method Classic_POS)
(Parameter.set 'Phrasify_Method Classic_Phrasify)
(Parameter.set 'Word_Method Classic_Word)
(Parameter.set 'Pause_Method Classic_Pauses)
(Parameter.set 'PostLex_Method Classic_PostLex)
(set! diphone_module_hooks nil)
(set! UniSyn_module_hooks nil)
(if current_voice_reset
(current_voice_reset))
(set! current_voice_reset nil)
)
(defvar Voice_descriptions nil
"Internal variable containing list of voice descriptions as
decribed by proclaim_voice.")
(define (proclaim_voice name description)
"(proclaim_voice NAME DESCRIPTION)
Describe a voice to the systen. NAME should be atomic name, that
conventionally will have voice_ prepended to name the basic selection
function. OPTIONS is an assoc list of feature and value and must
have at least features for language, gender, dialect and
description. The first there of these are atomic, while the description
is a text string describing the voice."
(let ((voxdesc (assoc name Voice_descriptions)))
(if voxdesc
(set-car! (cdr voxdesc) description)
(set! Voice_descriptions
(cons (list name description) Voice_descriptions))))
)
(define (voice.description name)
"(voice.description NAME)
Output description of named voice. If the named voice is not yet loaded
it is loaded."
(let ((voxdesc (assoc name Voice_descriptions))
(cv current-voice))
(if (null voxdesc)
(unwind-protect
(begin
(voice.select name)
(voice.select cv) ;; switch back to current voice
(set! voxdesc (assoc name Voice_descriptions)))))
(if voxdesc
voxdesc
(begin
(format t "SIOD: unknown voice %s\n" name)
nil))))
(define (voice.select name)
"(voice.select NAME)
Call function to set up voice NAME. This is normally done by
prepending voice_ to NAME and call it as a function."
(eval (list (intern (string-append "voice_" name)))))
(define (voice.describe name)
"(voice.describe NAME)
Describe voice NAME by saying its description. Unfortunately although
it would be nice to say that voice's description in the voice itself
its not going to work cross language. So this just uses the current
voice. So here we assume voices describe themselves in English
which is pretty anglo-centric, shitsurei shimasu."
(let ((voxdesc (voice.description name)))
(let ((desc (car (cdr (assoc 'description (car (cdr voxdesc)))))))
(cond
(desc (tts_text desc nil))
(voxdesc
(SayText
(format nil "A voice called %s exist but it has no description"
name)))
(t
(SayText
(format nil "There is no voice called %s defined" name)))))))
(define (voice.list)
"(voice.list)
List of all (potential) voices in the system. This checks the voice-location
list of potential voices found be scanning the voice-path at start up time.
These names can be used as arguments to voice.description and
voice.describe."
(mapcar car voice-locations))
(define (voice.find parameters)
"(voice.find PARAMETERS)
List of the (potential) voices in the system that match the PARAMETERS described
in the proclaim_voice description fields."
(let ((voices (eval (list voice.list)))
(validvoices nil)
(voice nil)
)
(while parameters
(while voices
(set! voice (car voices))
;;I believe the next line should be improved. equal? doesn't work always.
(if (equal? (list (cadr (assoc (caar parameters)
(cadr (assoc voice Voice_descriptions))
))) (cdar parameters))
(begin
(set! validvoices (append (list voice) validvoices))
)
)
(set! voices (cdr voices))
)
(set! voices validvoices)
(set! validvoices nil)
(set! parameters (cdr parameters))
)
voices
)
)
;; Voices are found on the voice-path if they are in directories of the form
;; DIR/LANGUAGE/NAME
(define (search-for-voices)
"(search-for-voices)
Search down voice-path to locate voices."
(let ((dirs voice-path)
(dir nil)
languages language
voices voicedir voice voice_proclaimed
)
(while dirs
(set! dir (car dirs))
(setq languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voice_proclaimed nil) ; flag to mark if proclaim_voice is found
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; Do the voice proclamation: load the voice definition file.
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location (intern (cadr (cadr line)))
(path-as-directory (path-append dir language voicedir)) "registered voice")
(eval line)
(set! voice_proclaimed t)
)
)
)
voice-def-file)
(if (not voice_proclaimed) ;proclaim_voice is missing. Use old voice location method
(voice-location voice
(path-as-directory (path-append dir language voicedir))
"voice found on path")
)
)
)
(set! voices (cdr voices))
)
(set! languages (cdr languages))
)
(set! dirs (cdr dirs))
)
)
)
;; A single file is allowed to define multiple multisyn voices, so this has
;; been adapted for this. Rob thinks this is just evil, but couldn't think
;; of a better way.
(define (search-for-voices-multisyn)
"(search-for-voices-multisyn)
Search down multisyn voice-path to locate multisyn voices."
(let ((dirs voice-path-multisyn)
(dir nil)
languages language
voices voicedir voice voice-list
)
(while dirs
(set! dir (car dirs))
(set! languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; load the voice definition file, but don't evaluate it!
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location-multisyn (intern (cadr (cadr line))) voicedir (path-append dir language voicedir) "registerd multisyn voice")
(eval line)
)
)
)
voice-def-file)
))
(set! voices (cdr voices)))
(set! languages (cdr languages)))
(set! dirs (cdr dirs)))))
(search-for-voices)
(search-for-voices-multisyn)
;; We select the default voice from a list of possibilities. One of these
;; had better exist in every installation.
(define (no_voice_error)
(format t "\nWARNING\n")
(format t "No default voice found in %l\n" voice-path)
(format t "either no voices unpacked or voice-path is wrong\n")
(format t "Scheme interpreter will work, but there is no voice to speak with.\n")
(format t "WARNING\n\n"))
(defvar voice_default 'no_voice_error
"voice_default
A variable whose value is a function name that is called on start up to
the default voice. [see Site initialization]")
(defvar default-voice-priority-list
(reverse (remove-duplicates (reverse
(append
(list 'nitech_us_slt_arctic_hts
'nitech_us_awb_arctic_hts
'nitech_us_bdl_arctic_hts
'nitech_us_clb_arctic_hts
'nitech_us_jmk_arctic_hts
'nitech_us_rms_arctic_hts
'kal_diphone
'ked_diphone
'cstr_us_awb_arctic_multisyn
'cstr_us_jmk_arctic_multisyn
)
(voice.find (list (list 'engine 'hts)))
(voice.find (list (list 'engine 'diphone)))
(voice.find (list (list 'engine 'clunits)))
(voice.find (list (list 'engine 'clustergen)))
(voice.list)
))))
"default-voice-priority-list
List of voice names. The first of them available becomes the default voice.")
(define (voice.remove_unavailable voices)
"voice.remove_unavailable VOICES takes a list of voice names and returns
a list with the voices in VOICES available."
(let ((output (mapcar (lambda(x) (if (assoc (intern x) voice-locations ) (intern x))) voices)))
(while (member nil output)
(set! output (remove nil output))
)
output
)
)
(define (set_voice_default voices)
"set_voice_default VOICES sets as voice_default the first voice available from VOICES list"
(let ( (avail_voices (voice.remove_unavailable voices))
)
(if avail_voices
(begin
(set! voice_default (intern (string-append "voice_" (car avail_voices))))
t
)
(begin
(print "Could not find any of these voices:")
(print voices)
nil
)
)
)
)
(set_voice_default default-voice-priority-list)
(provide 'voices)

View File

@ -0,0 +1,442 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; 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. ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Prepare to access voices. Searches down a path of places.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define current-voice nil
"current-voice
The name of the current voice.")
;; The path to search for voices is created from the load-path with
;; an extra list of directories appended.
(defvar system-voice-path '("/usr/share/festival/voices/")
"system-voice-path
Additional directory not near the load path where voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar system-voice-path-multisyn '( )
"system-voice-path-multisyn
Additional directory not near the load path where multisyn voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar voice-path
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path)
))
"voice-path
List of places to look for voices. If not set it is initialised from
load-path by appending \"voices/\" to each directory with
system-voice-path appended.")
(defvar voice-path-multisyn
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices-multisyn/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path-multisyn)
))
"voice-path-multisyn
List of places to look for multisyn voices. If not set it is initialised from
load-path by appending \"voices-multisyn/\" to each directory with
system-voice-path-multisyn appended.")
;; Declaration of voices. When we declare a voice we record the
;; directory and set up an autoload for the voice-selecting function
(defvar voice-locations ()
"voice-locations
Association list recording where voices were found.")
(defvar voice-location-trace nil
"voice-location-trace
Set t to print voice locations as they are found")
(define (voice-location name dir doc)
"(voice-location NAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" name) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (voice-location-multisyn name rootname dir doc)
"(voice-location NAME ROOTNAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" rootname) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (current_voice_reset)
"(current_voice_reset)
This function is called at the start of defining any new voice.
It is design to allow the previous voice to reset any global
values it has messed with. If this variable value is nil then
the function wont be called.")
(define (voice_reset)
"(voice_reset)
This resets all variables back to acceptable values that may affect
voice generation. This function should always be called at the
start of any function defining a voice. In addition to reseting
standard variables the function current_voice_reset will be called.
This should always be set by the voice definition function (even
if it does nothing). This allows voice specific changes to be reset
when a new voice is selection. Unfortunately I can't force this
to be used."
(Parameter.set 'Duration_Stretch 1.0)
(set! after_synth_hooks default_after_synth_hooks)
;; The follow are reset to allow existing voices to continue
;; to work, new voices should be setting these explicitly
(Parameter.set 'Token_Method 'Token_English)
(Parameter.set 'POS_Method Classic_POS)
(Parameter.set 'Phrasify_Method Classic_Phrasify)
(Parameter.set 'Word_Method Classic_Word)
(Parameter.set 'Pause_Method Classic_Pauses)
(Parameter.set 'PostLex_Method Classic_PostLex)
(set! diphone_module_hooks nil)
(set! UniSyn_module_hooks nil)
(if current_voice_reset
(current_voice_reset))
(set! current_voice_reset nil)
)
(defvar Voice_descriptions nil
"Internal variable containing list of voice descriptions as
decribed by proclaim_voice.")
(define (proclaim_voice name description)
"(proclaim_voice NAME DESCRIPTION)
Describe a voice to the systen. NAME should be atomic name, that
conventionally will have voice_ prepended to name the basic selection
function. OPTIONS is an assoc list of feature and value and must
have at least features for language, gender, dialect and
description. The first there of these are atomic, while the description
is a text string describing the voice."
(let ((voxdesc (assoc name Voice_descriptions)))
(if voxdesc
(set-car! (cdr voxdesc) description)
(set! Voice_descriptions
(cons (list name description) Voice_descriptions))))
)
(define (voice.description name)
"(voice.description NAME)
Output description of named voice. If the named voice is not yet loaded
it is loaded."
(let ((voxdesc (assoc name Voice_descriptions))
(cv current-voice))
(if (null voxdesc)
(unwind-protect
(begin
(voice.select name)
(voice.select cv) ;; switch back to current voice
(set! voxdesc (assoc name Voice_descriptions)))))
(if voxdesc
voxdesc
(begin
(format t "SIOD: unknown voice %s\n" name)
nil))))
(define (voice.select name)
"(voice.select NAME)
Call function to set up voice NAME. This is normally done by
prepending voice_ to NAME and call it as a function."
(eval (list (intern (string-append "voice_" name)))))
(define (voice.describe name)
"(voice.describe NAME)
Describe voice NAME by saying its description. Unfortunately although
it would be nice to say that voice's description in the voice itself
its not going to work cross language. So this just uses the current
voice. So here we assume voices describe themselves in English
which is pretty anglo-centric, shitsurei shimasu."
(let ((voxdesc (voice.description name)))
(let ((desc (car (cdr (assoc 'description (car (cdr voxdesc)))))))
(cond
(desc (tts_text desc nil))
(voxdesc
(SayText
(format nil "A voice called %s exist but it has no description"
name)))
(t
(SayText
(format nil "There is no voice called %s defined" name)))))))
(define (voice.list)
"(voice.list)
List of all (potential) voices in the system. This checks the voice-location
list of potential voices found be scanning the voice-path at start up time.
These names can be used as arguments to voice.description and
voice.describe."
(mapcar car voice-locations))
(define (voice.find parameters)
"(voice.find PARAMETERS)
List of the (potential) voices in the system that match the PARAMETERS described
in the proclaim_voice description fields."
(let ((voices (eval (list voice.list)))
(validvoices nil)
(voice nil)
)
(while parameters
(while voices
(set! voice (car voices))
;;I believe the next line should be improved. equal? doesn't work always.
(if (equal? (list (cadr (assoc (caar parameters)
(cadr (assoc voice Voice_descriptions))
))) (cdar parameters))
(begin
(set! validvoices (append (list voice) validvoices))
)
)
(set! voices (cdr voices))
)
(set! voices validvoices)
(set! validvoices nil)
(set! parameters (cdr parameters))
)
voices
)
)
;; Voices are found on the voice-path if they are in directories of the form
;; DIR/LANGUAGE/NAME
(define (search-for-voices)
"(search-for-voices)
Search down voice-path to locate voices."
(let ((dirs voice-path)
(dir nil)
languages language
voices voicedir voice voice_proclaimed
)
(while dirs
(set! dir (car dirs))
(setq languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voice_proclaimed nil) ; flag to mark if proclaim_voice is found
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; Do the voice proclamation: load the voice definition file.
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location (intern (cadr (cadr line)))
(path-as-directory (path-append dir language voicedir)) "registered voice")
(eval line)
(set! voice_proclaimed t)
)
)
)
voice-def-file)
(if (not voice_proclaimed) ;proclaim_voice is missing. Use old voice location method
(voice-location voice
(path-as-directory (path-append dir language voicedir))
"voice found on path")
)
)
)
(set! voices (cdr voices))
)
(set! languages (cdr languages))
)
(set! dirs (cdr dirs))
)
)
)
;; A single file is allowed to define multiple multisyn voices, so this has
;; been adapted for this. Rob thinks this is just evil, but couldn't think
;; of a better way.
(define (search-for-voices-multisyn)
"(search-for-voices-multisyn)
Search down multisyn voice-path to locate multisyn voices."
(let ((dirs voice-path-multisyn)
(dir nil)
languages language
voices voicedir voice voice-list
)
(while dirs
(set! dir (car dirs))
(set! languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; load the voice definition file, but don't evaluate it!
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location-multisyn (intern (cadr (cadr line))) voicedir (path-append dir language voicedir) "registerd multisyn voice")
(eval line)
)
)
)
voice-def-file)
))
(set! voices (cdr voices)))
(set! languages (cdr languages)))
(set! dirs (cdr dirs)))))
(search-for-voices)
(search-for-voices-multisyn)
;; We select the default voice from a list of possibilities. One of these
;; had better exist in every installation.
(define (no_voice_error)
(format t "\nWARNING\n")
(format t "No default voice found in %l\n" voice-path)
(format t "either no voices unpacked or voice-path is wrong\n")
(format t "Scheme interpreter will work, but there is no voice to speak with.\n")
(format t "WARNING\n\n"))
(defvar voice_default 'no_voice_error
"voice_default
A variable whose value is a function name that is called on start up to
the default voice. [see Site initialization]")
(defvar default-voice-priority-list
(reverse (remove-duplicates (reverse
(append
(list 'JuntaDeAndalucia_es_pa_diphone
'JuntaDeAndalucia_es_sf_diphone
'nitech_us_slt_arctic_hts
'nitech_us_awb_arctic_hts
'nitech_us_bdl_arctic_hts
'nitech_us_clb_arctic_hts
'nitech_us_jmk_arctic_hts
'nitech_us_rms_arctic_hts
'kal_diphone
'ked_diphone
'cstr_us_awb_arctic_multisyn
'cstr_us_jmk_arctic_multisyn
)
(voice.find (list (list 'engine 'hts)))
(voice.find (list (list 'engine 'diphone)))
(voice.find (list (list 'engine 'clunits)))
(voice.find (list (list 'engine 'clustergen)))
(voice.list)
))))
"default-voice-priority-list
List of voice names. The first of them available becomes the default voice.")
(define (voice.remove_unavailable voices)
"voice.remove_unavailable VOICES takes a list of voice names and returns
a list with the voices in VOICES available."
(let ((output (mapcar (lambda(x) (if (assoc (intern x) voice-locations ) (intern x))) voices)))
(while (member nil output)
(set! output (remove nil output))
)
output
)
)
(define (set_voice_default voices)
"set_voice_default VOICES sets as voice_default the first voice available from VOICES list"
(let ( (avail_voices (voice.remove_unavailable voices))
)
(if avail_voices
(begin
(set! voice_default (intern (string-append "voice_" (car avail_voices))))
t
)
(begin
(print "Could not find any of these voices:")
(print voices)
nil
)
)
)
)
(set_voice_default default-voice-priority-list)
(provide 'voices)

View File

@ -0,0 +1,442 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; 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. ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Prepare to access voices. Searches down a path of places.
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define current-voice nil
"current-voice
The name of the current voice.")
;; The path to search for voices is created from the load-path with
;; an extra list of directories appended.
(defvar system-voice-path '("/usr/share/festival/voices/")
"system-voice-path
Additional directory not near the load path where voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar system-voice-path-multisyn '( )
"system-voice-path-multisyn
Additional directory not near the load path where multisyn voices can be
found, this can be redefined in lib/sitevars.scm if desired.")
(defvar voice-path
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path)
))
"voice-path
List of places to look for voices. If not set it is initialised from
load-path by appending \"voices/\" to each directory with
system-voice-path appended.")
(defvar voice-path-multisyn
(remove-duplicates
(append (mapcar (lambda (d) (path-append d "voices-multisyn/")) load-path)
(mapcar (lambda (d) (path-as-directory d)) system-voice-path-multisyn)
))
"voice-path-multisyn
List of places to look for multisyn voices. If not set it is initialised from
load-path by appending \"voices-multisyn/\" to each directory with
system-voice-path-multisyn appended.")
;; Declaration of voices. When we declare a voice we record the
;; directory and set up an autoload for the voice-selecting function
(defvar voice-locations ()
"voice-locations
Association list recording where voices were found.")
(defvar voice-location-trace nil
"voice-location-trace
Set t to print voice locations as they are found")
(define (voice-location name dir doc)
"(voice-location NAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" name) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (voice-location-multisyn name rootname dir doc)
"(voice-location NAME ROOTNAME DIR DOCSTRING)
Record the location of a voice. Called for each voice found on voice-path.
Can be called in site-init or .festivalrc for additional voices which
exist elsewhere."
(let ((func_name (intern (string-append "voice_" name)))
)
(set! name (intern name))
(set! voice-locations (cons (cons name dir) voice-locations))
(eval (list 'autoload func_name (path-append dir "festvox/" rootname) doc))
(if voice-location-trace
(format t "Voice: %s %s\n" name dir)
)
)
)
(define (current_voice_reset)
"(current_voice_reset)
This function is called at the start of defining any new voice.
It is design to allow the previous voice to reset any global
values it has messed with. If this variable value is nil then
the function wont be called.")
(define (voice_reset)
"(voice_reset)
This resets all variables back to acceptable values that may affect
voice generation. This function should always be called at the
start of any function defining a voice. In addition to reseting
standard variables the function current_voice_reset will be called.
This should always be set by the voice definition function (even
if it does nothing). This allows voice specific changes to be reset
when a new voice is selection. Unfortunately I can't force this
to be used."
(Parameter.set 'Duration_Stretch 1.0)
(set! after_synth_hooks default_after_synth_hooks)
;; The follow are reset to allow existing voices to continue
;; to work, new voices should be setting these explicitly
(Parameter.set 'Token_Method 'Token_English)
(Parameter.set 'POS_Method Classic_POS)
(Parameter.set 'Phrasify_Method Classic_Phrasify)
(Parameter.set 'Word_Method Classic_Word)
(Parameter.set 'Pause_Method Classic_Pauses)
(Parameter.set 'PostLex_Method Classic_PostLex)
(set! diphone_module_hooks nil)
(set! UniSyn_module_hooks nil)
(if current_voice_reset
(current_voice_reset))
(set! current_voice_reset nil)
)
(defvar Voice_descriptions nil
"Internal variable containing list of voice descriptions as
decribed by proclaim_voice.")
(define (proclaim_voice name description)
"(proclaim_voice NAME DESCRIPTION)
Describe a voice to the systen. NAME should be atomic name, that
conventionally will have voice_ prepended to name the basic selection
function. OPTIONS is an assoc list of feature and value and must
have at least features for language, gender, dialect and
description. The first there of these are atomic, while the description
is a text string describing the voice."
(let ((voxdesc (assoc name Voice_descriptions)))
(if voxdesc
(set-car! (cdr voxdesc) description)
(set! Voice_descriptions
(cons (list name description) Voice_descriptions))))
)
(define (voice.description name)
"(voice.description NAME)
Output description of named voice. If the named voice is not yet loaded
it is loaded."
(let ((voxdesc (assoc name Voice_descriptions))
(cv current-voice))
(if (null voxdesc)
(unwind-protect
(begin
(voice.select name)
(voice.select cv) ;; switch back to current voice
(set! voxdesc (assoc name Voice_descriptions)))))
(if voxdesc
voxdesc
(begin
(format t "SIOD: unknown voice %s\n" name)
nil))))
(define (voice.select name)
"(voice.select NAME)
Call function to set up voice NAME. This is normally done by
prepending voice_ to NAME and call it as a function."
(eval (list (intern (string-append "voice_" name)))))
(define (voice.describe name)
"(voice.describe NAME)
Describe voice NAME by saying its description. Unfortunately although
it would be nice to say that voice's description in the voice itself
its not going to work cross language. So this just uses the current
voice. So here we assume voices describe themselves in English
which is pretty anglo-centric, shitsurei shimasu."
(let ((voxdesc (voice.description name)))
(let ((desc (car (cdr (assoc 'description (car (cdr voxdesc)))))))
(cond
(desc (tts_text desc nil))
(voxdesc
(SayText
(format nil "A voice called %s exist but it has no description"
name)))
(t
(SayText
(format nil "There is no voice called %s defined" name)))))))
(define (voice.list)
"(voice.list)
List of all (potential) voices in the system. This checks the voice-location
list of potential voices found be scanning the voice-path at start up time.
These names can be used as arguments to voice.description and
voice.describe."
(mapcar car voice-locations))
(define (voice.find parameters)
"(voice.find PARAMETERS)
List of the (potential) voices in the system that match the PARAMETERS described
in the proclaim_voice description fields."
(let ((voices (eval (list voice.list)))
(validvoices nil)
(voice nil)
)
(while parameters
(while voices
(set! voice (car voices))
;;I believe the next line should be improved. equal? doesn't work always.
(if (equal? (list (cadr (assoc (caar parameters)
(cadr (assoc voice Voice_descriptions))
))) (cdar parameters))
(begin
(set! validvoices (append (list voice) validvoices))
)
)
(set! voices (cdr voices))
)
(set! voices validvoices)
(set! validvoices nil)
(set! parameters (cdr parameters))
)
voices
)
)
;; Voices are found on the voice-path if they are in directories of the form
;; DIR/LANGUAGE/NAME
(define (search-for-voices)
"(search-for-voices)
Search down voice-path to locate voices."
(let ((dirs voice-path)
(dir nil)
languages language
voices voicedir voice voice_proclaimed
)
(while dirs
(set! dir (car dirs))
(setq languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voice_proclaimed nil) ; flag to mark if proclaim_voice is found
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; Do the voice proclamation: load the voice definition file.
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location (intern (cadr (cadr line)))
(path-as-directory (path-append dir language voicedir)) "registered voice")
(eval line)
(set! voice_proclaimed t)
)
)
)
voice-def-file)
(if (not voice_proclaimed) ;proclaim_voice is missing. Use old voice location method
(voice-location voice
(path-as-directory (path-append dir language voicedir))
"voice found on path")
)
)
)
(set! voices (cdr voices))
)
(set! languages (cdr languages))
)
(set! dirs (cdr dirs))
)
)
)
;; A single file is allowed to define multiple multisyn voices, so this has
;; been adapted for this. Rob thinks this is just evil, but couldn't think
;; of a better way.
(define (search-for-voices-multisyn)
"(search-for-voices-multisyn)
Search down multisyn voice-path to locate multisyn voices."
(let ((dirs voice-path-multisyn)
(dir nil)
languages language
voices voicedir voice voice-list
)
(while dirs
(set! dir (car dirs))
(set! languages (directory-entries dir t))
(while languages
(set! language (car languages))
(set! voices (directory-entries (path-append dir language) t))
(while voices
(set! voicedir (car voices))
(set! voice (path-basename voicedir))
(if (or (string-matches voicedir ".*\\..*")
(not (probe_file (path-append dir language voicedir "festvox" (string-append voicedir ".scm"))))
);; if directory is \.. or voice description doesn't exist, then do nothing. Else, load voice
nil
(begin
;; load the voice definition file, but don't evaluate it!
(set! voice-def-file (load (path-append dir language voicedir "festvox"
(string-append voicedir ".scm")) t))
;; now find the "proclaim_voice" lines and register these voices.
(mapcar
(lambda (line)
(if (string-matches (car line) "proclaim_voice")
(begin
(voice-location-multisyn (intern (cadr (cadr line))) voicedir (path-append dir language voicedir) "registerd multisyn voice")
(eval line)
)
)
)
voice-def-file)
))
(set! voices (cdr voices)))
(set! languages (cdr languages)))
(set! dirs (cdr dirs)))))
(search-for-voices)
(search-for-voices-multisyn)
;; We select the default voice from a list of possibilities. One of these
;; had better exist in every installation.
(define (no_voice_error)
(format t "\nWARNING\n")
(format t "No default voice found in %l\n" voice-path)
(format t "either no voices unpacked or voice-path is wrong\n")
(format t "Scheme interpreter will work, but there is no voice to speak with.\n")
(format t "WARNING\n\n"))
(defvar voice_default 'no_voice_error
"voice_default
A variable whose value is a function name that is called on start up to
the default voice. [see Site initialization]")
(defvar default-voice-priority-list
(reverse (remove-duplicates (reverse
(append
(list 'JuntaDeAndalucia_es_sf_diphone
'JuntaDeAndalucia_es_pa_diphone
'nitech_us_slt_arctic_hts
'nitech_us_awb_arctic_hts
'nitech_us_bdl_arctic_hts
'nitech_us_clb_arctic_hts
'nitech_us_jmk_arctic_hts
'nitech_us_rms_arctic_hts
'kal_diphone
'ked_diphone
'cstr_us_awb_arctic_multisyn
'cstr_us_jmk_arctic_multisyn
)
(voice.find (list (list 'engine 'hts)))
(voice.find (list (list 'engine 'diphone)))
(voice.find (list (list 'engine 'clunits)))
(voice.find (list (list 'engine 'clustergen)))
(voice.list)
))))
"default-voice-priority-list
List of voice names. The first of them available becomes the default voice.")
(define (voice.remove_unavailable voices)
"voice.remove_unavailable VOICES takes a list of voice names and returns
a list with the voices in VOICES available."
(let ((output (mapcar (lambda(x) (if (assoc (intern x) voice-locations ) (intern x))) voices)))
(while (member nil output)
(set! output (remove nil output))
)
output
)
)
(define (set_voice_default voices)
"set_voice_default VOICES sets as voice_default the first voice available from VOICES list"
(let ( (avail_voices (voice.remove_unavailable voices))
)
(if avail_voices
(begin
(set! voice_default (intern (string-append "voice_" (car avail_voices))))
t
)
(begin
(print "Could not find any of these voices:")
(print voices)
nil
)
)
)
)
(set_voice_default default-voice-priority-list)
(provide 'voices)

View File

@ -0,0 +1,792 @@
( Indisys_MP_pa_0001 "# t a p a1 p a #" ("p-a1" "a1-p") )
( Indisys_MP_pa_0002 "# t a B a1 B a #" ("B-a1" "a1-B") )
( Indisys_MP_pa_0003 "# t a ch a1 ch a #" ("ch-a1" "a1-ch") )
( Indisys_MP_pa_0004 "# t a D a1 D a #" ("D-a1" "a1-D") )
( Indisys_MP_pa_0005 "# t a f a1 f a #" ("f-a1" "a1-f") )
( Indisys_MP_pa_0006 "# t a G a1 G a #" ("G-a1" "a1-G") )
( Indisys_MP_pa_0007 "# t a k a1 k a #" ("k-a1" "a1-k") )
( Indisys_MP_pa_0008 "# t a l a1 l a #" ("l-a1" "a1-l") )
( Indisys_MP_pa_0009 "# t a ll a1 ll a #" ("ll-a1" "a1-ll") )
( Indisys_MP_pa_0010 "# t a m a1 m a #" ("m-a1" "a1-m") )
( Indisys_MP_pa_0011 "# t a n a1 n a #" ("n-a1" "a1-n") )
( Indisys_MP_pa_0012 "# t a ny a1 ny a #" ("ny-a1" "a1-ny") )
( Indisys_MP_pa_0013 "# t a r a1 r a #" ("r-a1" "a1-r") )
( Indisys_MP_pa_0014 "# t a rr a1 rr a #" ("rr-a1" "a1-rr") )
( Indisys_MP_pa_0015 "# t a s a1 s a #" ("s-a1" "a1-s") )
( Indisys_MP_pa_0016 "# t a t a1 t a #" ("t-a1" "a1-t") )
( Indisys_MP_pa_0017 "# t a th a1 th a #" ("th-a1" "a1-th") )
( Indisys_MP_pa_0018 "# t a x a1 x a #" ("x-a1" "a1-x") )
( Indisys_MP_pa_0019 "# t a dh a1 dh a #" ("dh-a1" "a1-dh") )
( Indisys_MP_pa_0020 "# t a hh a1 hh a #" ("hh-a1" "a1-hh") )
( Indisys_MP_pa_0021 "# t a sh a1 sh a #" ("sh-a1" "a1-sh") )
( Indisys_MP_pa_0022 "# t a v a1 v a #" ("v-a1" "a1-v") )
( Indisys_MP_pa_0023 "# t a z a1 z a #" ("z-a1" "a1-z") )
( Indisys_MP_pa_0024 "# t a zh a1 zh a #" ("zh-a1" "a1-zh") )
( Indisys_MP_pa_0025 "# t a p i1 p a #" ("p-i1" "i1-p") )
( Indisys_MP_pa_0026 "# t a B i1 B a #" ("B-i1" "i1-B") )
( Indisys_MP_pa_0027 "# t a ch i1 ch a #" ("ch-i1" "i1-ch") )
( Indisys_MP_pa_0028 "# t a D i1 D a #" ("D-i1" "i1-D") )
( Indisys_MP_pa_0029 "# t a f i1 f a #" ("f-i1" "i1-f") )
( Indisys_MP_pa_0030 "# t a G i1 G a #" ("G-i1" "i1-G") )
( Indisys_MP_pa_0031 "# t a k i1 k a #" ("k-i1" "i1-k") )
( Indisys_MP_pa_0032 "# t a l i1 l a #" ("l-i1" "i1-l") )
( Indisys_MP_pa_0033 "# t a ll i1 ll a #" ("ll-i1" "i1-ll") )
( Indisys_MP_pa_0034 "# t a m i1 m a #" ("m-i1" "i1-m") )
( Indisys_MP_pa_0035 "# t a n i1 n a #" ("n-i1" "i1-n") )
( Indisys_MP_pa_0036 "# t a ny i1 ny a #" ("ny-i1" "i1-ny") )
( Indisys_MP_pa_0037 "# t a r i1 r a #" ("r-i1" "i1-r") )
( Indisys_MP_pa_0038 "# t a rr i1 rr a #" ("rr-i1" "i1-rr") )
( Indisys_MP_pa_0039 "# t a s i1 s a #" ("s-i1" "i1-s") )
( Indisys_MP_pa_0040 "# t a t i1 t a #" ("t-i1" "i1-t") )
( Indisys_MP_pa_0041 "# t a th i1 th a #" ("th-i1" "i1-th") )
( Indisys_MP_pa_0042 "# t a x i1 x a #" ("x-i1" "i1-x") )
( Indisys_MP_pa_0043 "# t a dh i1 dh a #" ("dh-i1" "i1-dh") )
( Indisys_MP_pa_0044 "# t a hh i1 hh a #" ("hh-i1" "i1-hh") )
( Indisys_MP_pa_0045 "# t a sh i1 sh a #" ("sh-i1" "i1-sh") )
( Indisys_MP_pa_0046 "# t a v i1 v a #" ("v-i1" "i1-v") )
( Indisys_MP_pa_0047 "# t a z i1 z a #" ("z-i1" "i1-z") )
( Indisys_MP_pa_0048 "# t a zh i1 zh a #" ("zh-i1" "i1-zh") )
( Indisys_MP_pa_0049 "# t a p u1 p a #" ("p-u1" "u1-p") )
( Indisys_MP_pa_0050 "# t a B u1 B a #" ("B-u1" "u1-B") )
( Indisys_MP_pa_0051 "# t a ch u1 ch a #" ("ch-u1" "u1-ch") )
( Indisys_MP_pa_0052 "# t a D u1 D a #" ("D-u1" "u1-D") )
( Indisys_MP_pa_0053 "# t a f u1 f a #" ("f-u1" "u1-f") )
( Indisys_MP_pa_0054 "# t a G u1 G a #" ("G-u1" "u1-G") )
( Indisys_MP_pa_0055 "# t a k u1 k a #" ("k-u1" "u1-k") )
( Indisys_MP_pa_0056 "# t a l u1 l a #" ("l-u1" "u1-l") )
( Indisys_MP_pa_0057 "# t a ll u1 ll a #" ("ll-u1" "u1-ll") )
( Indisys_MP_pa_0058 "# t a m u1 m a #" ("m-u1" "u1-m") )
( Indisys_MP_pa_0059 "# t a n u1 n a #" ("n-u1" "u1-n") )
( Indisys_MP_pa_0060 "# t a ny u1 ny a #" ("ny-u1" "u1-ny") )
( Indisys_MP_pa_0061 "# t a r u1 r a #" ("r-u1" "u1-r") )
( Indisys_MP_pa_0062 "# t a rr u1 rr a #" ("rr-u1" "u1-rr") )
( Indisys_MP_pa_0063 "# t a s u1 s a #" ("s-u1" "u1-s") )
( Indisys_MP_pa_0064 "# t a t u1 t a #" ("t-u1" "u1-t") )
( Indisys_MP_pa_0065 "# t a th u1 th a #" ("th-u1" "u1-th") )
( Indisys_MP_pa_0066 "# t a x u1 x a #" ("x-u1" "u1-x") )
( Indisys_MP_pa_0067 "# t a dh u1 dh a #" ("dh-u1" "u1-dh") )
( Indisys_MP_pa_0068 "# t a hh u1 hh a #" ("hh-u1" "u1-hh") )
( Indisys_MP_pa_0069 "# t a sh u1 sh a #" ("sh-u1" "u1-sh") )
( Indisys_MP_pa_0070 "# t a v u1 v a #" ("v-u1" "u1-v") )
( Indisys_MP_pa_0071 "# t a z u1 z a #" ("z-u1" "u1-z") )
( Indisys_MP_pa_0072 "# t a zh u1 zh a #" ("zh-u1" "u1-zh") )
( Indisys_MP_pa_0073 "# t a p e1 p a #" ("p-e1" "e1-p") )
( Indisys_MP_pa_0074 "# t a B e1 B a #" ("B-e1" "e1-B") )
( Indisys_MP_pa_0075 "# t a ch e1 ch a #" ("ch-e1" "e1-ch") )
( Indisys_MP_pa_0076 "# t a D e1 D a #" ("D-e1" "e1-D") )
( Indisys_MP_pa_0077 "# t a f e1 f a #" ("f-e1" "e1-f") )
( Indisys_MP_pa_0078 "# t a G e1 G a #" ("G-e1" "e1-G") )
( Indisys_MP_pa_0079 "# t a k e1 k a #" ("k-e1" "e1-k") )
( Indisys_MP_pa_0080 "# t a l e1 l a #" ("l-e1" "e1-l") )
( Indisys_MP_pa_0081 "# t a ll e1 ll a #" ("ll-e1" "e1-ll") )
( Indisys_MP_pa_0082 "# t a m e1 m a #" ("m-e1" "e1-m") )
( Indisys_MP_pa_0083 "# t a n e1 n a #" ("n-e1" "e1-n") )
( Indisys_MP_pa_0084 "# t a ny e1 ny a #" ("ny-e1" "e1-ny") )
( Indisys_MP_pa_0085 "# t a r e1 r a #" ("r-e1" "e1-r") )
( Indisys_MP_pa_0086 "# t a rr e1 rr a #" ("rr-e1" "e1-rr") )
( Indisys_MP_pa_0087 "# t a s e1 s a #" ("s-e1" "e1-s") )
( Indisys_MP_pa_0088 "# t a t e1 t a #" ("t-e1" "e1-t") )
( Indisys_MP_pa_0089 "# t a th e1 th a #" ("th-e1" "e1-th") )
( Indisys_MP_pa_0090 "# t a x e1 x a #" ("x-e1" "e1-x") )
( Indisys_MP_pa_0091 "# t a dh e1 dh a #" ("dh-e1" "e1-dh") )
( Indisys_MP_pa_0092 "# t a hh e1 hh a #" ("hh-e1" "e1-hh") )
( Indisys_MP_pa_0093 "# t a sh e1 sh a #" ("sh-e1" "e1-sh") )
( Indisys_MP_pa_0094 "# t a v e1 v a #" ("v-e1" "e1-v") )
( Indisys_MP_pa_0095 "# t a z e1 z a #" ("z-e1" "e1-z") )
( Indisys_MP_pa_0096 "# t a zh e1 zh a #" ("zh-e1" "e1-zh") )
( Indisys_MP_pa_0097 "# t a p o1 p a #" ("p-o1" "o1-p") )
( Indisys_MP_pa_0098 "# t a B o1 B a #" ("B-o1" "o1-B") )
( Indisys_MP_pa_0099 "# t a ch o1 ch a #" ("ch-o1" "o1-ch") )
( Indisys_MP_pa_0100 "# t a D o1 D a #" ("D-o1" "o1-D") )
( Indisys_MP_pa_0101 "# t a f o1 f a #" ("f-o1" "o1-f") )
( Indisys_MP_pa_0102 "# t a G o1 G a #" ("G-o1" "o1-G") )
( Indisys_MP_pa_0103 "# t a k o1 k a #" ("k-o1" "o1-k") )
( Indisys_MP_pa_0104 "# t a l o1 l a #" ("l-o1" "o1-l") )
( Indisys_MP_pa_0105 "# t a ll o1 ll a #" ("ll-o1" "o1-ll") )
( Indisys_MP_pa_0106 "# t a m o1 m a #" ("m-o1" "o1-m") )
( Indisys_MP_pa_0107 "# t a n o1 n a #" ("n-o1" "o1-n") )
( Indisys_MP_pa_0108 "# t a ny o1 ny a #" ("ny-o1" "o1-ny") )
( Indisys_MP_pa_0109 "# t a r o1 r a #" ("r-o1" "o1-r") )
( Indisys_MP_pa_0110 "# t a rr o1 rr a #" ("rr-o1" "o1-rr") )
( Indisys_MP_pa_0111 "# t a s o1 s a #" ("s-o1" "o1-s") )
( Indisys_MP_pa_0112 "# t a t o1 t a #" ("t-o1" "o1-t") )
( Indisys_MP_pa_0113 "# t a th o1 th a #" ("th-o1" "o1-th") )
( Indisys_MP_pa_0114 "# t a x o1 x a #" ("x-o1" "o1-x") )
( Indisys_MP_pa_0115 "# t a dh o1 dh a #" ("dh-o1" "o1-dh") )
( Indisys_MP_pa_0116 "# t a hh o1 hh a #" ("hh-o1" "o1-hh") )
( Indisys_MP_pa_0117 "# t a sh o1 sh a #" ("sh-o1" "o1-sh") )
( Indisys_MP_pa_0118 "# t a v o1 v a #" ("v-o1" "o1-v") )
( Indisys_MP_pa_0119 "# t a z o1 z a #" ("z-o1" "o1-z") )
( Indisys_MP_pa_0120 "# t a zh o1 zh a #" ("zh-o1" "o1-zh") )
( Indisys_MP_pa_0121 "# t a1 p a p a #" ("p-a" "a-p") )
( Indisys_MP_pa_0122 "# t a1 B a B a #" ("B-a" "a-B") )
( Indisys_MP_pa_0123 "# t a1 ch a ch a #" ("ch-a" "a-ch") )
( Indisys_MP_pa_0124 "# t a1 D a D a #" ("D-a" "a-D") )
( Indisys_MP_pa_0125 "# t a1 f a f a #" ("f-a" "a-f") )
( Indisys_MP_pa_0126 "# t a1 G a G a #" ("G-a" "a-G") )
( Indisys_MP_pa_0127 "# t a1 k a k a #" ("k-a" "a-k") )
( Indisys_MP_pa_0128 "# t a1 l a l a #" ("l-a" "a-l") )
( Indisys_MP_pa_0129 "# t a1 ll a ll a #" ("ll-a" "a-ll") )
( Indisys_MP_pa_0130 "# t a1 m a m a #" ("m-a" "a-m") )
( Indisys_MP_pa_0131 "# t a1 n a n a #" ("n-a" "a-n") )
( Indisys_MP_pa_0132 "# t a1 ny a ny a #" ("ny-a" "a-ny") )
( Indisys_MP_pa_0133 "# t a1 r a r a #" ("r-a" "a-r") )
( Indisys_MP_pa_0134 "# t a1 rr a rr a #" ("rr-a" "a-rr") )
( Indisys_MP_pa_0135 "# t a1 s a s a #" ("s-a" "a-s") )
( Indisys_MP_pa_0136 "# t a1 t a t a #" ("t-a" "a-t") )
( Indisys_MP_pa_0137 "# t a1 th a th a #" ("th-a" "a-th") )
( Indisys_MP_pa_0138 "# t a1 x a x a #" ("x-a" "a-x") )
( Indisys_MP_pa_0139 "# t a1 dh a dh a #" ("dh-a" "a-dh") )
( Indisys_MP_pa_0140 "# t a1 hh a hh a #" ("hh-a" "a-hh") )
( Indisys_MP_pa_0141 "# t a1 sh a sh a #" ("sh-a" "a-sh") )
( Indisys_MP_pa_0142 "# t a1 v a v a #" ("v-a" "a-v") )
( Indisys_MP_pa_0143 "# t a1 z a z a #" ("z-a" "a-z") )
( Indisys_MP_pa_0144 "# t a1 zh a zh a #" ("zh-a" "a-zh") )
( Indisys_MP_pa_0145 "# t a1 p i p a #" ("p-i" "i-p") )
( Indisys_MP_pa_0146 "# t a1 B i B a #" ("B-i" "i-B") )
( Indisys_MP_pa_0147 "# t a1 ch i ch a #" ("ch-i" "i-ch") )
( Indisys_MP_pa_0148 "# t a1 D i D a #" ("D-i" "i-D") )
( Indisys_MP_pa_0149 "# t a1 f i f a #" ("f-i" "i-f") )
( Indisys_MP_pa_0150 "# t a1 G i G a #" ("G-i" "i-G") )
( Indisys_MP_pa_0151 "# t a1 k i k a #" ("k-i" "i-k") )
( Indisys_MP_pa_0152 "# t a1 l i l a #" ("l-i" "i-l") )
( Indisys_MP_pa_0153 "# t a1 ll i ll a #" ("ll-i" "i-ll") )
( Indisys_MP_pa_0154 "# t a1 m i m a #" ("m-i" "i-m") )
( Indisys_MP_pa_0155 "# t a1 n i n a #" ("n-i" "i-n") )
( Indisys_MP_pa_0156 "# t a1 ny i ny a #" ("ny-i" "i-ny") )
( Indisys_MP_pa_0157 "# t a1 r i r a #" ("r-i" "i-r") )
( Indisys_MP_pa_0158 "# t a1 rr i rr a #" ("rr-i" "i-rr") )
( Indisys_MP_pa_0159 "# t a1 s i s a #" ("s-i" "i-s") )
( Indisys_MP_pa_0160 "# t a1 t i t a #" ("t-i" "i-t") )
( Indisys_MP_pa_0161 "# t a1 th i th a #" ("th-i" "i-th") )
( Indisys_MP_pa_0162 "# t a1 x i x a #" ("x-i" "i-x") )
( Indisys_MP_pa_0163 "# t a1 dh i dh a #" ("dh-i" "i-dh") )
( Indisys_MP_pa_0164 "# t a1 hh i hh a #" ("hh-i" "i-hh") )
( Indisys_MP_pa_0165 "# t a1 sh i sh a #" ("sh-i" "i-sh") )
( Indisys_MP_pa_0166 "# t a1 v i v a #" ("v-i" "i-v") )
( Indisys_MP_pa_0167 "# t a1 z i z a #" ("z-i" "i-z") )
( Indisys_MP_pa_0168 "# t a1 zh i zh a #" ("zh-i" "i-zh") )
( Indisys_MP_pa_0169 "# t a1 p u p a #" ("p-u" "u-p") )
( Indisys_MP_pa_0170 "# t a1 B u B a #" ("B-u" "u-B") )
( Indisys_MP_pa_0171 "# t a1 ch u ch a #" ("ch-u" "u-ch") )
( Indisys_MP_pa_0172 "# t a1 D u D a #" ("D-u" "u-D") )
( Indisys_MP_pa_0173 "# t a1 f u f a #" ("f-u" "u-f") )
( Indisys_MP_pa_0174 "# t a1 G u G a #" ("G-u" "u-G") )
( Indisys_MP_pa_0175 "# t a1 k u k a #" ("k-u" "u-k") )
( Indisys_MP_pa_0176 "# t a1 l u l a #" ("l-u" "u-l") )
( Indisys_MP_pa_0177 "# t a1 ll u ll a #" ("ll-u" "u-ll") )
( Indisys_MP_pa_0178 "# t a1 m u m a #" ("m-u" "u-m") )
( Indisys_MP_pa_0179 "# t a1 n u n a #" ("n-u" "u-n") )
( Indisys_MP_pa_0180 "# t a1 ny u ny a #" ("ny-u" "u-ny") )
( Indisys_MP_pa_0181 "# t a1 r u r a #" ("r-u" "u-r") )
( Indisys_MP_pa_0182 "# t a1 rr u rr a #" ("rr-u" "u-rr") )
( Indisys_MP_pa_0183 "# t a1 s u s a #" ("s-u" "u-s") )
( Indisys_MP_pa_0184 "# t a1 t u t a #" ("t-u" "u-t") )
( Indisys_MP_pa_0185 "# t a1 th u th a #" ("th-u" "u-th") )
( Indisys_MP_pa_0186 "# t a1 x u x a #" ("x-u" "u-x") )
( Indisys_MP_pa_0187 "# t a1 dh u dh a #" ("dh-u" "u-dh") )
( Indisys_MP_pa_0188 "# t a1 hh u hh a #" ("hh-u" "u-hh") )
( Indisys_MP_pa_0189 "# t a1 sh u sh a #" ("sh-u" "u-sh") )
( Indisys_MP_pa_0190 "# t a1 v u v a #" ("v-u" "u-v") )
( Indisys_MP_pa_0191 "# t a1 z u z a #" ("z-u" "u-z") )
( Indisys_MP_pa_0192 "# t a1 zh u zh a #" ("zh-u" "u-zh") )
( Indisys_MP_pa_0193 "# t a1 p e p a #" ("p-e" "e-p") )
( Indisys_MP_pa_0194 "# t a1 B e B a #" ("B-e" "e-B") )
( Indisys_MP_pa_0195 "# t a1 ch e ch a #" ("ch-e" "e-ch") )
( Indisys_MP_pa_0196 "# t a1 D e D a #" ("D-e" "e-D") )
( Indisys_MP_pa_0197 "# t a1 f e f a #" ("f-e" "e-f") )
( Indisys_MP_pa_0198 "# t a1 G e G a #" ("G-e" "e-G") )
( Indisys_MP_pa_0199 "# t a1 k e k a #" ("k-e" "e-k") )
( Indisys_MP_pa_0200 "# t a1 l e l a #" ("l-e" "e-l") )
( Indisys_MP_pa_0201 "# t a1 ll e ll a #" ("ll-e" "e-ll") )
( Indisys_MP_pa_0202 "# t a1 m e m a #" ("m-e" "e-m") )
( Indisys_MP_pa_0203 "# t a1 n e n a #" ("n-e" "e-n") )
( Indisys_MP_pa_0204 "# t a1 ny e ny a #" ("ny-e" "e-ny") )
( Indisys_MP_pa_0205 "# t a1 r e r a #" ("r-e" "e-r") )
( Indisys_MP_pa_0206 "# t a1 rr e rr a #" ("rr-e" "e-rr") )
( Indisys_MP_pa_0207 "# t a1 s e s a #" ("s-e" "e-s") )
( Indisys_MP_pa_0208 "# t a1 t e t a #" ("t-e" "e-t") )
( Indisys_MP_pa_0209 "# t a1 th e th a #" ("th-e" "e-th") )
( Indisys_MP_pa_0210 "# t a1 x e x a #" ("x-e" "e-x") )
( Indisys_MP_pa_0211 "# t a1 dh e dh a #" ("dh-e" "e-dh") )
( Indisys_MP_pa_0212 "# t a1 hh e hh a #" ("hh-e" "e-hh") )
( Indisys_MP_pa_0213 "# t a1 sh e sh a #" ("sh-e" "e-sh") )
( Indisys_MP_pa_0214 "# t a1 v e v a #" ("v-e" "e-v") )
( Indisys_MP_pa_0215 "# t a1 z e z a #" ("z-e" "e-z") )
( Indisys_MP_pa_0216 "# t a1 zh e zh a #" ("zh-e" "e-zh") )
( Indisys_MP_pa_0217 "# t a1 p o p a #" ("p-o" "o-p") )
( Indisys_MP_pa_0218 "# t a1 B o B a #" ("B-o" "o-B") )
( Indisys_MP_pa_0219 "# t a1 ch o ch a #" ("ch-o" "o-ch") )
( Indisys_MP_pa_0220 "# t a1 D o D a #" ("D-o" "o-D") )
( Indisys_MP_pa_0221 "# t a1 f o f a #" ("f-o" "o-f") )
( Indisys_MP_pa_0222 "# t a1 G o G a #" ("G-o" "o-G") )
( Indisys_MP_pa_0223 "# t a1 k o k a #" ("k-o" "o-k") )
( Indisys_MP_pa_0224 "# t a1 l o l a #" ("l-o" "o-l") )
( Indisys_MP_pa_0225 "# t a1 ll o ll a #" ("ll-o" "o-ll") )
( Indisys_MP_pa_0226 "# t a1 m o m a #" ("m-o" "o-m") )
( Indisys_MP_pa_0227 "# t a1 n o n a #" ("n-o" "o-n") )
( Indisys_MP_pa_0228 "# t a1 ny o ny a #" ("ny-o" "o-ny") )
( Indisys_MP_pa_0229 "# t a1 r o r a #" ("r-o" "o-r") )
( Indisys_MP_pa_0230 "# t a1 rr o rr a #" ("rr-o" "o-rr") )
( Indisys_MP_pa_0231 "# t a1 s o s a #" ("s-o" "o-s") )
( Indisys_MP_pa_0232 "# t a1 t o t a #" ("t-o" "o-t") )
( Indisys_MP_pa_0233 "# t a1 th o th a #" ("th-o" "o-th") )
( Indisys_MP_pa_0234 "# t a1 x o x a #" ("x-o" "o-x") )
( Indisys_MP_pa_0235 "# t a1 dh o dh a #" ("dh-o" "o-dh") )
( Indisys_MP_pa_0236 "# t a1 hh o hh a #" ("hh-o" "o-hh") )
( Indisys_MP_pa_0237 "# t a1 sh o sh a #" ("sh-o" "o-sh") )
( Indisys_MP_pa_0238 "# t a1 v o v a #" ("v-o" "o-v") )
( Indisys_MP_pa_0239 "# t a1 z o z a #" ("z-o" "o-z") )
( Indisys_MP_pa_0240 "# t a1 zh o zh a #" ("zh-o" "o-zh") )
( Indisys_MP_pa_0241 "# t a1 p ax p a #" ("p-ax" "ax-p") )
( Indisys_MP_pa_0242 "# t a1 B ax B a #" ("B-ax" "ax-B") )
( Indisys_MP_pa_0243 "# t a1 ch ax ch a #" ("ch-ax" "ax-ch") )
( Indisys_MP_pa_0244 "# t a1 D ax D a #" ("D-ax" "ax-D") )
( Indisys_MP_pa_0245 "# t a1 f ax f a #" ("f-ax" "ax-f") )
( Indisys_MP_pa_0246 "# t a1 G ax G a #" ("G-ax" "ax-G") )
( Indisys_MP_pa_0247 "# t a1 k ax k a #" ("k-ax" "ax-k") )
( Indisys_MP_pa_0248 "# t a1 l ax l a #" ("l-ax" "ax-l") )
( Indisys_MP_pa_0249 "# t a1 ll ax ll a #" ("ll-ax" "ax-ll") )
( Indisys_MP_pa_0250 "# t a1 m ax m a #" ("m-ax" "ax-m") )
( Indisys_MP_pa_0251 "# t a1 n ax n a #" ("n-ax" "ax-n") )
( Indisys_MP_pa_0252 "# t a1 ny ax ny a #" ("ny-ax" "ax-ny") )
( Indisys_MP_pa_0253 "# t a1 r ax r a #" ("r-ax" "ax-r") )
( Indisys_MP_pa_0254 "# t a1 rr ax rr a #" ("rr-ax" "ax-rr") )
( Indisys_MP_pa_0255 "# t a1 s ax s a #" ("s-ax" "ax-s") )
( Indisys_MP_pa_0256 "# t a1 t ax t a #" ("t-ax" "ax-t") )
( Indisys_MP_pa_0257 "# t a1 th ax th a #" ("th-ax" "ax-th") )
( Indisys_MP_pa_0258 "# t a1 x ax x a #" ("x-ax" "ax-x") )
( Indisys_MP_pa_0259 "# t a1 dh ax dh a #" ("dh-ax" "ax-dh") )
( Indisys_MP_pa_0260 "# t a1 hh ax hh a #" ("hh-ax" "ax-hh") )
( Indisys_MP_pa_0261 "# t a1 sh ax sh a #" ("sh-ax" "ax-sh") )
( Indisys_MP_pa_0262 "# t a1 v ax v a #" ("v-ax" "ax-v") )
( Indisys_MP_pa_0263 "# t a1 z ax z a #" ("z-ax" "ax-z") )
( Indisys_MP_pa_0264 "# t a1 zh ax zh a #" ("zh-ax" "ax-zh") )
( Indisys_MP_pa_0265 "# t a t a a t a1 #" ("a-a") )
( Indisys_MP_pa_0266 "# t a t a i t a1 #" ("a-i") )
( Indisys_MP_pa_0267 "# t a t a u t a1 #" ("a-u") )
( Indisys_MP_pa_0268 "# t a t a e t a1 #" ("a-e") )
( Indisys_MP_pa_0269 "# t a t a o t a1 #" ("a-o") )
( Indisys_MP_pa_0270 "# t a t a ax t a1 #" ("a-ax") )
( Indisys_MP_pa_0271 "# t a t i a t a1 #" ("i-a") )
( Indisys_MP_pa_0272 "# t a t i i t a1 #" ("i-i") )
( Indisys_MP_pa_0273 "# t a t i u t a1 #" ("i-u") )
( Indisys_MP_pa_0274 "# t a t i e t a1 #" ("i-e") )
( Indisys_MP_pa_0275 "# t a t i o t a1 #" ("i-o") )
( Indisys_MP_pa_0276 "# t a t i ax t a1 #" ("i-ax") )
( Indisys_MP_pa_0277 "# t a t u a t a1 #" ("u-a") )
( Indisys_MP_pa_0278 "# t a t u i t a1 #" ("u-i") )
( Indisys_MP_pa_0279 "# t a t u u t a1 #" ("u-u") )
( Indisys_MP_pa_0280 "# t a t u e t a1 #" ("u-e") )
( Indisys_MP_pa_0281 "# t a t u o t a1 #" ("u-o") )
( Indisys_MP_pa_0282 "# t a t u ax t a1 #" ("u-ax") )
( Indisys_MP_pa_0283 "# t a t e a t a1 #" ("e-a") )
( Indisys_MP_pa_0284 "# t a t e i t a1 #" ("e-i") )
( Indisys_MP_pa_0285 "# t a t e u t a1 #" ("e-u") )
( Indisys_MP_pa_0286 "# t a t e e t a1 #" ("e-e") )
( Indisys_MP_pa_0287 "# t a t e o t a1 #" ("e-o") )
( Indisys_MP_pa_0288 "# t a t e ax t a1 #" ("e-ax") )
( Indisys_MP_pa_0289 "# t a t o a t a1 #" ("o-a") )
( Indisys_MP_pa_0290 "# t a t o i t a1 #" ("o-i") )
( Indisys_MP_pa_0291 "# t a t o u t a1 #" ("o-u") )
( Indisys_MP_pa_0292 "# t a t o e t a1 #" ("o-e") )
( Indisys_MP_pa_0293 "# t a t o o t a1 #" ("o-o") )
( Indisys_MP_pa_0294 "# t a t o ax t a1 #" ("o-ax") )
( Indisys_MP_pa_0295 "# t a t ax a t a1 #" ("ax-a") )
( Indisys_MP_pa_0296 "# t a t ax i t a1 #" ("ax-i") )
( Indisys_MP_pa_0297 "# t a t ax u t a1 #" ("ax-u") )
( Indisys_MP_pa_0298 "# t a t ax e t a1 #" ("ax-e") )
( Indisys_MP_pa_0299 "# t a t ax o t a1 #" ("ax-o") )
( Indisys_MP_pa_0300 "# t a t ax ax t a1 #" ("ax-ax") )
( Indisys_MP_pa_0301 "# t a t a1 a t a #" ("a1-a") )
( Indisys_MP_pa_0302 "# t a t a1 i t a #" ("a1-i") )
( Indisys_MP_pa_0303 "# t a t a1 u t a #" ("a1-u") )
( Indisys_MP_pa_0304 "# t a t a1 e t a #" ("a1-e") )
( Indisys_MP_pa_0305 "# t a t a1 o t a #" ("a1-o") )
( Indisys_MP_pa_0306 "# t a t i1 a t a #" ("i1-a") )
( Indisys_MP_pa_0307 "# t a t i1 i t a #" ("i1-i") )
( Indisys_MP_pa_0308 "# t a t i1 u t a #" ("i1-u") )
( Indisys_MP_pa_0309 "# t a t i1 e t a #" ("i1-e") )
( Indisys_MP_pa_0310 "# t a t i1 o t a #" ("i1-o") )
( Indisys_MP_pa_0311 "# t a t u1 a t a #" ("u1-a") )
( Indisys_MP_pa_0312 "# t a t u1 i t a #" ("u1-i") )
( Indisys_MP_pa_0313 "# t a t u1 u t a #" ("u1-u") )
( Indisys_MP_pa_0314 "# t a t u1 e t a #" ("u1-e") )
( Indisys_MP_pa_0315 "# t a t u1 o t a #" ("u1-o") )
( Indisys_MP_pa_0316 "# t a t e1 a t a #" ("e1-a") )
( Indisys_MP_pa_0317 "# t a t e1 i t a #" ("e1-i") )
( Indisys_MP_pa_0318 "# t a t e1 u t a #" ("e1-u") )
( Indisys_MP_pa_0319 "# t a t e1 e t a #" ("e1-e") )
( Indisys_MP_pa_0320 "# t a t e1 o t a #" ("e1-o") )
( Indisys_MP_pa_0321 "# t a t o1 a t a #" ("o1-a") )
( Indisys_MP_pa_0322 "# t a t o1 i t a #" ("o1-i") )
( Indisys_MP_pa_0323 "# t a t o1 u t a #" ("o1-u") )
( Indisys_MP_pa_0324 "# t a t o1 e t a #" ("o1-e") )
( Indisys_MP_pa_0325 "# t a t o1 o t a #" ("o1-o") )
( Indisys_MP_pa_0326 "# t a t a a1 t a #" ("a-a1") )
( Indisys_MP_pa_0327 "# t a t a i1 t a #" ("a-i1") )
( Indisys_MP_pa_0328 "# t a t a u1 t a #" ("a-u1") )
( Indisys_MP_pa_0329 "# t a t a e1 t a #" ("a-e1") )
( Indisys_MP_pa_0330 "# t a t a o1 t a #" ("a-o1") )
( Indisys_MP_pa_0331 "# t a t i a1 t a #" ("i-a1") )
( Indisys_MP_pa_0332 "# t a t i i1 t a #" ("i-i1") )
( Indisys_MP_pa_0333 "# t a t i u1 t a #" ("i-u1") )
( Indisys_MP_pa_0334 "# t a t i e1 t a #" ("i-e1") )
( Indisys_MP_pa_0335 "# t a t i o1 t a #" ("i-o1") )
( Indisys_MP_pa_0336 "# t a t u a1 t a #" ("u-a1") )
( Indisys_MP_pa_0337 "# t a t u i1 t a #" ("u-i1") )
( Indisys_MP_pa_0338 "# t a t u u1 t a #" ("u-u1") )
( Indisys_MP_pa_0339 "# t a t u e1 t a #" ("u-e1") )
( Indisys_MP_pa_0340 "# t a t u o1 t a #" ("u-o1") )
( Indisys_MP_pa_0341 "# t a t e a1 t a #" ("e-a1") )
( Indisys_MP_pa_0342 "# t a t e i1 t a #" ("e-i1") )
( Indisys_MP_pa_0343 "# t a t e u1 t a #" ("e-u1") )
( Indisys_MP_pa_0344 "# t a t e e1 t a #" ("e-e1") )
( Indisys_MP_pa_0345 "# t a t e o1 t a #" ("e-o1") )
( Indisys_MP_pa_0346 "# t a t o a1 t a #" ("o-a1") )
( Indisys_MP_pa_0347 "# t a t o i1 t a #" ("o-i1") )
( Indisys_MP_pa_0348 "# t a t o u1 t a #" ("o-u1") )
( Indisys_MP_pa_0349 "# t a t o e1 t a #" ("o-e1") )
( Indisys_MP_pa_0350 "# t a t o o1 t a #" ("o-o1") )
( Indisys_MP_pa_0351 "# t a t a1 - a1 t a #" ("a1-a1") )
( Indisys_MP_pa_0352 "# t a t a1 - i1 t a #" ("a1-i1") )
( Indisys_MP_pa_0353 "# t a t a1 - u1 t a #" ("a1-u1") )
( Indisys_MP_pa_0354 "# t a t a1 - e1 t a #" ("a1-e1") )
( Indisys_MP_pa_0355 "# t a t a1 - o1 t a #" ("a1-o1") )
( Indisys_MP_pa_0356 "# t a t i1 - a1 t a #" ("i1-a1") )
( Indisys_MP_pa_0357 "# t a t i1 - i1 t a #" ("i1-i1") )
( Indisys_MP_pa_0358 "# t a t i1 - u1 t a #" ("i1-u1") )
( Indisys_MP_pa_0359 "# t a t i1 - e1 t a #" ("i1-e1") )
( Indisys_MP_pa_0360 "# t a t i1 - o1 t a #" ("i1-o1") )
( Indisys_MP_pa_0361 "# t a t u1 - a1 t a #" ("u1-a1") )
( Indisys_MP_pa_0362 "# t a t u1 - i1 t a #" ("u1-i1") )
( Indisys_MP_pa_0363 "# t a t u1 - u1 t a #" ("u1-u1") )
( Indisys_MP_pa_0364 "# t a t u1 - e1 t a #" ("u1-e1") )
( Indisys_MP_pa_0365 "# t a t u1 - o1 t a #" ("u1-o1") )
( Indisys_MP_pa_0366 "# t a t e1 - a1 t a #" ("e1-a1") )
( Indisys_MP_pa_0367 "# t a t e1 - i1 t a #" ("e1-i1") )
( Indisys_MP_pa_0368 "# t a t e1 - u1 t a #" ("e1-u1") )
( Indisys_MP_pa_0369 "# t a t e1 - e1 t a #" ("e1-e1") )
( Indisys_MP_pa_0370 "# t a t e1 - o1 t a #" ("e1-o1") )
( Indisys_MP_pa_0371 "# t a t o1 - a1 t a #" ("o1-a1") )
( Indisys_MP_pa_0372 "# t a t o1 - i1 t a #" ("o1-i1") )
( Indisys_MP_pa_0373 "# t a t o1 - u1 t a #" ("o1-u1") )
( Indisys_MP_pa_0374 "# t a t o1 - e1 t a #" ("o1-e1") )
( Indisys_MP_pa_0375 "# t a t o1 - o1 t a #" ("o1-o1") )
( Indisys_MP_pa_0376 "# t a p - p a1 t a #" ("p-p") )
( Indisys_MP_pa_0377 "# t a p - b a1 t a #" ("p-b") )
( Indisys_MP_pa_0378 "# t a p - ch a1 t a #" ("p-ch") )
( Indisys_MP_pa_0379 "# t a p - d a1 t a #" ("p-d") )
( Indisys_MP_pa_0380 "# t a p - f a1 t a #" ("p-f") )
( Indisys_MP_pa_0381 "# t a p - g a1 t a #" ("p-g") )
( Indisys_MP_pa_0382 "# t a p - k a1 t a #" ("p-k") )
( Indisys_MP_pa_0383 "# t a p - l a1 t a #" ("p-l") )
( Indisys_MP_pa_0384 "# t a p - ll a1 t a #" ("p-ll") )
( Indisys_MP_pa_0385 "# t a p - m a1 t a #" ("p-m") )
( Indisys_MP_pa_0386 "# t a p - n a1 t a #" ("p-n") )
( Indisys_MP_pa_0387 "# t a p - ny a1 t a #" ("p-ny") )
( Indisys_MP_pa_0388 "# t a p - r a1 t a #" ("p-r") )
( Indisys_MP_pa_0389 "# t a p - rr a1 t a #" ("p-rr") )
( Indisys_MP_pa_0390 "# t a p - s a1 t a #" ("p-s") )
( Indisys_MP_pa_0391 "# t a p - t a1 t a #" ("p-t") )
( Indisys_MP_pa_0392 "# t a p - th a1 t a #" ("p-th") )
( Indisys_MP_pa_0393 "# t a p - x a1 t a #" ("p-x") )
( Indisys_MP_pa_0394 "# t a b - p a1 t a #" ("b-p") )
( Indisys_MP_pa_0395 "# t a b - b a1 t a #" ("b-b") )
( Indisys_MP_pa_0396 "# t a b - ch a1 t a #" ("b-ch") )
( Indisys_MP_pa_0397 "# t a b - d a1 t a #" ("b-d") )
( Indisys_MP_pa_0398 "# t a b - f a1 t a #" ("b-f") )
( Indisys_MP_pa_0399 "# t a b - g a1 t a #" ("b-g") )
( Indisys_MP_pa_0400 "# t a b - k a1 t a #" ("b-k") )
( Indisys_MP_pa_0401 "# t a b - l a1 t a #" ("b-l") )
( Indisys_MP_pa_0402 "# t a b - ll a1 t a #" ("b-ll") )
( Indisys_MP_pa_0403 "# t a b - m a1 t a #" ("b-m") )
( Indisys_MP_pa_0404 "# t a b - n a1 t a #" ("b-n") )
( Indisys_MP_pa_0405 "# t a b - ny a1 t a #" ("b-ny") )
( Indisys_MP_pa_0406 "# t a b - r a1 t a #" ("b-r") )
( Indisys_MP_pa_0407 "# t a b - rr a1 t a #" ("b-rr") )
( Indisys_MP_pa_0408 "# t a b - s a1 t a #" ("b-s") )
( Indisys_MP_pa_0409 "# t a b - t a1 t a #" ("b-t") )
( Indisys_MP_pa_0410 "# t a b - th a1 t a #" ("b-th") )
( Indisys_MP_pa_0411 "# t a b - x a1 t a #" ("b-x") )
( Indisys_MP_pa_0412 "# t a d - p a1 t a #" ("d-p") )
( Indisys_MP_pa_0413 "# t a d - b a1 t a #" ("d-b") )
( Indisys_MP_pa_0414 "# t a d - ch a1 t a #" ("d-ch") )
( Indisys_MP_pa_0415 "# t a d - d a1 t a #" ("d-d") )
( Indisys_MP_pa_0416 "# t a d - f a1 t a #" ("d-f") )
( Indisys_MP_pa_0417 "# t a d - g a1 t a #" ("d-g") )
( Indisys_MP_pa_0418 "# t a d - k a1 t a #" ("d-k") )
( Indisys_MP_pa_0419 "# t a d - l a1 t a #" ("d-l") )
( Indisys_MP_pa_0420 "# t a d - ll a1 t a #" ("d-ll") )
( Indisys_MP_pa_0421 "# t a d - m a1 t a #" ("d-m") )
( Indisys_MP_pa_0422 "# t a d - n a1 t a #" ("d-n") )
( Indisys_MP_pa_0423 "# t a d - ny a1 t a #" ("d-ny") )
( Indisys_MP_pa_0424 "# t a d - r a1 t a #" ("d-r") )
( Indisys_MP_pa_0425 "# t a d - rr a1 t a #" ("d-rr") )
( Indisys_MP_pa_0426 "# t a d - s a1 t a #" ("d-s") )
( Indisys_MP_pa_0427 "# t a d - t a1 t a #" ("d-t") )
( Indisys_MP_pa_0428 "# t a d - th a1 t a #" ("d-th") )
( Indisys_MP_pa_0429 "# t a d - x a1 t a #" ("d-x") )
( Indisys_MP_pa_0430 "# t a f - p a1 t a #" ("f-p") )
( Indisys_MP_pa_0431 "# t a f - b a1 t a #" ("f-b") )
( Indisys_MP_pa_0432 "# t a f - ch a1 t a #" ("f-ch") )
( Indisys_MP_pa_0433 "# t a f - d a1 t a #" ("f-d") )
( Indisys_MP_pa_0434 "# t a f - f a1 t a #" ("f-f") )
( Indisys_MP_pa_0435 "# t a f - g a1 t a #" ("f-g") )
( Indisys_MP_pa_0436 "# t a f - k a1 t a #" ("f-k") )
( Indisys_MP_pa_0437 "# t a f - l a1 t a #" ("f-l") )
( Indisys_MP_pa_0438 "# t a f - ll a1 t a #" ("f-ll") )
( Indisys_MP_pa_0439 "# t a f - m a1 t a #" ("f-m") )
( Indisys_MP_pa_0440 "# t a f - n a1 t a #" ("f-n") )
( Indisys_MP_pa_0441 "# t a f - ny a1 t a #" ("f-ny") )
( Indisys_MP_pa_0442 "# t a f - r a1 t a #" ("f-r") )
( Indisys_MP_pa_0443 "# t a f - rr a1 t a #" ("f-rr") )
( Indisys_MP_pa_0444 "# t a f - s a1 t a #" ("f-s") )
( Indisys_MP_pa_0445 "# t a f - t a1 t a #" ("f-t") )
( Indisys_MP_pa_0446 "# t a f - th a1 t a #" ("f-th") )
( Indisys_MP_pa_0447 "# t a f - x a1 t a #" ("f-x") )
( Indisys_MP_pa_0448 "# t a g - p a1 t a #" ("g-p") )
( Indisys_MP_pa_0449 "# t a g - b a1 t a #" ("g-b") )
( Indisys_MP_pa_0450 "# t a g - ch a1 t a #" ("g-ch") )
( Indisys_MP_pa_0451 "# t a g - d a1 t a #" ("g-d") )
( Indisys_MP_pa_0452 "# t a g - f a1 t a #" ("g-f") )
( Indisys_MP_pa_0453 "# t a g - g a1 t a #" ("g-g") )
( Indisys_MP_pa_0454 "# t a g - k a1 t a #" ("g-k") )
( Indisys_MP_pa_0455 "# t a g - l a1 t a #" ("g-l") )
( Indisys_MP_pa_0456 "# t a g - ll a1 t a #" ("g-ll") )
( Indisys_MP_pa_0457 "# t a g - m a1 t a #" ("g-m") )
( Indisys_MP_pa_0458 "# t a g - n a1 t a #" ("g-n") )
( Indisys_MP_pa_0459 "# t a g - ny a1 t a #" ("g-ny") )
( Indisys_MP_pa_0460 "# t a g - r a1 t a #" ("g-r") )
( Indisys_MP_pa_0461 "# t a g - rr a1 t a #" ("g-rr") )
( Indisys_MP_pa_0462 "# t a g - s a1 t a #" ("g-s") )
( Indisys_MP_pa_0463 "# t a g - t a1 t a #" ("g-t") )
( Indisys_MP_pa_0464 "# t a g - th a1 t a #" ("g-th") )
( Indisys_MP_pa_0465 "# t a g - x a1 t a #" ("g-x") )
( Indisys_MP_pa_0466 "# t a k - p a1 t a #" ("k-p") )
( Indisys_MP_pa_0467 "# t a k - b a1 t a #" ("k-b") )
( Indisys_MP_pa_0468 "# t a k - ch a1 t a #" ("k-ch") )
( Indisys_MP_pa_0469 "# t a k - d a1 t a #" ("k-d") )
( Indisys_MP_pa_0470 "# t a k - f a1 t a #" ("k-f") )
( Indisys_MP_pa_0471 "# t a k - g a1 t a #" ("k-g") )
( Indisys_MP_pa_0472 "# t a k - k a1 t a #" ("k-k") )
( Indisys_MP_pa_0473 "# t a k - l a1 t a #" ("k-l") )
( Indisys_MP_pa_0474 "# t a k - ll a1 t a #" ("k-ll") )
( Indisys_MP_pa_0475 "# t a k - m a1 t a #" ("k-m") )
( Indisys_MP_pa_0476 "# t a k - n a1 t a #" ("k-n") )
( Indisys_MP_pa_0477 "# t a k - ny a1 t a #" ("k-ny") )
( Indisys_MP_pa_0478 "# t a k - r a1 t a #" ("k-r") )
( Indisys_MP_pa_0479 "# t a k - rr a1 t a #" ("k-rr") )
( Indisys_MP_pa_0480 "# t a k - s a1 t a #" ("k-s") )
( Indisys_MP_pa_0481 "# t a k - t a1 t a #" ("k-t") )
( Indisys_MP_pa_0482 "# t a k - th a1 t a #" ("k-th") )
( Indisys_MP_pa_0483 "# t a k - x a1 t a #" ("k-x") )
( Indisys_MP_pa_0484 "# t a l - p a1 t a #" ("l-p") )
( Indisys_MP_pa_0485 "# t a l - b a1 t a #" ("l-b") )
( Indisys_MP_pa_0486 "# t a l - ch a1 t a #" ("l-ch") )
( Indisys_MP_pa_0487 "# t a l - d a1 t a #" ("l-d") )
( Indisys_MP_pa_0488 "# t a l - f a1 t a #" ("l-f") )
( Indisys_MP_pa_0489 "# t a l - g a1 t a #" ("l-g") )
( Indisys_MP_pa_0490 "# t a l - k a1 t a #" ("l-k") )
( Indisys_MP_pa_0491 "# t a l - l a1 t a #" ("l-l") )
( Indisys_MP_pa_0492 "# t a l - ll a1 t a #" ("l-ll") )
( Indisys_MP_pa_0493 "# t a l - m a1 t a #" ("l-m") )
( Indisys_MP_pa_0494 "# t a l - n a1 t a #" ("l-n") )
( Indisys_MP_pa_0495 "# t a l - ny a1 t a #" ("l-ny") )
( Indisys_MP_pa_0496 "# t a l - r a1 t a #" ("l-r") )
( Indisys_MP_pa_0497 "# t a l - rr a1 t a #" ("l-rr") )
( Indisys_MP_pa_0498 "# t a l - s a1 t a #" ("l-s") )
( Indisys_MP_pa_0499 "# t a l - t a1 t a #" ("l-t") )
( Indisys_MP_pa_0500 "# t a l - th a1 t a #" ("l-th") )
( Indisys_MP_pa_0501 "# t a l - x a1 t a #" ("l-x") )
( Indisys_MP_pa_0502 "# t a m - p a1 t a #" ("m-p") )
( Indisys_MP_pa_0503 "# t a m - b a1 t a #" ("m-b") )
( Indisys_MP_pa_0504 "# t a m - ch a1 t a #" ("m-ch") )
( Indisys_MP_pa_0505 "# t a m - d a1 t a #" ("m-d") )
( Indisys_MP_pa_0506 "# t a m - f a1 t a #" ("m-f") )
( Indisys_MP_pa_0507 "# t a m - g a1 t a #" ("m-g") )
( Indisys_MP_pa_0508 "# t a m - k a1 t a #" ("m-k") )
( Indisys_MP_pa_0509 "# t a m - l a1 t a #" ("m-l") )
( Indisys_MP_pa_0510 "# t a m - ll a1 t a #" ("m-ll") )
( Indisys_MP_pa_0511 "# t a m - m a1 t a #" ("m-m") )
( Indisys_MP_pa_0512 "# t a m - n a1 t a #" ("m-n") )
( Indisys_MP_pa_0513 "# t a m - ny a1 t a #" ("m-ny") )
( Indisys_MP_pa_0514 "# t a m - r a1 t a #" ("m-r") )
( Indisys_MP_pa_0515 "# t a m - rr a1 t a #" ("m-rr") )
( Indisys_MP_pa_0516 "# t a m - s a1 t a #" ("m-s") )
( Indisys_MP_pa_0517 "# t a m - t a1 t a #" ("m-t") )
( Indisys_MP_pa_0518 "# t a m - th a1 t a #" ("m-th") )
( Indisys_MP_pa_0519 "# t a m - x a1 t a #" ("m-x") )
( Indisys_MP_pa_0520 "# t a n - p a1 t a #" ("n-p") )
( Indisys_MP_pa_0521 "# t a n - b a1 t a #" ("n-b") )
( Indisys_MP_pa_0522 "# t a n - ch a1 t a #" ("n-ch") )
( Indisys_MP_pa_0523 "# t a n - d a1 t a #" ("n-d") )
( Indisys_MP_pa_0524 "# t a n - f a1 t a #" ("n-f") )
( Indisys_MP_pa_0525 "# t a n - g a1 t a #" ("n-g") )
( Indisys_MP_pa_0526 "# t a n - k a1 t a #" ("n-k") )
( Indisys_MP_pa_0527 "# t a n - l a1 t a #" ("n-l") )
( Indisys_MP_pa_0528 "# t a n - ll a1 t a #" ("n-ll") )
( Indisys_MP_pa_0529 "# t a n - m a1 t a #" ("n-m") )
( Indisys_MP_pa_0530 "# t a n - n a1 t a #" ("n-n") )
( Indisys_MP_pa_0531 "# t a n - ny a1 t a #" ("n-ny") )
( Indisys_MP_pa_0532 "# t a n - r a1 t a #" ("n-r") )
( Indisys_MP_pa_0533 "# t a n - rr a1 t a #" ("n-rr") )
( Indisys_MP_pa_0534 "# t a n - s a1 t a #" ("n-s") )
( Indisys_MP_pa_0535 "# t a n - t a1 t a #" ("n-t") )
( Indisys_MP_pa_0536 "# t a n - th a1 t a #" ("n-th") )
( Indisys_MP_pa_0537 "# t a n - x a1 t a #" ("n-x") )
( Indisys_MP_pa_0538 "# t a r - p a1 t a #" ("r-p") )
( Indisys_MP_pa_0539 "# t a r - b a1 t a #" ("r-b") )
( Indisys_MP_pa_0540 "# t a r - ch a1 t a #" ("r-ch") )
( Indisys_MP_pa_0541 "# t a r - d a1 t a #" ("r-d") )
( Indisys_MP_pa_0542 "# t a r - f a1 t a #" ("r-f") )
( Indisys_MP_pa_0543 "# t a r - g a1 t a #" ("r-g") )
( Indisys_MP_pa_0544 "# t a r - k a1 t a #" ("r-k") )
( Indisys_MP_pa_0545 "# t a r - l a1 t a #" ("r-l") )
( Indisys_MP_pa_0546 "# t a r - ll a1 t a #" ("r-ll") )
( Indisys_MP_pa_0547 "# t a r - m a1 t a #" ("r-m") )
( Indisys_MP_pa_0548 "# t a r - n a1 t a #" ("r-n") )
( Indisys_MP_pa_0549 "# t a r - ny a1 t a #" ("r-ny") )
( Indisys_MP_pa_0550 "# t a r - r a1 t a #" ("r-r") )
( Indisys_MP_pa_0551 "# t a r - rr a1 t a #" ("r-rr") )
( Indisys_MP_pa_0552 "# t a r - s a1 t a #" ("r-s") )
( Indisys_MP_pa_0553 "# t a r - t a1 t a #" ("r-t") )
( Indisys_MP_pa_0554 "# t a r - th a1 t a #" ("r-th") )
( Indisys_MP_pa_0555 "# t a r - x a1 t a #" ("r-x") )
( Indisys_MP_pa_0556 "# t a s - p a1 t a #" ("s-p") )
( Indisys_MP_pa_0557 "# t a s - b a1 t a #" ("s-b") )
( Indisys_MP_pa_0558 "# t a s - ch a1 t a #" ("s-ch") )
( Indisys_MP_pa_0559 "# t a s - d a1 t a #" ("s-d") )
( Indisys_MP_pa_0560 "# t a s - f a1 t a #" ("s-f") )
( Indisys_MP_pa_0561 "# t a s - g a1 t a #" ("s-g") )
( Indisys_MP_pa_0562 "# t a s - k a1 t a #" ("s-k") )
( Indisys_MP_pa_0563 "# t a s - l a1 t a #" ("s-l") )
( Indisys_MP_pa_0564 "# t a s - ll a1 t a #" ("s-ll") )
( Indisys_MP_pa_0565 "# t a s - m a1 t a #" ("s-m") )
( Indisys_MP_pa_0566 "# t a s - n a1 t a #" ("s-n") )
( Indisys_MP_pa_0567 "# t a s - ny a1 t a #" ("s-ny") )
( Indisys_MP_pa_0568 "# t a s - r a1 t a #" ("s-r") )
( Indisys_MP_pa_0569 "# t a s - rr a1 t a #" ("s-rr") )
( Indisys_MP_pa_0570 "# t a s - s a1 t a #" ("s-s") )
( Indisys_MP_pa_0571 "# t a s - t a1 t a #" ("s-t") )
( Indisys_MP_pa_0572 "# t a s - th a1 t a #" ("s-th") )
( Indisys_MP_pa_0573 "# t a s - x a1 t a #" ("s-x") )
( Indisys_MP_pa_0574 "# t a t - p a1 t a #" ("t-p") )
( Indisys_MP_pa_0575 "# t a t - b a1 t a #" ("t-b") )
( Indisys_MP_pa_0576 "# t a t - ch a1 t a #" ("t-ch") )
( Indisys_MP_pa_0577 "# t a t - d a1 t a #" ("t-d") )
( Indisys_MP_pa_0578 "# t a t - f a1 t a #" ("t-f") )
( Indisys_MP_pa_0579 "# t a t - g a1 t a #" ("t-g") )
( Indisys_MP_pa_0580 "# t a t - k a1 t a #" ("t-k") )
( Indisys_MP_pa_0581 "# t a t - l a1 t a #" ("t-l") )
( Indisys_MP_pa_0582 "# t a t - ll a1 t a #" ("t-ll") )
( Indisys_MP_pa_0583 "# t a t - m a1 t a #" ("t-m") )
( Indisys_MP_pa_0584 "# t a t - n a1 t a #" ("t-n") )
( Indisys_MP_pa_0585 "# t a t - ny a1 t a #" ("t-ny") )
( Indisys_MP_pa_0586 "# t a t - r a1 t a #" ("t-r") )
( Indisys_MP_pa_0587 "# t a t - rr a1 t a #" ("t-rr") )
( Indisys_MP_pa_0588 "# t a t - s a1 t a #" ("t-s") )
( Indisys_MP_pa_0589 "# t a t - t a1 t a #" ("t-t") )
( Indisys_MP_pa_0590 "# t a t - th a1 t a #" ("t-th") )
( Indisys_MP_pa_0591 "# t a t - x a1 t a #" ("t-x") )
( Indisys_MP_pa_0592 "# t a th - p a1 t a #" ("th-p") )
( Indisys_MP_pa_0593 "# t a th - b a1 t a #" ("th-b") )
( Indisys_MP_pa_0594 "# t a th - ch a1 t a #" ("th-ch") )
( Indisys_MP_pa_0595 "# t a th - d a1 t a #" ("th-d") )
( Indisys_MP_pa_0596 "# t a th - f a1 t a #" ("th-f") )
( Indisys_MP_pa_0597 "# t a th - g a1 t a #" ("th-g") )
( Indisys_MP_pa_0598 "# t a th - k a1 t a #" ("th-k") )
( Indisys_MP_pa_0599 "# t a th - l a1 t a #" ("th-l") )
( Indisys_MP_pa_0600 "# t a th - ll a1 t a #" ("th-ll") )
( Indisys_MP_pa_0601 "# t a th - m a1 t a #" ("th-m") )
( Indisys_MP_pa_0602 "# t a th - n a1 t a #" ("th-n") )
( Indisys_MP_pa_0603 "# t a th - ny a1 t a #" ("th-ny") )
( Indisys_MP_pa_0604 "# t a th - r a1 t a #" ("th-r") )
( Indisys_MP_pa_0605 "# t a th - rr a1 t a #" ("th-rr") )
( Indisys_MP_pa_0606 "# t a th - s a1 t a #" ("th-s") )
( Indisys_MP_pa_0607 "# t a th - t a1 t a #" ("th-t") )
( Indisys_MP_pa_0608 "# t a th - th a1 t a #" ("th-th") )
( Indisys_MP_pa_0609 "# t a th - x a1 t a #" ("th-x") )
( Indisys_MP_pa_0610 "# t a x - p a1 t a #" ("x-p") )
( Indisys_MP_pa_0611 "# t a x - b a1 t a #" ("x-b") )
( Indisys_MP_pa_0612 "# t a x - ch a1 t a #" ("x-ch") )
( Indisys_MP_pa_0613 "# t a x - d a1 t a #" ("x-d") )
( Indisys_MP_pa_0614 "# t a x - f a1 t a #" ("x-f") )
( Indisys_MP_pa_0615 "# t a x - g a1 t a #" ("x-g") )
( Indisys_MP_pa_0616 "# t a x - k a1 t a #" ("x-k") )
( Indisys_MP_pa_0617 "# t a x - l a1 t a #" ("x-l") )
( Indisys_MP_pa_0618 "# t a x - ll a1 t a #" ("x-ll") )
( Indisys_MP_pa_0619 "# t a x - m a1 t a #" ("x-m") )
( Indisys_MP_pa_0620 "# t a x - n a1 t a #" ("x-n") )
( Indisys_MP_pa_0621 "# t a x - ny a1 t a #" ("x-ny") )
( Indisys_MP_pa_0622 "# t a x - r a1 t a #" ("x-r") )
( Indisys_MP_pa_0623 "# t a x - rr a1 t a #" ("x-rr") )
( Indisys_MP_pa_0624 "# t a x - s a1 t a #" ("x-s") )
( Indisys_MP_pa_0625 "# t a x - t a1 t a #" ("x-t") )
( Indisys_MP_pa_0626 "# t a x - th a1 t a #" ("x-th") )
( Indisys_MP_pa_0627 "# t a x - x a1 t a #" ("x-x") )
( Indisys_MP_pa_0628 "# t a b - z a1 t a #" ("b-z") )
( Indisys_MP_pa_0629 "# t a d - z a1 t a #" ("d-z") )
( Indisys_MP_pa_0630 "# t a g - z a1 t a #" ("g-z") )
( Indisys_MP_pa_0631 "# t a l - z a1 t a #" ("l-z") )
( Indisys_MP_pa_0632 "# t a m - z a1 t a #" ("m-z") )
( Indisys_MP_pa_0633 "# t a n - z a1 t a #" ("n-z") )
( Indisys_MP_pa_0634 "# t a r - z a1 t a #" ("r-z") )
( Indisys_MP_pa_0635 "# t a z - b a1 t a #" ("z-b") )
( Indisys_MP_pa_0636 "# t a z - d a1 t a #" ("z-d") )
( Indisys_MP_pa_0637 "# t a z - g a1 t a #" ("z-g") )
( Indisys_MP_pa_0638 "# t a z - l a1 t a #" ("z-l") )
( Indisys_MP_pa_0639 "# t a z - m a1 t a #" ("z-m") )
( Indisys_MP_pa_0640 "# t a z - n a1 t a #" ("z-n") )
( Indisys_MP_pa_0641 "# t a z - r a1 t a #" ("z-r") )
( Indisys_MP_pa_0642 "# t a r - v a1 t a #" ("r-v") )
( Indisys_MP_pa_0643 "# t a z - v a1 t a #" ("z-v") )
( Indisys_MP_pa_0644 "# t a v - r a1 t a #" ("v-r") )
( Indisys_MP_pa_0645 "# t a v - z a1 t a #" ("v-z") )
( Indisys_MP_pa_0646 "# t a p - sh a1 t a #" ("p-sh") )
( Indisys_MP_pa_0647 "# t a f - sh a1 t a #" ("f-sh") )
( Indisys_MP_pa_0648 "# t a k - sh a1 t a #" ("k-sh") )
( Indisys_MP_pa_0649 "# t a t - sh a1 t a #" ("t-sh") )
( Indisys_MP_pa_0650 "# t a sh - p a1 t a #" ("sh-p") )
( Indisys_MP_pa_0651 "# t a sh - f a1 t a #" ("sh-f") )
( Indisys_MP_pa_0652 "# t a sh - k a1 t a #" ("sh-k") )
( Indisys_MP_pa_0653 "# t a sh - t a1 t a #" ("sh-t") )
( Indisys_MP_pa_0654 "# a1 t a #" ("#-a1") )
( Indisys_MP_pa_0655 "# i1 t a #" ("#-i1") )
( Indisys_MP_pa_0656 "# u1 t a #" ("#-u1") )
( Indisys_MP_pa_0657 "# e1 t a #" ("#-e1") )
( Indisys_MP_pa_0658 "# o1 t a #" ("#-o1") )
( Indisys_MP_pa_0659 "# a t a1 #" ("#-a") )
( Indisys_MP_pa_0660 "# i t a1 #" ("#-i") )
( Indisys_MP_pa_0661 "# u t a1 #" ("#-u") )
( Indisys_MP_pa_0662 "# e t a1 #" ("#-e") )
( Indisys_MP_pa_0663 "# o t a1 #" ("#-o") )
( Indisys_MP_pa_0664 "# ax t a1 #" ("#-ax") )
( Indisys_MP_pa_0665 "# p a1 t a #" ("#-p") )
( Indisys_MP_pa_0666 "# b a1 t a #" ("#-b") )
( Indisys_MP_pa_0667 "# ch a1 t a #" ("#-ch") )
( Indisys_MP_pa_0668 "# d a1 t a #" ("#-d") )
( Indisys_MP_pa_0669 "# f a1 t a #" ("#-f") )
( Indisys_MP_pa_0670 "# g a1 t a #" ("#-g") )
( Indisys_MP_pa_0671 "# k a1 t a #" ("#-k") )
( Indisys_MP_pa_0672 "# l a1 t a #" ("#-l") )
( Indisys_MP_pa_0673 "# ll a1 t a #" ("#-ll") )
( Indisys_MP_pa_0674 "# m a1 t a #" ("#-m") )
( Indisys_MP_pa_0675 "# n a1 t a #" ("#-n") )
( Indisys_MP_pa_0676 "# ny a1 t a #" ("#-ny") )
( Indisys_MP_pa_0677 "# r a1 t a #" ("#-r") )
( Indisys_MP_pa_0678 "# rr a1 t a #" ("#-rr") )
( Indisys_MP_pa_0679 "# s a1 t a #" ("#-s") )
( Indisys_MP_pa_0680 "# t a1 t a #" ("#-t") )
( Indisys_MP_pa_0681 "# th a1 t a #" ("#-th") )
( Indisys_MP_pa_0682 "# x a1 t a #" ("#-x") )
( Indisys_MP_pa_0683 "# dh a1 t a #" ("#-dh") )
( Indisys_MP_pa_0684 "# hh a1 t a #" ("#-hh") )
( Indisys_MP_pa_0685 "# sh a1 t a #" ("#-sh") )
( Indisys_MP_pa_0686 "# v a1 t a #" ("#-v") )
( Indisys_MP_pa_0687 "# z a1 t a #" ("#-z") )
( Indisys_MP_pa_0688 "# zh a1 t a #" ("#-zh") )
( Indisys_MP_pa_0689 "# t a t a1 p #" ("p-#") )
( Indisys_MP_pa_0690 "# t a t a1 b #" ("b-#") )
( Indisys_MP_pa_0691 "# t a t a1 ch #" ("ch-#") )
( Indisys_MP_pa_0692 "# t a t a1 d #" ("d-#") )
( Indisys_MP_pa_0693 "# t a t a1 f #" ("f-#") )
( Indisys_MP_pa_0694 "# t a t a1 g #" ("g-#") )
( Indisys_MP_pa_0695 "# t a t a1 k #" ("k-#") )
( Indisys_MP_pa_0696 "# t a t a1 l #" ("l-#") )
( Indisys_MP_pa_0697 "# t a t a1 m #" ("m-#") )
( Indisys_MP_pa_0698 "# t a t a1 n #" ("n-#") )
( Indisys_MP_pa_0699 "# t a t a1 r #" ("r-#") )
( Indisys_MP_pa_0700 "# t a t a1 s #" ("s-#") )
( Indisys_MP_pa_0701 "# t a t a1 t #" ("t-#") )
( Indisys_MP_pa_0702 "# t a t a1 th #" ("th-#") )
( Indisys_MP_pa_0703 "# t a t a1 x #" ("x-#") )
( Indisys_MP_pa_0704 "# t a t a1 sh #" ("sh-#") )
( Indisys_MP_pa_0705 "# t a t a1 v #" ("v-#") )
( Indisys_MP_pa_0706 "# t a t a1 z #" ("z-#") )
( Indisys_MP_pa_0707 "# t a t a1 #" ("a1-#") )
( Indisys_MP_pa_0708 "# t a t i1 #" ("i1-#") )
( Indisys_MP_pa_0709 "# t a t u1 #" ("u1-#") )
( Indisys_MP_pa_0710 "# t a t e1 #" ("e1-#") )
( Indisys_MP_pa_0711 "# t a t o1 #" ("o1-#") )
( Indisys_MP_pa_0712 "# t a1 t a #" ("a-#") )
( Indisys_MP_pa_0713 "# t a1 t i #" ("i-#") )
( Indisys_MP_pa_0714 "# t a1 t u #" ("u-#") )
( Indisys_MP_pa_0715 "# t a1 t e #" ("e-#") )
( Indisys_MP_pa_0716 "# t a1 t o #" ("o-#") )
( Indisys_MP_pa_0717 "# t a1 t ax #" ("ax-#") )
( Indisys_MP_pa_0718 "# t a - p l a1 t a #" ("p_-_l") )
( Indisys_MP_pa_0719 "# t a - b l a1 t a #" ("b_-_l") )
( Indisys_MP_pa_0720 "# t a - k l a1 t a #" ("k_-_l") )
( Indisys_MP_pa_0721 "# t a - g l a1 t a #" ("g_-_l") )
( Indisys_MP_pa_0722 "# t a - p r a1 t a #" ("p_-_r") )
( Indisys_MP_pa_0723 "# t a - b r a1 t a #" ("b_-_r") )
( Indisys_MP_pa_0724 "# t a - k r a1 t a #" ("k_-_r") )
( Indisys_MP_pa_0725 "# g r u1 p o s #" ("g_-_r") )
( Indisys_MP_pa_0726 "# t a - s l a1 t a #" ("s_-_l") )
( Indisys_MP_pa_0727 "# t a - s n a1 t a #" ("s_-_n") )
( Indisys_MP_pa_0728 "# t a - s m a1 t a #" ("s_-_m") )
( Indisys_MP_pa_0729 "# t a - s p a1 t a #" ("s_-_p") )
( Indisys_MP_pa_0730 "# t a - s t a1 t a #" ("s_-_t") )
( Indisys_MP_pa_0731 "# t a - s k a1 t a #" ("s_-_k") )
( Indisys_MP_pa_0732 "# t a - s f a1 t a #" ("s_-_f") )
( Indisys_MP_pa_0733 "# t a - f l a1 t a #" ("f_-_l") )
( Indisys_MP_pa_0734 "# t a - f r a1 t a #" ("f_-_r") )
( Indisys_MP_pa_0735 "# t a - k l a1 t a #" ("l-a1") )
( Indisys_MP_pa_0736 "# t a - k l i1 t a #" ("l-i1") )
( Indisys_MP_pa_0737 "# t a - k l u1 t a #" ("l-u1") )
( Indisys_MP_pa_0738 "# t a - k l e1 t a #" ("l-e1") )
( Indisys_MP_pa_0739 "# t a - k l o1 t a #" ("l-o1") )
( Indisys_MP_pa_0740 "# t a - k r a1 t a #" ("r-a1") )
( Indisys_MP_pa_0741 "# t a - k r i1 t a #" ("r-i1") )
( Indisys_MP_pa_0742 "# t a - k r u1 t a #" ("r-u1") )
( Indisys_MP_pa_0743 "# t a - k r e1 t a #" ("r-e1") )
( Indisys_MP_pa_0744 "# t a - k r o1 t a #" ("r-o1") )
( Indisys_MP_pa_0745 "# t a - k l a t a1 #" ("l-a") )
( Indisys_MP_pa_0746 "# t a - k l i t a1 #" ("l-i") )
( Indisys_MP_pa_0747 "# t a - k l u t a1 #" ("l-u") )
( Indisys_MP_pa_0748 "# t a - k l e t a1 #" ("l-e") )
( Indisys_MP_pa_0749 "# t a - k l o t a1 #" ("l-o") )
( Indisys_MP_pa_0750 "# t a - k l ax t a1 #" ("l-ax") )
( Indisys_MP_pa_0751 "# t a - k r a t a1 #" ("r-a") )
( Indisys_MP_pa_0752 "# t a - k r i t a1 #" ("r-i") )
( Indisys_MP_pa_0753 "# t a - k r u t a1 #" ("r-u") )
( Indisys_MP_pa_0754 "# t a - k r e t a1 #" ("r-e") )
( Indisys_MP_pa_0755 "# t a - k r o t a1 #" ("r-o") )
( Indisys_MP_pa_0756 "# t a - k r ax t a1 #" ("r-ax") )
( Indisys_MP_pa_0757 "# t a t a # #" ("#-#") )
( Indisys_MP_pa_0758 "# t a b a1 b a #" ("b-a1" "a1-b") )
( Indisys_MP_pa_0759 "# t a d a1 d a #" ("d-a1" "a1-d") )
( Indisys_MP_pa_0760 "# t a g a1 g a #" ("g-a1" "a1-g") )
( Indisys_MP_pa_0761 "# t a b i1 b a #" ("b-i1" "i1-b") )
( Indisys_MP_pa_0762 "# t a d i1 d a #" ("d-i1" "i1-d") )
( Indisys_MP_pa_0763 "# t a g i1 g a #" ("g-i1" "i1-g") )
( Indisys_MP_pa_0764 "# t a b u1 b a #" ("b-u1" "u1-b") )
( Indisys_MP_pa_0765 "# t a d u1 d a #" ("d-u1" "u1-d") )
( Indisys_MP_pa_0766 "# t a g u1 g a #" ("g-u1" "u1-g") )
( Indisys_MP_pa_0767 "# t a b e1 b a #" ("b-e1" "e1-b") )
( Indisys_MP_pa_0768 "# t a d e1 d a #" ("d-e1" "e1-d") )
( Indisys_MP_pa_0769 "# t a g e1 g a #" ("g-e1" "e1-g") )
( Indisys_MP_pa_0770 "# t a b o1 b a #" ("b-o1" "o1-b") )
( Indisys_MP_pa_0771 "# t a d o1 d a #" ("d-o1" "o1-d") )
( Indisys_MP_pa_0772 "# t a g o1 g a #" ("g-o1" "o1-g") )
( Indisys_MP_pa_0773 "# t a1 b a b a #" ("b-a" "a-b") )
( Indisys_MP_pa_0774 "# t a1 d a d a #" ("d-a" "a-d") )
( Indisys_MP_pa_0775 "# t a1 g a g a #" ("g-a" "a-g") )
( Indisys_MP_pa_0776 "# t a1 b i b a #" ("b-i" "i-b") )
( Indisys_MP_pa_0777 "# t a1 d i d a #" ("d-i" "i-d") )
( Indisys_MP_pa_0778 "# t a1 g i g a #" ("g-i" "i-g") )
( Indisys_MP_pa_0779 "# t a1 b u b a #" ("b-u" "u-b") )
( Indisys_MP_pa_0780 "# t a1 d u d a #" ("d-u" "u-d") )
( Indisys_MP_pa_0781 "# t a1 g u g a #" ("g-u" "u-g") )
( Indisys_MP_pa_0782 "# t a1 b e b a #" ("b-e" "e-b") )
( Indisys_MP_pa_0783 "# t a1 d e d a #" ("d-e" "e-d") )
( Indisys_MP_pa_0784 "# t a1 g e g a #" ("g-e" "e-g") )
( Indisys_MP_pa_0785 "# t a1 b o b a #" ("b-o" "o-b") )
( Indisys_MP_pa_0786 "# t a1 d o d a #" ("d-o" "o-d") )
( Indisys_MP_pa_0787 "# t a1 g o g a #" ("g-o" "o-g") )
( Indisys_MP_pa_0788 "# t a1 b ax b a #" ("b-ax" "ax-b") )
( Indisys_MP_pa_0789 "# t a1 d ax d a #" ("d-ax" "ax-d") )
( Indisys_MP_pa_0790 "# t a1 g ax g a #" ("g-ax" "ax-g") )
( Indisys_MP_pa_0791 "# o1 t r o s #" ("t_-_r") )
( Indisys_MP_pa_0792 "# m i m a1 d r e #" ("d_-_r") )

View File

@ -0,0 +1,298 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Try to find out where we are
(if (assoc 'JuntaDeAndalucia_es_pa_diphone voice-locations)
(defvar JuntaDeAndalucia_es_pa_dir
(cdr (assoc 'JuntaDeAndalucia_es_pa_diphone voice-locations)))
;;; Not installed in Festival yet so assume running in place
(defvar JuntaDeAndalucia_es_pa_dir (pwd)))
(if (not (probe_file (path-append JuntaDeAndalucia_es_pa_dir "festvox/")))
(begin
(format stderr "JuntaDeAndalucia_es_pa: Can't find voice scm files they are not in\n")
(format stderr " %s\n" (path-append JuntaDeAndalucia_es_pa_dir "festvox/"))
(format stderr " Either the voice isn't linked into Festival\n")
(format stderr " or you are starting festival in the wrong directory\n")
(error)))
;;; Add the directory contains general voice stuff to load-path
(set! load-path (cons (path-append JuntaDeAndalucia_es_pa_dir "festvox/") load-path))
;;; Voice specific parameter are defined in each of the following
;;; files
(require 'JuntaDeAndalucia_es_pa_phoneset)
(require 'JuntaDeAndalucia_es_pa_tokenizer)
(require 'JuntaDeAndalucia_es_pa_tagger)
(require 'JuntaDeAndalucia_es_pa_lexicon)
(require 'JuntaDeAndalucia_es_pa_phrasing)
(require 'JuntaDeAndalucia_es_pa_intonation)
;;The modules below load the CART-tree duration model and the F0 contour model for JuntaDeAndalucia_es_pa
(require 'JuntaDeAndalucia_es_pa_duration)
(require 'JuntaDeAndalucia_es_pa_f0model)
(require 'JuntaDeAndalucia_es_pa_other)
;; ... and others as required
;;; Ensure we have a festival with the right diphone support compiled in
(require_module 'UniSyn)
(set! JuntaDeAndalucia_es_pa_lpc_sep
(list
'(name "JuntaDeAndalucia_es_pa_lpc_sep")
(list 'index_file (path-append JuntaDeAndalucia_es_pa_dir "dic/padiph.est"))
'(grouped "false")
(list 'coef_dir (path-append JuntaDeAndalucia_es_pa_dir "lpc"))
(list 'sig_dir (path-append JuntaDeAndalucia_es_pa_dir "lpc"))
'(coef_ext ".lpc")
'(sig_ext ".res")
(list 'default_diphone
(string-append
(car (cadr (car (PhoneSet.description '(silences)))))
"-"
(car (cadr (car (PhoneSet.description '(silences)))))))))
(set! JuntaDeAndalucia_es_pa_lpc_group
(list
'(name "pa_lpc_group")
(list 'index_file
(path-append JuntaDeAndalucia_es_pa_dir "group/palpc16k.group"))
'(grouped "true")
(list 'default_diphone
(string-append
(car (cadr (car (PhoneSet.description '(silences)))))
"-"
(car (cadr (car (PhoneSet.description '(silences)))))))))
;; Go ahead and set up the diphone db
;(set! JuntaDeAndalucia_es_pa_db_name (us_diphone_init JuntaDeAndalucia_es_pa_lpc_sep))
;; Once you've built the group file you can comment out the above and
;; uncomment the following.
(set! JuntaDeAndalucia_es_pa_db_name (us_diphone_init JuntaDeAndalucia_es_pa_lpc_group))
(define (JuntaDeAndalucia_es_pa_diphone_fix utt)
"(JuntaDeAndalucia_es_pa_diphone_fix UTT)
Map phones to phonological variants if the diphone database supports
them."
(mapcar
(lambda (s)
(let ((name (item.name s)))
(JuntaDeAndalucia_es_pa_diphone_fix_phone_name utt s)
))
(utt.relation.items utt 'Segment))
utt)
(define (JuntaDeAndalucia_es_pa_diphone_fix_phone_name utt seg)
"(JuntaDeAndalucia_es_pa_fix_phone_name UTT SEG)
Add the feature diphone_phone_name to given segment with the appropriate
name for constructing a diphone. Basically adds _ if either side is part
of the same consonant cluster, adds $ either side if in different
syllable for preceding/succeeding vowel syllable."
(let ((name (item.name seg)))
(cond
((string-equal name "pau") t)
((string-equal "-" (item.feat seg 'ph_vc))
(if (and (member_string name '(r w y l))
(member_string (item.feat seg "p.name") '(p t k b d g))
(item.relation.prev seg "SylStructure"))
(item.set_feat seg "us_diphone_right" (format nil "_%s" name)))
(if (and (member_string name '(w y l m n p t k))
(string-equal (item.feat seg "p.name") 's)
(item.relation.prev seg "SylStructure"))
(item.set_feat seg "us_diphone_right" (format nil "_%s" name)))
(if (and (string-equal name 's)
(member_string (item.feat seg "n.name") '(w y l m n p t k))
(item.relation.next seg "SylStructure"))
(item.set_feat seg "us_diphone_left" (format nil "%s_" name)))
(if (and (string-equal name 'hh)
(string-equal (item.feat seg "n.name") 'y))
(item.set_feat seg "us_diphone_left" (format nil "%s_" name)))
(if (and (string-equal name 'y)
(string-equal (item.feat seg "p.name") 'hh))
(item.set_feat seg "us_diphone_right" (format nil "_%s" name)))
(if (and (member_string name '(p t k b d g))
(member_string (item.feat seg "n.name") '(r w y l))
(item.relation.next seg "SylStructure"))
(item.set_feat seg "us_diphone_left" (format nil "%s_" name)))
)
((string-equal "ah" (item.name seg))
(item.set_feat seg "us_diphone" "aa"))
)))
(define (JuntaDeAndalucia_es_pa_voice_reset)
"(JuntaDeAndalucia_es_pa_voice_reset)
Reset global variables back to previous voice."
(JuntaDeAndalucia_es_pa::reset_phoneset)
(JuntaDeAndalucia_es_pa::reset_tokenizer)
(JuntaDeAndalucia_es_pa::reset_tagger)
(JuntaDeAndalucia_es_pa::reset_lexicon)
(JuntaDeAndalucia_es_pa::reset_phrasing)
(JuntaDeAndalucia_es_pa::reset_intonation)
(JuntaDeAndalucia_es_pa::reset_duration)
(JuntaDeAndalucia_es_pa::reset_f0model)
(JuntaDeAndalucia_es_pa::reset_other)
)
;;; Full voice definition
(define (voice_JuntaDeAndalucia_es_pa_diphone)
"(voice_JuntaDeAndalucia_es_pa_diphone)
Set speaker to pa in us from JuntaDeAndalucia."
;; No pos prediction (get it from lexicon)
(set! pos_lex_name nil)
;; Phrase break prediction by punctuation
(set! pos_supported nil) ;; well not real pos anyhow
;; Accent and tone prediction
(set! int_accent_cart_tree JuntaDeAndalucia_es_phrase_cart_tree)
(Parameter.set 'Int_Target_Method 'Simple)
(set! int_general_params (list (list 'targ_func JuntaDeAndalucia_es_pa_targ_func1)))
(set! guess_pos spanish_guess_pos)
(Parameter.set 'Int_Method 'General)
;; Token to words
(set! token_to_words JuntaDeAndalucia_es_pa::token_to_words)
(Parameter.set 'Token_Method 'Token_Any)
;; Duration prediction
;;Uncomment this for loading the linear regression duration model
;;This requires JuntaDeAndalucia_es_pa_durtreeZ.scm
(set! duration_cart_tree JuntaDeAndalucia_es_pa_durtreeZ::zdur_tree)
(set! duration_ph_info JuntaDeAndalucia_es_pa_durtreeZ::phone_durs)
; (Parameter.set 'Duration_Method 'Tree_ZScores)
;;Uncomment this for loading the rule-based duration model
;;This requires Indisys_MP_es_pa_durdata.scm
; (set! duration_cart_tree JuntaDeAndalucia_es_pa::zdur_tree)
; (set! duration_ph_info JuntaDeAndalucia_es_pa::phone_durs)
; (Parameter.set 'Duration_Method 'Tree_ZScores)
;; Select appropriate phone set
(JuntaDeAndalucia_es_pa::select_phoneset)
;; Select appropriate tokenization
(JuntaDeAndalucia_es_pa::select_tokenizer)
;; For part of speech tagging
(JuntaDeAndalucia_es_pa::select_tagger)
(JuntaDeAndalucia_es_pa::select_lexicon)
(JuntaDeAndalucia_es_pa::select_phrasing)
(JuntaDeAndalucia_es_pa::select_intonation)
(JuntaDeAndalucia_es_pa::select_duration)
(JuntaDeAndalucia_es_pa::select_f0model)
;; Waveform synthesizer: UniSyn diphones
(set! UniSyn_module_hooks (list JuntaDeAndalucia_es_pa_diphone_fix))
(set! us_abs_offset 0.0)
(set! window_factor 1.0)
(set! us_rel_offset 0.0)
(set! us_gain 0.9)
(Parameter.set 'Synth_Method 'UniSyn)
(Parameter.set 'POS_Method Classic_POS)
(Parameter.set 'Phrasify_Method Classic_Phrasify)
(Parameter.set 'Word_Method Classic_Word)
(Parameter.set 'Pause_Method Classic_Pauses)
(Parameter.set 'PostLex_Method Classic_PostLex)
(Parameter.set 'us_sigpr 'lpc)
(us_db_select JuntaDeAndalucia_es_pa_db_name)
;; This is where you can modify power (and sampling rate) if desired
(set! after_synth_hooks nil)
; (set! after_synth_hooks
; (list
; (lambda (utt)
; (utt.wave.rescale utt 2.1))))
;; set callback to restore some original values changed by this voice
(set! current_voice_reset JuntaDeAndalucia_es_pa_voice_reset)
(set! current-voice 'JuntaDeAndalucia_es_pa_diphone)
)
(proclaim_voice
'JuntaDeAndalucia_es_pa_diphone
'((language spanish)
(gender female)
(dialect standard)
(description
"This is a standard male Spanish voice for the Festival UniSyn residual excited LPC diphone synthesizer developed by the Consejería de Innovación, Ciencia y Empresa of the Junta de Andalucía (Andalusian government). It includes an addenda for the pronunciation of special terms and abbreviations, hand-written letter-to-sound rules, a corpus-based F0 contour, a stochastic duration model, and punctuation-based prosodic phrasing. It was developed for the Guadalinex v4.0 distribution."
)
(builtwith festvox-2.0)))
(provide 'JuntaDeAndalucia_es_pa_diphone)

View File

@ -0,0 +1,102 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Duration model
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
(require 'JuntaDeAndalucia_es_pa_durdata)
;;The following module loads the stochastic duration model
(require 'JuntaDeAndalucia_es_pa_durtreeZ_dur)
(define (JuntaDeAndalucia_es_pa::select_duration)
"(JuntaDeAndalucia_es_pa::select_duration)
Set up duration model for Spanish."
;;Uncomment this for loading the linear regression duration model
;;This requires JuntaDeAndalucia_es_pa_durtreeZ_dur.scm
(set! duration_cart_tree JuntaDeAndalucia_es_pa_durtreeZ::zdur_tree)
(set! duration_ph_info JuntaDeAndalucia_es_pa_durtreeZ::phone_durs)
(Parameter.set 'Duration_Method 'Tree_ZScores)
;;Speed up the voice with Duration_Stretch. An 0.8 value is recommended. The lowest the value, the shortest the predicted duration.
(Parameter.set 'Duration_Stretch 0.95)
;;Uncomment this for loading the rule-based duration model
; (set! duration_cart_tree JuntaDeAndalucia_es_pa::zdur_tree)
; (set! duration_ph_info JuntaDeAndalucia_es_pa::phone_durs)
; (Parameter.set 'Duration_Method 'Tree_ZScores)
; (Parameter.set 'Duration_Stretch 1.1)
)
(define (JuntaDeAndalucia_es_pa::reset_duration)
"(JuntaDeAndalucia_es_pa::reset_duration)
Reset duration information."
t
)
(provide 'JuntaDeAndalucia_es_pa_duration)

View File

@ -0,0 +1,135 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; A hand-specified tree to predict zcore durations
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(set! JuntaDeAndalucia_es_pa::zdur_tree
'
((R:SylStructure.parent.R:Syllable.p.syl_break > 1 ) ;; clause initial
((R:SylStructure.parent.stress is 1)
((1.5))
((1.2)))
((R:SylStructure.parent.syl_break > 1) ;; clause final
((R:SylStructure.parent.stress is 1)
((1.5))
((1.2)))
((R:SylStructure.parent.stress is 1)
((ph_vc is +)
((1.2))
((1.0)))
((1.0))))))
(set! JuntaDeAndalucia_es_pa::phone_durs '
;;; PHONE DURATION DATA for a male speaker
((# 0.2 0.1)
(hh 0.128333 0.011547)
(v 0.055 0)
(z 0.1925 0.153412)
(zh 0.071667 0.010408)
(sh 0.159063 0.031317)
(ax 0.114792 0.033247)
(g 0.065618 0.028166)
(G 0.061273 0.0108)
(ch 0.10881 0.023161)
(th 0.084569 0.020218)
(x 0.101895 0.032812)
(rr 0.06273 0.039562)
(D 0.046703 0.013427)
(l 0.064452 0.037988)
(u1 0.088183 0.028937)
(B 0.056447 0.044375)
(a1 0.07501 0.021418)
(ll 0.074762 0.05134)
(n 0.060139 0.037319)
(p 0.079495 0.03356)
(e 0.061907 0.027652)
(ny 0.082412 0.017889)
(e1 0.072743 0.033709)
(a 0.079118 0.086339)
(i1 0.071536 0.022886)
(b 0.061173 0.038494)
(d 0.049035 0.029053)
(u 0.070935 0.027489)
(t 0.071116 0.016581)
(f 0.085903 0.025982)
(o1 0.080078 0.031258)
(s 0.080787 0.039158)
(o 0.071613 0.030791)
(r 0.027176 0.013938)
(k 0.072552 0.021553)
(i 0.059276 0.023183)
(m 0.063159 0.032943)
(dh 0.04 0.013333)))
; (# 0.189557 0.061599))
(provide 'JuntaDeAndalucia_es_pa_durdata)

View File

@ -0,0 +1,164 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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 JuntaDeAndalucia_es_pa
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
;;This loads the predicted CART_tree F0 model (using wagon, and not ols, which allows lineal regression analysis with LR)
(require 'JuntaDeAndalucia_es_pa_contourmodel_f0)
;;This loads the module that we need for using (Parameter.set Int_Target_Method Int_Targets_Tree)
;;This file is stored in festival/src/intonation/tree_f0.scm
(require 'tree_f0)
;;This sets the values needed when using the TOBI LR F0 model
;(set! JuntaDeAndalucia_es_pa_int_lr_params
; '(
;; These numbers may be modified according to the speaker's range.
; (target_f0_mean 105) ;; speaker's mean F0
; (target_f0_std 14) ;; speaker's range
;; These number should remain as they are
; (model_f0_mean 170)
; (model_f0_std 34)))
(define (JuntaDeAndalucia_es_pa_targ_func1 utt syl)
"(JuntaDeAndalucia_es_pa_targ_func1 utt syl)
Simple hat accents."
(let ((start (item.feat syl 'syllable_start))
(end (item.feat syl 'syllable_end))
(ulen (item.feat (utt.relation.last utt 'Segment ) 'segment_end))
nstart nend fustart fuend fuend fstart fend)
(set! nstart (/ start ulen))
(set! nend (/ end ulen))
(set! fustart '80)
(set! fuend '60)
(set! fstart (+ (* (- fuend fustart) nstart) fustart))
(set! fend (+ (* (- fuend fustart) nend) fustart))
(cond
((equal? (item.feat syl "R:Intonation.daughter1.name") "Accented")
(list
(list start fstart)
(list (+ start 0.010) (+ fstart 10 ))
(list (- end 0.010) (+ fstart 8 ))
(list end fend)
))
((not (item.next syl))
(list
(list end fuend)))
((not (item.prev syl))
(list
(list start fustart)))
(t
nil))))
(define (JuntaDeAndalucia_es_pa::select_f0model)
"(JuntaDeAndalucia_es_pa::select_f0model)
Set up the F0 model for JuntaDeAndalucia_es."
;;Uncomment this for using the rule-based F0 contour model
; (set! int_general_params (list (list 'targ_func JuntaDeAndalucia_es_pa_targ_func1)))
; (Parameter.set 'Int_Method 'General)
;;Uncomment this for using the linear regression F0 contour model
;;This requires JuntaDeAndalucia_es_pa_f0model_f0.scm and tree_f0.scm
(set! F0start_tree JuntaDeAndalucia_es_pa_contourmodel::start_f0)
(set! F0mid_tree JuntaDeAndalucia_es_pa_contourmodel::mid_f0)
(set! F0end_tree JuntaDeAndalucia_es_pa_contourmodel::end_f0)
(set! int_params
;;The following parameters are documented in Building Synthetic Voices (page 74)
;; '((target_f0_mean 140) (target_f0_std 44)
;; (model_f0_mean 170) (model_f0_std 34)))
;;These values were used for el_diphone
;; '((target_f0_mean 130) (target_f0_std 30)
;; (model_f0_mean 135) (model_f0_std 30)))
;; '((target_f0_mean 105) (target_f0_std 14)
;; (model_f0_mean 170) (model_f0_std 34)))
;;These values were used for kal_diphone
;; '((target_f0_mean 105) (target_f0_std 14)
;; (model_f0_mean 170) (model_f0_std 34)))
;;These values were calculated in http://www.ling.ed.ac.uk/teaching/postgrad/mscslp/archive/dissertations/2002-3/milena_vegnaduzzo.pdf (page 34)
;; '((target_f0_mean 192) (target_f0_std 33)
;; (model_f0_mean 97) (model_f0_std 24)))
;;These values appear in the aforementioned work too.
;; '((target_f0_mean 155) (target_f0_std 33)
;; (model_f0_mean 97) (model_f0_std 24)))
;;Values for testing
'((target_f0_mean 70) (target_f0_std 20)
(model_f0_mean 85) (model_f0_std 20)))
(Parameter.set 'Int_Target_Method Int_Targets_Tree)
)
(define (JuntaDeAndalucia_es_pa::reset_f0model)
"(JuntaDeAndalucia_es_pa::reset_f0model)
Reset F0 model information."
t
)
(provide 'JuntaDeAndalucia_es_pa_f0model)

View File

@ -0,0 +1,103 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Intonation for Spanish
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
;;; Intonation
(set! JuntaDeAndalucia_es_accent_cart_tree
'
(
(R:SylStructure.parent.gpos is content)
( (stress is 1)
((Accented))
((NONE))
)
)
)
(define (JuntaDeAndalucia_es_pa::select_intonation)
"(JuntaDeAndalucia_es_pa::select_intonation)
Set up intonation for Spanish."
(set! int_accent_cart_tree JuntaDeAndalucia_es_accent_cart_tree)
(Parameter.set 'Int_Target_Method 'Simple)
)
(define (JuntaDeAndalucia_es_pa::reset_intonation)
"(JuntaDeAndalucia_es_pa::reset_intonation)
Reset intonation information."
t
)
(provide 'JuntaDeAndalucia_es_pa_intonation)

View File

@ -0,0 +1,90 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Something else
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
(define (JuntaDeAndalucia_es_pa::select_other)
"(JuntaDeAndalucia_es_pa::select_other)
Set up the anything esle for the voice."
;; something else
)
(define (JuntaDeAndalucia_es_pa::reset_other)
"(JuntaDeAndalucia_us_pa::reset_other)
Reset other information."
t
)
(provide 'JuntaDeAndalucia_es_pa_other)

View File

@ -0,0 +1,167 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Phoneset for JuntaDeAndalucia_es
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defPhoneSet
JuntaDeAndalucia_es
;;; Phone Features
(;; vowel or consonant
(vc + -)
;; vowel length: short long diphthong schwa
(vlng s l d a 0)
;; vowel height: high mid low
(vheight 1 2 3 -)
;; vowel frontness: front mid back
(vfront 1 2 3 -)
;; lip rounding
(vrnd + -)
;; consonant type: stop fricative affricative nasal liquid lateral
(ctype s f a n l t 0)
;; place of articulation: labial alveolar palatal labio-dental
;; dental velar
(cplace l a p b d v 0)
;; consonant voicing
(cvox + -)
)
;; [CSV] Indisys-MP extra phonemes added (wrt el_diphone): Spanish (B,D,G) and English (ax,dh,hh,sh,v,z,zh)
;; Spanish B,D,G are now predicted through letter-to-sound rules
;; English ax,dh,hh,sh,v,zh are only triggered through the addenda (never generated through letter-to-sound rules)
(
(# - 0 - - - 0 0 -)
(a + l 3 2 - 0 0 -)
(e + l 2 1 - 0 0 -)
(i + l 1 1 - 0 0 -)
(o + l 2 3 + 0 0 -)
(u + l 1 3 + 0 0 -)
(i0 + s 1 1 - 0 0 -) ;; weak vowels in dipthongs -- not used
(u0 + s 1 3 + 0 0 -) ;; weak vowels in dipthongs -- not used
(ax + a 2 2 - 0 0 -) ;; english weak vowel, schwa -- added
(a1 + l 3 2 - 0 0 -)
(e1 + l 2 1 - 0 0 -)
(i1 + l 1 1 - 0 0 -)
(o1 + l 2 3 + 0 0 -)
(u1 + l 1 3 + 0 0 -)
(p - 0 - - - s l -)
(t - 0 - - - s d -)
(k - 0 - - - s v -)
(b - 0 - - - s l +)
(d - 0 - - - s d +)
(g - 0 - - - s v +)
(B - 0 - - - f l +) ;; voiced fricative labial /b/ (intervocalic) -- added
(D - 0 - - - f d +) ;; voiced fricative dental /d/ (intervocalic) -- added
(G - 0 - - - f v +) ;; voiced fricative velar /g/ (intervocalic) -- added
(f - 0 - - - f b -)
(th - 0 - - - f d -)
(s - 0 - - - f a -)
(x - 0 - - - f v -)
(ch - 0 - - - a p -)
(m - 0 - - - n l +)
(n - 0 - - - n a +)
(ny - 0 - - - n p +)
(l - 0 - - - l a +)
(ll - 0 - - - l p +)
(r - 0 - - - l a +)
(rr - 0 - - - l a +)
(dh - 0 - - - f d +) ;; english voiced fricative dental /dh/ (the) -- added
(hh - 0 - - - f v -) ;; english voiceless fricative glottal /hh/ (he) -- added
(sh - 0 - - - f a -) ;; english voiceless fricative post-alveolar /sh/ (she) -- added
(v - 0 - - - f b +) ;; english voiced fricative labio-dental /v/ (voice) -- added
(z - 0 - - - f a +) ;; english voiced fricative alveolar /z/ (zoo) -- added
(zh - 0 - - - f a +) ;; english voiced fricative post-alveolar /zh/ -- added
)
)
(PhoneSet.silences '(#))
(define (JuntaDeAndalucia_es_pa::select_phoneset)
"(JuntaDeAndalucia_es_pa::select_phoneset)
Set up phone set for JuntaDeAndalucia_es."
(Parameter.set 'PhoneSet 'JuntaDeAndalucia_es)
(PhoneSet.select 'JuntaDeAndalucia_es)
)
(define (JuntaDeAndalucia_es_pa::reset_phoneset)
"(JuntaDeAndalucia_es_pa::reset_phoneset)
Reset phone set for JuntaDeAndalucia_es."
t
)
(provide 'JuntaDeAndalucia_es_pa_phoneset)

View File

@ -0,0 +1,102 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Prosodic phrasing
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
(set! JuntaDeAndalucia_es_phrase_cart_tree
'
;; the conjunction of two punctuation symbols was not addressed in previous releases, so pauses in those cases just did not happen
;; please note that some of these strings are not orthographically correct (take "?.", for instance), but since they might happen anyway...
((lisp_token_end_punc in ("?" "!" "." ":" ";" "?." "?:" "?;" "?\"" "!." "!:" "!;" "!\"" ")." "):" ");" "]." "}." "\"." "\":" "\";" "'." "':" "';"))
((BB))
((lisp_token_end_punc in ("," ")" "]" "}" "\"," "'," ")," ")\"" "]," "},"))
((B))
((n.name is 0) ;;end of utterance
((BB))
((NB))))))
(define (JuntaDeAndalucia_es_pa::select_phrasing)
"(JuntaDeAndalucia_es_pa::select_phrasing)
Set up the phrasing module for Spanish."
(set! phrase_cart_tree JuntaDeAndalucia_es_phrase_cart_tree)
(Parameter.set 'Phrase_Method 'cart_tree)
)
(define (JuntaDeAndalucia_es_pa::reset_phrasing)
"(JuntaDeAndalucia_es_pa::reset_phrasing)
Reset phrasing information."
t
)
(provide 'JuntaDeAndalucia_es_pa_phrasing)

View File

@ -0,0 +1,111 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; POS tagger for Spanish
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any necessary files here
(set! spanish_guess_pos
'((fn
el la lo los las
un una unos unas
;;
mi tu su mis tus sus
nuestra vuestra nuestras vuestras nuestro vuestro nuestros vuestros
me te le nos os les se
al del
;;
a ante bajo cabe con contra de desde en entre
hacia hasta para por sin sobre tras mediante
;;
y e ni mas o "\'o" u pero aunque si
porque que quien cuando como donde cual cuan
aun pues tan mientras sino
)
(partnums
dieci venti trentai cuarentai cincuentai sesentai ochentai noventai)
))
(define (JuntaDeAndalucia_es_pa::select_tagger)
"(JuntaDeAndalucia_es_pa::select_tagger)
Set up the POS tagger for Spanish."
(set! pos_lex_name nil)
(set! guess_pos spanish_guess_pos)
)
(define (JuntaDeAndalucia_es_pa::reset_tagger)
"(JuntaDeAndalucia_es_pa::reset_tagger)
Reset tagging information."
t
)
(provide 'JuntaDeAndalucia_es_pa_tagger)

View File

@ -0,0 +1,667 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; JUNTA DE ANDALUCÍA ;;;
;;; Copyright (c) 2007 ;;;
;;; All Rights Reserved. ;;;
;;; ;;;
;;; Distribution policy. ;;;
;;; ;;;
;;; Free for any use. ;;;
;;; ;;;
;;; All the work is based on the Festvox Toolkit, provided by: ;;;
;;; - Carnegie Mellon University (http://www.festvox.org) ;;;
;;; ;;;
;;; The copyright below belongs to the original Festvox project; it ;;;
;;; therefore applies to the present work. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; Standard Spanish male voice ;;;
;;; ;;;
;;; Contractor: Consejería de Innovación, Ciencia y Empresa ;;;
;;; de la Junta de Andalucía ;;;
;;; ;;;
;;; Developed by: Intelligent Dialogue Systems, S.L. (INDISYS) ;;;
;;; Mac-Puar Sistemas S.L. ;;;
;;; ;;;
;;; Authors: Jesús González <j.gonzalez@indisys.es> ;;;
;;; Pilar Manchón, <p.manchon@indisys.es> ;;;
;;; Diego Martínez, <d.martinez@indisys.es> ;;;
;;; Guillermo Pérez, <g.perez@indisys.es> ;;;
;;; Carmen Del Solar, <c.delsolar@indisys.es> ;;;
;;; ;;;
;;; Voice Talent: Pedro Alonso ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Tokenizer for Spanish
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Load any other required files
;;; Voice/es token_to_word rules
(define (spanish_number name)
"(spanish_number name)
Convert a string of digits into a list of words saying the number."
(if (string-matches name "0")
(list "cero")
(spanish_number_from_digits (symbolexplode name))))
(define (just_zeros digits)
"(just_zeros digits)
If this only contains 0s then we just do something different."
(cond
((not digits) t)
((string-equal "0" (car digits))
(just_zeros (cdr digits)))
(t nil)))
(define (spanish_number_from_digits digits)
"(spanish_number_from_digits digits)
Takes a list of digits and converts it to a list of words
saying the number."
(let ((l (length digits)))
(cond
((equal? l 0)
nil)
((string-equal (car digits) "0")
(spanish_number_from_digits (cdr digits)))
((equal? l 1);; single digit
(cond
((string-equal (car digits) "0") (list "cero"))
((string-equal (car digits) "1") (list "un"))
((string-equal (car digits) "2") (list "dos"))
((string-equal (car digits) "3") (list "tres"))
((string-equal (car digits) "4") (list "cuatro"))
((string-equal (car digits) "5") (list "cinco"))
((string-equal (car digits) "6") (list "seis"))
((string-equal (car digits) "7") (list "siete"))
((string-equal (car digits) "8") (list "ocho"))
((string-equal (car digits) "9") (list "nueve"))
;; fill in the rest
(t (list "equis"))));; $$$ what should say?
((equal? l 2);; less than 100
(cond
((string-equal (car digits) "0");; 0x
(spanish_number_from_digits (cdr digits)))
((string-equal (car digits) "1");; 1x
(cond
((string-equal (car (cdr digits)) "0") (list "diez"))
((string-equal (car (cdr digits)) "1") (list "once"))
((string-equal (car (cdr digits)) "2") (list "doce"))
((string-equal (car (cdr digits)) "3") (list "trece"))
((string-equal (car (cdr digits)) "4") (list "catorce"))
((string-equal (car (cdr digits)) "5") (list "quince"))
(t
(cons "dieci" (spanish_number_from_digits (cdr digits))))))
((string-equal (car digits) "2");; 2x
(if (string-equal (car (cdr digits)) "0")
(list "veinte")
(cons "venti" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "3");; 3x
(if (string-equal (car (cdr digits)) "0")
(list "treinta")
(cons "trentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "4");; 4x
(if (string-equal (car (cdr digits)) "0")
(list "cuarenta")
(cons "cuarentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "5");; 5x
(if (string-equal (car (cdr digits)) "0")
(list "cincuenta")
(cons "cincuentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "6");; 6x
(if (string-equal (car (cdr digits)) "0")
(list "sesenta")
(cons "sesentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "7");; 7x
(if (string-equal (car (cdr digits)) "0")
(list "setenta")
(cons "setentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "8");; 8x
(if (string-equal (car (cdr digits)) "0")
(list "ochenta")
(cons "ochentai" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "9");; 9x
(if (string-equal (car (cdr digits)) "0")
(list "noventa")
(cons "noventai" (spanish_number_from_digits (cdr digits)))))
))
((equal? l 3);; in the hundreds
(cond
((string-equal (car digits) "1");; 1xx
(if (just_zeros (cdr digits)) (list "cien")
(cons "ciento" (spanish_number_from_digits (cdr digits)))))
((string-equal (car digits) "5");; 5xx
(cons "quinientos" (spanish_number_from_digits (cdr digits))))
((string-equal (car digits) "7");; 7xx
(cons "setecientos" (spanish_number_from_digits (cdr digits))))
((string-equal (car digits) "9");; 9xx
(cons "novecientos" (spanish_number_from_digits (cdr digits))))
(t;; ?xx
(append (spanish_number_from_digits (list (car digits)))
(list "cientos")
(spanish_number_from_digits (cdr digits))))
))
((< l 7)
(let ((sub_thousands
(list
(car (cdr (cdr (reverse digits))))
(car (cdr (reverse digits)))
(car (reverse digits))))
(thousands (reverse (cdr (cdr (cdr (reverse digits)))))))
(set! x (spanish_number_from_digits thousands))
(append
(if (string-equal (car x) "un") nil x)
(list "mil")
(spanish_number_from_digits sub_thousands))))
((< l 13)
(let ((sub_million
(list
(car (cdr (cdr (cdr (cdr (cdr(reverse digits)))))))
(car (cdr (cdr (cdr (cdr (reverse digits))))))
(car (cdr (cdr (cdr (reverse digits)))))
(car (cdr (cdr (reverse digits))))
(car (cdr (reverse digits)))
(car (reverse digits))
))
(millions (reverse (cdr (cdr (cdr (cdr (cdr (cdr (reverse digits))))))))))
(set! x (spanish_number_from_digits millions))
(append
(if (string-equal (car x) "un")
(list "un" "millon")
(append x (list "millones")))
(spanish_number_from_digits sub_million))))
(t
(list "tropecientos")))))
(define (get_symbol_of_word name say_symbols not_say_symbols)
"(get_symbol_of_word name say_symbols not_say_symbols)
Creates a list containing all the say_symbols and not_say_symbols that appear in name
Example: name-> (diego-carmen.prueba@hotmail.com)
symbols_to_say -> (\"_.@\")
symbols_not_to_say -> (-)
OUT-> ( (position symbol say_or_not_say) (position symbol say_or_not_say)...)"
(let (list_out)
(set! list_out nil)
(mapcar
(lambda (symbol_character)
(set! symbol_position 0)
(mapcar
(lambda (name_character)
(let (symbol_match_string)
;;get the symbol_match_string to search in name the say_symbols elements
(cond
(t (set! symbol_match_string symbol_character)))
(if (string-equal name_character symbol_match_string)
(set! list_out (append list_out (list(list symbol_position symbol_character "say"))))
(list nil))
(set! symbol_position (+ 1 symbol_position))
))
(symbolexplode name)))
(symbolexplode say_symbols))
(mapcar
(lambda (symbol_character)
(set! symbol_position 0)
(mapcar
(lambda (name_character)
(let (symbol_match_string)
;;get the symbol_match_string to search inname the say_symbols elements
(cond
(t (set! symbol_match_string symbol_character)))
(if (string-equal name_character symbol_match_string)
(set! list_out (append list_out (list(list symbol_position symbol_character "not_say"))))
(list nil))
(set! symbol_position (+ 1 symbol_position))
))
(symbolexplode name)))
(symbolexplode not_say_symbols))
list_out)
)
(define (insert_element_in position input_list element_to_insert)
"(insert_element_in position input_list element_to_insert)
Inserts element_to_insert, with its position, in parameter position, from input_list
Note: element_to_insert must be as follow: (position symbol say_or_not_say)
first element is 0."
(let (return_list)
(if (equal? 0 position)
(set! return_list (append (list element_to_insert) input_list))
(let (actual_position)
(set! actual_position 0)
(mapcar
(lambda (l)
(if (equal? actual_position position)
(set! return_list (append return_list (list element_to_insert))))
(set! return_list (append return_list (list l)))
(set! actual_position (+ 1 actual_position))
)
input_list)))
return_list)
)
(define (sort_symbol_of_word symbols_list)
"(sort_symbol_of_word symbols_list)
Sorts symbols_list using position number of data list.
Ascending order."
(let (temp_list orig_position sorted_position sorted_list index_orig_list flag_final_insertion previous_element_orig_list
flag_insertion_done)
(set! orig_list (cdr symbols_list))
(set! sorted_list (list(car symbols_list)))
(mapcar
(lambda (element_orig_list)
(set! index_orig_list 0)
(if flag_final_insertion
(set! sorted_list (append sorted_list (list previous_element_orig_list))))
(set! flag_final_insertion t)
(set! flag_insertion_done "no")
(mapcar
(lambda (element_sorted_list)
(set! previous_element_orig_list element_orig_list)
(set! orig_position (car element_orig_list))
(set! sorted_position (car element_sorted_list))
(if (and (< orig_position sorted_position)
(string-equal flag_insertion_done "no"))
(let ()
(set! sorted_list (insert_element_in index_orig_list sorted_list element_orig_list))
(set! flag_insertion_done "yes")
(set! flag_final_insertion nil)))
(set! index_orig_list (+ 1 index_orig_list))
)
sorted_list))
orig_list)
;;add the last element
(if flag_final_insertion
(set! sorted_list (append sorted_list (list previous_element_orig_list))))
sorted_list)
)
(define (get_number_and_string name)
"
Takes a mixed entry (string+number), spells the string part and converts digits into number
Example: IN-> name = \"carmen54\"
OUT-> (c a r m e n \"cincuentai\" \"cuatro\")
"
(let (subwords previous_word previous_number )
(set! previous_number nil)
(set! previous_word nil)
(set! flag_previous_state nil)
(mapcar
(lambda (letter)
(cond
((string-matches letter "[0-9]")
(if (string-equal flag_previous_state "word_found")
(set! subwords (append subwords previous_word)))
(set! previous_word nil)
(if previous_number
(set! previous_number (string-append previous_number letter))
(set! previous_number letter))
(set! flag_previous_state "number_found"))
((string-matches letter "['a-zA-ZÁÉÍÓÚÜÑáéíóúüñ~]")
(if (string-equal flag_previous_state "number_found")
(set! subwords (append subwords (spanish_number previous_number))))
(set! previous_number nil)
(set! previous_word (append previous_word (list letter)))
(set! flag_previous_state "word_found"))
(t
(set! subwords (append subwords (list "ups")))))
)
(symbolexplode name))
(if previous_word
(set! subwords (append subwords previous_word)))
(if previous_number
(set! subwords (append subwords (spanish_number previous_number))))
subwords)
)
(define (expand_as_words_list_with_symbol name symbols_to_say symbols_not_to_say)
"(expand_as_words_list_with_symbol name symbols_to_say symbols_not_to_say)
Returns a list of words falling to the right and left of symbols_to_say and symbols_not_to_say, plus symbols in symbols_to_say
Example: input: name -> diego_carmen.prueba
symbols_to_say -> (_)
symbols_not_to_say -> (.)
output_list -> (\"diego\" \"_\" \"carmen\" \"prueba\" "
(set! symbols_into_name_not_sorted (get_symbol_of_word name symbols_to_say symbols_not_to_say))
(set! symbols_into_name_sorted (sort_symbol_of_word symbols_into_name_not_sorted))
(set! out_name_listed nil)
(if (not (string-equal name ""))
(let (out_name_listed)
(if (car symbols_into_name_sorted)
(let ()
(mapcar
(lambda (element_symbol)
(set! symbol (car (cdr element_symbol)))
(set! flag_say (car (reverse element_symbol)))
(if (not (string-equal (string-before name symbol) ""))
(cond
((string-matches (string-before name symbol) "[0-9]+")
(set! out_name_listed (append out_name_listed (spanish_number (string-before name symbol)))))
((string-matches (string-before name symbol) "['a-zA-ZÁÉÍÓÚÜÑáéíóúüñ~]+")
(set! out_name_listed (append out_name_listed (list (string-before name symbol)))))
(t
(set! out_name_listed (append out_name_listed (get_number_and_string (string-before name symbol)))))))
(if (string-equal flag_say "say")
(set! out_name_listed (append out_name_listed (list (string-append "" symbol)))))
(set! name (string-after name symbol))
)
symbols_into_name_sorted)
(if (not (string-equal name ""))
(cond
((string-matches name "[0-9]+")
(set! out_name_listed (append out_name_listed (spanish_number name))))
((string-matches name "['a-zA-ZÁÉÍÓÚÜÑáéíóúüñ~]+")
(set! out_name_listed (append out_name_listed (list name))))
(t
(set! out_name_listed (append out_name_listed (get_number_and_string name)))))))
(cond
((string-matches name "[0-9]+")
(set! out_name_listed (append out_name_listed (spanish_number name))))
((string-matches name "['a-zA-ZÁÉÍÓÚÜÑáéíóúüñ~]+")
(set! out_name_listed (append out_name_listed (list name))))
(t
(set! out_name_listed (append out_name_listed (get_number_and_string name)))))
)
out_name_listed)
())
)
(define (find_spanish_month_from_number string-number)
"(find_spanish_month_from_number string-number)
Find the textual representation of the month from the given string number"
(let ((nnum (parse-number string-number)))
(cond
((equal? 1 nnum) (list "Enero"))
((equal? 2 nnum) (list "Febrero"))
((equal? 3 nnum) (list "Marzo"))
((equal? 4 nnum) (list "Abril"))
((equal? 5 nnum) (list "Mayo"))
((equal? 6 nnum) (list "Junio"))
((equal? 7 nnum) (list "Julio"))
((equal? 8 nnum) (list "Agosto"))
((equal? 9 nnum) (list "Septiembre"))
((equal? 10 nnum) (list "Octubre"))
((equal? 11 nnum) (list "Noviembre"))
((equal? 12 nnum) (list "Diciembre"))
(t
(cons "mes"
(spanish_number string-number))))))
(define (JuntaDeAndalucia_es_pa::token_to_words token name)
"(JuntaDeAndalucia_es_pa::token_to_words token name)
Specific token to word rules for the voice JuntaDeAndalucia_es_pa. Returns a list
of words that expand given token with name."
(cond
;; Indisys_MP: time must be am/pm present for . to be acceptable separator
((string-matches name "[0-9]?[0-9][:\\.][0-9][0-9][AaPp][Mm]")
(let (hours mins half sep (ttime (downcase name)))
(if (string-matches ttime ".*:.*")
(set! sep ":")
(set! sep "."))
(set! hours (string-before ttime sep))
(set! mins (string-after ttime sep))
(if (string-matches ttime ".*am")
(set! sep "am")
(set! sep "pm"))
(set! mins (string-before mins sep))
(append
(spanish_number hours)
(cond
((string-equal mins "00")
nil)
((string-matches mins "0.")
(cons
"cero"
(spanish_number (string-after mins "0"))))
(t
(spanish_number mins)))
(if (string-equal sep "am")
(list(list(list 'name 'A) (list 'pos 'nn)) (list(list 'name 'M) (list 'pos 'nn)))
(list(list(list 'name 'P) (list 'pos 'nn)) (list(list 'name 'M) (list 'pos 'nn)))))))
;; Indisys_MP: time without am or pm
((string-matches name "[0-9]?[0-9]:[0-9][0-9]")
(append
(spanish_number (string-before name ":"))
(cond
((string-equal "00" (string-after name ":"))
nil)
((string-matches (string-after name ":") "0.")
(cons
"cero"
(spanish_number (string-after name ":"))))
(t
(spanish_number (string-after name ":"))))))
;; Indisys_MP: exact time
((string-matches name "[0-9]?[0-9]:[0-9][0-9]:[0-9][0-9]")
(append
(spanish_number (string-before name ":"))
(list "horas")
(spanish_number (string-before (string-after name ":") ":"))
(list "minutos" "y")
(spanish_number (string-after (string-after name ":") ":"))
(list "segundos")))
;; Indisys_MP: date,
((string-matches name "[0-9][0-9]?/[0-9][0-9]?/[0-9][0-9]\\([0-9][0-9]\\)?")
;; date, say it as numbers to avoid American/British problem
(let ((num1 (string-before name "/"))
(num2 (string-before (string-after name "/") "/"))
(year (string-after (string-after name "/") "/"))
day month)
(set! day (spanish_number num1))
(set! month (find_spanish_month_from_number num2))
(append
day
(list "de")
month
(list "del")
; (list '((name ",")(pbreak_scale 0.9)))
(spanish_number year))))
;; Indisys_MP: quoted e-mail
((string-matches name "<.*@.*>")
(set! symbols_not_to_say "")
(set! symbols_to_say "*%&$¤@#+~=/\\_|><[]{}\"'`.,;:¡!¿?-ªº()")
(append
(expand_as_words_list_with_symbol (string-after (string-before name "@") "<") symbols_to_say symbols_not_to_say)
(list "@")
(expand_as_words_list_with_symbol (string-before (string-after name "@") ">") symbols_to_say symbols_not_to_say)))
;; Indisys_MP: e-mail without quoted
((string-matches name ".*@.*")
(set! symbols_not_to_say "")
(set! symbols_to_say "*%&$¤@#+~=/\\_|><[]{}\"'`.,;:¡!¿?-ªº()")
(append
(expand_as_words_list_with_symbol (string-before name "@") symbols_to_say symbols_not_to_say)
(list "@")
(expand_as_words_list_with_symbol (string-after name "@") symbols_to_say symbols_not_to_say)))
;;Indisys_MP: line definition
((string-matches name "_____+")
(list "línea" "de" "guiones" "bajos"))
((string-matches name "=====+")
(list "línea" "de" "iguales"))
((string-matches name "-----+")
(list "línea" "de" "guiones" "medios"))
((string-matches name "\\*\\*\\*\\*\\*+")
(list "línea" "de" "asteriscos"))
;;Indisys_MP: URL's
((string-matches name "http://.*")
(set! symbols_not_to_say "")
(set! symbols_to_say "*%&$¤@#+~=/\\_|><[]{}\"'`.,;:¡!¿?-ªº()")
(append
(list "http" ":" "barra" "barra")
(expand_as_words_list_with_symbol (string-after name "http://") symbols_to_say symbols_not_to_say)))
((string-matches name "www..*")
(set! symbols_not_to_say "")
(set! symbols_to_say "*%&$¤@#+~=/\\_|><[]{}\"'`.,;:¡!¿?-ªº()")
(expand_as_words_list_with_symbol name symbols_to_say symbols_not_to_say))
;;Indisys_MP: numbers
((string-matches name "[1-9][0-9]+")
(spanish_number name))
;;Indisys_MP: say "y" when found &.
; ((string-matches name "[A-Z][A-Z]?&[A-Z][A-Z]?")
; (set! symbols_not_to_say "\"'`.,;:¡!¿?-ªº[]{}()")
; (set! symbols_to_say "*%&$¤@#+^~=/\\_|><")
; (append
; (expand_as_words_list_with_symbol (string-before name "&") symbols_to_say symbols_not_to_say)
; (list "y")
; (expand_as_words_list_with_symbol (string-after name "&") symbols_to_say symbols_not_to_say)))
;;Indisys_MP: only one symbol or more without numbers or characters.
((string-matches name "[-*%&¤@#+\^~=/\\_|<>(){}\"'`.,;:!¡¿?ºª]+")
(let ()
(set! symbols_not_to_say "")
(set! symbols_to_say "*%&$¤@#+~=/\\_|><[]{}\"'`.,;:¡!¿?-ªº()")
(expand_as_words_list_with_symbol name symbols_to_say symbols_not_to_say)))
;;Indisys_MP: strings (character or number) with symbols
((string-matches name ".*[-*%&¤@#+\^~=/\\_|<>(){}\"'`.,;:!¡¿?ºª]+.*")
(let ()
(set! symbols_not_to_say "\"`.,;:¡!¿?-ªº[]{}()")
(set! symbols_to_say "*%&$¤@#+^=/\\_|><")
(expand_as_words_list_with_symbol name symbols_to_say symbols_not_to_say)))
((not (lts.in.alphabet name 'downcase_allcharacters))
;; it contains some other than the lts can deal with
(let ((subwords))
(item.set_feat token "pos" "nn")
(mapcar
(lambda (letter)
;; might be symbols or digits
(set! subwords
(append
subwords
(cond
((string-matches letter "[0-9]")
(spanish_number letter))
((string-matches letter "[A-ZÁÉÍÓÚÜÑ]")
(lts.apply letter 'downcase_allcharacters))
(t
(list letter))))))
(symbolexplode name))
subwords))
;;Indisys_MP: from el_diphone
(t
(list name)))
)
(define (JuntaDeAndalucia_es::number token name)
"(JuntaDeAndalucia_es::number token name)
Return list of words that pronounce this number in Spanish."
(error "JuntaDeAndalucia_es::number to be written\n")
)
(define (JuntaDeAndalucia_es_pa::select_tokenizer)
"(JuntaDeAndalucia_es_pa::select_tokenizer)
Set up tokenizer for Spanish."
(Parameter.set 'Language 'JuntaDeAndalucia_es)
(set! token_to_words JuntaDeAndalucia_es_pa::token_to_words)
(set! token.whitespace " \t\n\r")
(set! token.punctuation "\"'`.,;:¡!¿?(){}[]")
(set! token.prepunctuation "\"'`¡¿({[-")
(set! token.singlecharsymbols "")
(def_feature_docstring
'Token.punc
"Token.punc
Succeeding punctuation symbol found after token in original
string/file.")
(def_feature_docstring
'Token.whitespace
"Token.whitespace
Whitespace found before token in original string/file.")
(def_feature_docstring
'Token.prepunctuation
"Token.prepunctuation
Preceeding puctuation symbol found before token in original string/file.")
)
(define (JuntaDeAndalucia_es_pa::reset_tokenizer)
"(JuntaDeAndalucia_es_pa::reset_tokenizer)
Reset any globals modified for this voice. Called by
(JuntaDeAndalucia_es_pa::voice_reset)."
;; None
t
)
(provide 'JuntaDeAndalucia_es_pa_tokenizer)

View File

@ -0,0 +1,546 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; A Scheme for a Spanish set of diphones ;;
;;; Inspired by Steve Isard's diphone schemas from CSTR, University of ;;
;;; Edinburgh ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; A diphone list for SAMPA
(set! vowels '(a i u e o a1 i1 u1 e1 o1 ax))
(set! stressedvowels '(a1 i1 u1 e1 o1))
(set! unstressedvowels '(a i u e o ax))
(set! strongvowels '(a e o a1 e1 o1))
(set! weakvowels '(i u))
(set! schwa '(ax))
(set! consonants '(p b B ch d D f g G k l ll m n ny r rr s t th x dh hh sh v z zh))
(set! stops-bdg '(b d g))
(set! approximants-BDG '(B D G))
(set! stops '(p b t d k g))
(set! fricatives '(f th s x))
(set! nasals '(n m ny))
(set! affricates '(ch))
(set! laterals '(l ll))
(set! onset-only '(rr ll ny ch g hh dh sh v z zh))
(set! onset-only+approximants-BDG '(rr ll ny ch hh dh v z zh sh B D G)) ;; g has been removed because it can appear in coda position, as in the word "blog"
(set! svibrant '(r))
(set! svibrant+approximants-BDG '(r B D G))
(set! liquids '(l r))
(set! englishconsonants '(dh hh sh v z zh))
(set! englishvoicedcons '(dh v z zh))
(set! englishvoicelesscons '(hh sh))
(set! englishconsonants+approximants-BDG '(dh hh sh v z zh B D G))
(set! englishvowel '(ax))
(set! silence '#)
(set! clusters1
(append
(apply
append
(mapcar (lambda (b) (mapcar (lambda (a) (list a b)) '(p b k g))) '(l r)))
(mapcar (lambda (b) (list 's b)) '(l n m p t k f))
(mapcar (lambda (b) (list 'f b)) '(l r))))
(set! cvc1-carrier '((# t a ) (a #))) ;;carrier for consonant-vowel + vowel-consonant (stressed vowels)
(set! cvc2-carrier '((# t a1 ) (a #))) ;;carrier for consonant-vowel + vowel-consonant (unstressed vowels)
(set! vc1-carrier '((# t a t) (a #))) ;;carrier for vowel-consonant (stressed vowels)
(set! vc2-carrier '((# t a t) (a1 #))) ;;carrier for vowel-consonant (unstressed vowels)
(set! cv1-carrier '((# t a ) (t a #))) ;;carrier for consonant-vowel (stressed vowels)
(set! cv2-carrier '((# t a ) (t a1 #))) ;;carrier for consonant-vowel (unstressed vowels)
(set! cc-carrier '((# t a ) (a1 t a #))) ;;carrier for consonant-consonant
(set! vv0-carrier '((# t a t) (t a1 #))) ;;vowel-vowel carrier for unstressed pairs (a-a)
(set! vv1-carrier '((# t a t) (t a #))) ;;vowel-vowel carrier for stressed-unstressed pairs (a1-a)
(set! vv2-carrier '((# t a t) (t a #))) ;;vowel-vowel carrier for unstressed-stressed pairs (a-a1)
(set! vv3-carrier '((# t a t) (t a #))) ;;vowel-vowel carrier for stressed pairs (a1-a1)
(set! silv1-carrier '(() (t a #))) ;;carrier for silence+vowel (stressed vowels)
(set! silv2-carrier '(() (t a1 #))) ;;carrier for silence+vowel (unstressed vowels)
(set! silc-carrier '(() (a1 t a #))) ;;carrier for silence+consonant
(set! vsil1-carrier '((# t a t ) ())) ;;carrier for vowel+silence (stressed vowels)
(set! vsil2-carrier '((# t a1 t ) ())) ;;carrier for vowel+silence (unstressed vowels)
(set! csil-carrier '((# t a t a1) ())) ;;carrier for consonant+silence
(set! cc1-carrier '((# t a -) (a1 t a #))) ;;carrier for clusters (pr,pl,br,bl,kr,kl,gr,gl,fl,fr)
(set! LR1-carrier '((# t a - k) (t a #)))
(set! LR2-carrier '((# t a - k) (t a1 #)))
;;; These functions simply fill out the nonsense words
;;; from the carriers and vowel consonant definitions
;;; Carrier for consonant-vowel + vowel-consonant (stressed vowels)
(define (list-cvcs1)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append c "-" v) (string-append v "-" c))
(append (car cvc1-carrier) (list c v c) (car (cdr cvc1-carrier)))))
(remove-list consonants stops-bdg)))
stressedvowels)))
;;; Carrier for consonant-vowel + vowel-consonant (unstressed vowels)
(define (list-cvcs2)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append c "-" v) (string-append v "-" c))
(append (car cvc2-carrier) (list c v c) (car (cdr cvc2-carrier)))))
(remove-list consonants stops-bdg)))
unstressedvowels)))
;;; Carrier for vowel-consonant (stressed vowels)
(define (list-vcs1)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append v "-" c))
(append (car vc1-carrier) (list v c) (car (cdr vc1-carrier)))))
(remove-list consonants stops-bdg)))
stressedvowels)))
;;; Carrier for vowel-consonant (unstressed vowels)
(define (list-vcs2)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append v "-" c))
(append (car vc2-carrier) (list v c) (car (cdr vc2-carrier)))))
(remove-list consonants stops-bdg)))
unstressedvowels)))
;;; Carrier for consonant-vowel (stressed vowels)
(define (list-cvs1)
(apply
append
(mapcar
(lambda (c)
(mapcar
(lambda (v)
(list
(list (string-append c "-" v))
(append (car cv1-carrier) (list c v) (car (cdr cv1-carrier)))))
stressedvowels))
(remove-list consonants stops-bdg))))
;;; Carrier for consonant-vowel (unstressed vowels)
(define (list-cvs2)
(apply
append
(mapcar
(lambda (c)
(mapcar
(lambda (v)
(list
(list (string-append c "-" v))
(append (car cv2-carrier) (list c v) (car (cdr cv2-carrier)))))
unstressedvowels))
(remove-list consonants stops-bdg))))
;;; Carrier for vowel-vowel (unstressed-unstressed)
(define (list-vv0s)
(apply
append
(mapcar
(lambda (v1)
(mapcar
(lambda (v2)
(list
(list (string-append v1 "-" v2))
(append (car vv0-carrier) (list v1 v2) (car (cdr vv0-carrier)))))
unstressedvowels))
unstressedvowels)))
;;; Carrier for vowel-vowel (stressed-unstressed)
(define (list-vv1s)
(apply
append
(mapcar
(lambda (v1)
(mapcar
(lambda (v2)
(list
(list (string-append v1 "-" v2))
(append (car vv1-carrier) (list v1 v2) (car (cdr vv1-carrier)))))
(remove-list unstressedvowels schwa)))
stressedvowels)))
;;; Carrier for vowel-vowel (unstressed-stressed)
(define (list-vv2s)
(apply
append
(mapcar
(lambda (v1)
(mapcar
(lambda (v2)
(list
(list (string-append v1 "-" v2))
(append (car vv2-carrier) (list v1 v2) (car (cdr vv2-carrier)))))
stressedvowels))
(remove-list unstressedvowels schwa))))
;;; Carrier for vowel-vowel (stressed-stressed)
(define (list-vv3s)
(apply
append
(mapcar
(lambda (v1)
(mapcar
(lambda (v2)
(list
(list (string-append v1 "-" v2))
(append (car vv3-carrier) (list v1 '- v2) (car (cdr vv3-carrier)))))
stressedvowels))
stressedvowels)))
;;; Carrier for consonant-consonant
(define (list-ccs)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
(remove-list consonants englishconsonants+approximants-BDG)))
(remove-list consonants onset-only+approximants-BDG))))
;;; Carrier for consonant-consonant (exceptions 1a: voiced consonants)
(define (list-ccs1a)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(z)))
'(b d g l m n r))))
;;; Carrier for consonant-consonant (exceptions 1b: voiced consonants)
(define (list-ccs1b)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(b d g l m n r)))
'(z))))
;;; Carrier for consonant-consonant (exceptions 1c: voiced consonants)
(define (list-ccs1c)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(v)))
'(r z))))
;;; Carrier for consonant-consonant (exceptions 1d: voiced consonants)
(define (list-ccs1d)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(r z)))
'(v))))
;;; Carrier for consonant-consonant (exceptions 2a: voiceless consonants)
(define (list-ccs2a)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(sh)))
'(p f k t))))
;;; Carrier for consonant-consonant (exceptions 2b: voiceless consonants)
(define (list-ccs2b)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
'(p f k t)))
'(sh))))
;;; Carrier for silence+vowel (stressed vowels)
(define (list-silv1)
(mapcar
(lambda (v)
(list
(list (string-append silence "-" v))
(append (car silv1-carrier) (list silence v) (car (cdr silv1-carrier)))))
stressedvowels))
;;; Carrier for silence+vowel (unstressed vowels)
(define (list-silv2)
(mapcar
(lambda (v)
(list
(list (string-append silence "-" v))
(append (car silv2-carrier) (list silence v) (car (cdr silv2-carrier)))))
unstressedvowels))
;;; Carrier for silence-consonant
(define (list-silc)
(mapcar
(lambda (c)
(list
(list (string-append silence "-" c))
(append (car silc-carrier) (list silence c) (car (cdr silc-carrier)))))
(remove-list consonants approximants-BDG)))
;;; Carrier for consonant+silence
(define (list-csil)
(mapcar
(lambda (c)
(list
(list (string-append c "-" silence))
(append (car csil-carrier) (list c silence) (car (cdr csil-carrier)))))
(remove-list consonants '(rr ll ny hh dh zh B D G))))
;;; Carrier for vowel-silence (stressed vowels)
(define (list-vsil1)
(mapcar
(lambda (v)
(list
(list (string-append v "-" silence))
(append (car vsil1-carrier) (list v silence) (car (cdr vsil1-carrier)))))
stressedvowels))
;;; Carrier for vowel-silence (unstressed vowels)
(define (list-vsil2)
(mapcar
(lambda (v)
(list
(list (string-append v "-" silence))
(append (car vsil2-carrier) (list v silence) (car (cdr vsil2-carrier)))))
unstressedvowels))
;;; Carrier for consonant clusters (pr,pl,br,bl,kr,kl,gr,gl,fl,fr)
(define (list-ccclust1)
(mapcar
(lambda (c1c2)
(list
(list (string-append (car c1c2) "_-_" (car (cdr c1c2))))
(append (car cc1-carrier) c1c2 (car (cdr cc1-carrier)))))
clusters1))
;;; Carrier for consonant-vowel (stressed vowels)
(define (list-LR1)
(apply
append
(mapcar
(lambda (c)
(mapcar
(lambda (v)
(list
(list (string-append c "-" v))
(append (car LR1-carrier) (list c v) (car (cdr LR1-carrier)))))
stressedvowels))
'(l r))))
;;; Carrier for consonant-vowel (unstressed vowels)
(define (list-LR2)
(apply
append
(mapcar
(lambda (c)
(mapcar
(lambda (v)
(list
(list (string-append c "-" v))
(append (car LR2-carrier) (list c v) (car (cdr LR2-carrier)))))
unstressedvowels))
'(l r))))
(define (list-cvcs-appendix1)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append c "-" v) (string-append v "-" c))
(append (car cvc1-carrier) (list c v c) (car (cdr cvc1-carrier)))))
stops-bdg))
stressedvowels)))
(define (list-cvcs-appendix2)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append c "-" v) (string-append v "-" c))
(append (car cvc2-carrier) (list c v c) (car (cdr cvc2-carrier)))))
stops-bdg))
unstressedvowels)))
;;; End of individual generation functions
(define (diphone-gen-list)
"(diphone-gen-list)
Returns a list of nonsense words as phone strings."
(append
(list-cvcs1)
(list-cvcs2)
;; (list-vcs1)
;; (list-vcs2)
;; (list-cvs2)
;; (list-cvs1)
(list-vv0s)
(list-vv1s)
(list-vv2s)
(list-vv3s)
(list-ccs)
(list-ccs1a)
(list-ccs1b)
(list-ccs1c)
(list-ccs1d)
(list-ccs2a)
(list-ccs2b)
(list-silv1)
(list-silv2)
(list-silc)
(list-csil)
(list-vsil1)
(list-vsil2)
(list-ccclust1)
(list-LR1)
(list-LR2)
(list
'(("#-#") (# t a t a # #)))
(list-cvcs-appendix1)
(list-cvcs-appendix2)
(list
'(("t_-_r") (# o1 t r o s #)))
(list
'(("d_-_r") (# m i m a1 d r e #)))
))
(define (Diphone_Prompt_Setup)
"(Diphone_Prompt_Setup)
Called before synthesizing the prompt waveforms."
(voice_el_diphone) ;; Spanish male voice
(set! FP_F0 90)
)
;; Because we're actually generating the prompts using the existing Spanish el_diphone voice,
;; we map the (both Spanish and English) phonemes that we introduced in our extended phone set
;; to alredy existing phonemes in the previously defined Spanish phone set.
(set! nhg2radio_map
'((B b)
(D d)
(G g)
(L l)
(R r)
(ax e)
(dh d)
(hh x)
(sh s)
(v b)
(z s)
(zh ll)))
(define (Diphone_Prompt_Word utt)
"(Diphone_Prompt_Word utt)
Specify specific modifications of the utterance before synthesis
specific to this particular phone set."
(mapcar
(lambda (s)
(let ((n (item.name s))
(newn (cdr (assoc_string (item.name s) nhg2radio_map))))
(cond
((cdr newn) ;; its a dual one
(let ((newi (item.insert s (list (car (cdr newn))) 'after)))
(item.set_feat newi "end" (item.feat s "end"))
(item.set_feat s "end"
(/ (+ (item.feat s "segment_start")
(item.feat s "end"))
2))
(item.set_name s (car newn))))
(newn
(item.set_name s (car newn)))
(t
;; as is
))))
(utt.relation.items utt 'Segment))
utt)
(provide 'es_schema)

View File

@ -0,0 +1,138 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; 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. ;;;
;;; ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Using CART models rather than LR models generate target points
;;; in a way similar to the way that Int_Targets_LR does
;;;
;;; To use this train three CART trees that predict start, mid and
;;; end values F0 (cf. the features syl_startpitch, syl_midpitch and
;;; syl_endpitch). Then in your voice definition
;;;
;;; (set! F0start_tree f2b_F0start_tree)
;;; (set! F0mid_tree f2b_F0mid_tree)
;;; (set! F0end_tree f2b_F0end_tree)
;;; (set! int_params
;;; '((target_f0_mean 110) (target_f0_std 10)
;;; (model_f0_mean 170) (model_f0_std 40)))
;;; (Parameter.set 'Int_Target_Method Int_Targets_Tree)
(define (Int_Targets_Tree utt)
"(Int_Targets_Tree utt)
For each syllable in a phrase add start mid and end F0 targets."
(utt.relation.create utt 'Target)
(mapcar
(lambda (syl)
(Tree_Predict_Targets utt syl))
(utt.relation.items utt 'Syllable))
; (format t "\nARBOL: %l" (utt.relation_tree utt 'Target))
; (format t "\nARBOL: %l" (utt.relation_tree utt 'Segment))
utt)
(define (Tree_Predict_Targets utt syl)
"(Tree_Predict_Targets utt syl)
Add targets to start (if immediately after a pause) mid vowel
and end for this syllable."
(if (tpt_after_pause syl)
(tpt_add_target
utt
(item.relation.daughter1 syl 'SylStructure)
0
(wagon_predict syl F0start_tree)))
(tpt_add_target utt (tpt_find_syl_vowel syl) 50
(wagon_predict syl F0mid_tree))
(tpt_add_target utt (item.relation.daughtern syl 'SylStructure) 100
(wagon_predict syl F0end_tree)))
(define (tpt_after_pause syl)
"(tpt_after_pause syl)
Retursn t if segment immediately before this is a pause (or utterance
start). nil otherwise."
(let ((pseg (item.relation.prev (item.relation.daughter1 syl 'SylStructure)
'Segment)))
(if (or (not pseg)
(member_string
(item.name pseg)
(car (cdr (car (PhoneSet.description '(silences)))))))
t
nil)))
(define (tpt_find_syl_vowel syl)
"(tpt_find_syl_vowel syl)
Find the item that is the vowel in syl."
(let ((v (item.relation.daughtern syl 'SylStructure)))
(mapcar
(lambda (s)
(if (string-equal "+" (item.feat s "ph_vc"))
(set! v s)))
(item.relation.daughters syl 'SylStructure))
v))
(define (tpt_f0_map_value value)
"(tpt_f0_map_value value)
Map F0 vlaue through means and standard deviations in int_params."
(let ((target_f0_mean (get_param 'target_f0_mean int_params 110))
(target_f0_stddev (get_param 'target_f0_stddev int_params 15))
(model_f0_mean (get_param 'model_f0_mean int_params 110))
(model_f0_stddev (get_param 'model_f0_stddev int_params 15)))
(set! diego (+ (* (/ (- value model_f0_mean) model_f0_stddev)
target_f0_stddev) target_f0_mean))
; (format t "\nValor de value: %s" value)
; (format t "\nValor de target y model: %s , %s" target_f0_mean model_f0_mean)
; (format t "\nValor de la frecuencia: %s\n" diego)
(+ (* (/ (- value model_f0_mean) model_f0_stddev)
target_f0_stddev) target_f0_mean)))
(define (tpt_add_target utt seg pos value)
"(tpt_add_target utt seg pos value)
Add Target at pos and value related to seg."
(let ((tseg (item.relation seg 'Target))
(ntarg))
(if (null tseg)
(set! tseg (utt.relation.append utt 'Target seg)))
; (format t "\nValor features del item seg: %l" (item.name seg))
(set! ntarg (item.append_daughter tseg))
(item.set_feat ntarg 'f0 (tpt_f0_map_value value))
(item.set_feat ntarg 'pos
(+ (item.feat seg "segment_start")
(* (/ pos 100) (item.feat seg "segment_duration"))))
; (format t "\nValor de features of item ntarg: %l" (item.features ntarg))
; (format t "\nValor de segment_start: %s" (item.feat seg "segment_start"))
; (format t "\nValor de segment_duration: %s" (item.feat seg "segment_duration"))
))
(provide 'tree_f0)

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0001
nfields 1
#
0.400609 125 H#
0.522120 125 DB
0.554397 125 t
0.601863 125 DB
0.653125 125 a
0.698692 125 DB
0.736665 125 p
0.789826 125 DB
0.835393 125 a1
0.915135 125 DB
0.943614 125 p
0.964499 125 DB
1.089808 125 a
1.199928 125 DB
1.680000 125 pau

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0002
nfields 1
#
0.100000 125 H#
0.485000 125 DB
0.555000 125 t
0.605000 125 DB
0.672636 125 a
0.696906 125 DB
0.719443 125 B
0.767984 125 DB
0.830393 125 a1
0.861598 125 DB
0.885868 125 B
0.911872 125 DB
1.021089 125 a
1.100834 125 DB
1.535000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0003
nfields 1
#
0.100000 125 H#
0.515163 125 DB
0.557258 125 t
0.601357 125 DB
0.651471 125 a
0.713611 125 DB
0.773747 125 ch
0.819851 125 DB
0.877982 125 a1
0.942127 125 DB
1.010281 125 ch
1.030326 125 DB
1.140575 125 a
1.240801 125 DB
1.775000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0004
nfields 1
#
0.100000 125 H#
0.480000 125 DB
0.540000 125 t
0.592858 125 DB
0.659722 125 a
0.680000 125 DB
0.704298 125 D
0.762246 125 DB
0.826881 125 a1
0.862542 125 DB
0.895973 125 D
0.922719 125 DB
1.067590 125 a
1.201318 125 DB
1.975000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0005
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.565442 125 t
0.620000 125 DB
0.665000 125 a
0.734885 125 DB
0.797712 125 f
0.837692 125 DB
0.898615 125 a1
0.957635 125 DB
1.020462 125 f
1.052827 125 DB
1.130885 125 a
1.199423 125 DB
1.685000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0006
nfields 1
#
0.100000 125 H#
0.495000 125 DB
0.550000 125 t
0.590000 125 DB
0.649782 125 a
0.691007 125 DB
0.740084 125 G
0.802903 125 DB
0.869648 125 a1
0.912836 125 DB
0.950000 125 G
0.990000 125 DB
1.097366 125 a
1.201410 125 DB
1.740000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0007
nfields 1
#
0.100000 125 H#
0.520000 125 DB
0.560912 125 t
0.605000 125 DB
0.653434 125 a
0.717043 125 DB
0.755593 125 k
0.801854 125 DB
0.850000 125 a1
0.923289 125 DB
0.977260 125 k
0.998463 125 DB
1.102549 125 a
1.198926 125 DB
1.705000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0008
nfields 1
#
0.100000 125 H#
0.490000 125 DB
0.555000 125 t
0.608978 125 DB
0.671583 125 a
0.717114 125 DB
0.751262 125 l
0.810073 125 DB
0.855000 125 a1
0.900000 125 DB
0.959946 125 l
0.995000 125 DB
1.079465 125 a
1.200881 125 DB
1.680000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0009
nfields 1
#
0.100000 125 H#
0.490000 125 DB
0.560000 125 t
0.605000 125 DB
0.687502 125 a
0.734335 125 DB
0.766181 125 ll
0.828000 125 DB
0.887946 125 a1
0.932905 125 DB
0.983484 125 ll
1.015330 125 DB
1.127729 125 a
1.198914 125 DB
1.660000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0010
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.550838 125 t
0.603042 125 DB
0.653445 125 a
0.694848 125 DB
0.734451 125 m
0.795655 125 DB
0.850000 125 a1
0.894662 125 DB
0.937865 125 m
0.955866 125 DB
1.063874 125 a
1.200683 125 DB
1.595000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0011
nfields 1
#
0.100000 125 H#
0.470000 125 DB
0.540000 125 t
0.590025 125 DB
0.657166 125 a
0.700000 125 DB
0.744653 125 n
0.797551 125 DB
0.866727 125 a1
0.903349 125 DB
0.935902 125 n
0.964386 125 DB
1.082391 125 a
1.200396 125 DB
1.800000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0012
nfields 1
#
0.100000 125 H#
0.495000 125 DB
0.546312 125 t
0.595000 125 DB
0.664994 125 a
0.749766 125 DB
0.810049 125 ny
0.855261 125 DB
0.904241 125 a1
0.972059 125 DB
1.007852 125 ny
1.034225 125 DB
1.130301 125 a
1.260286 125 DB
1.670000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0013
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.570000 125 t
0.610000 125 DB
0.704177 125 a
0.711728 125 DB
0.736271 125 r
0.796683 125 DB
0.864646 125 a1
0.891076 125 DB
0.911843 125 r
0.945825 125 DB
1.074200 125 a
1.198800 125 DB
1.670000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0014
nfields 1
#
0.100000 125 H#
0.500000 125 DB
0.565000 125 t
0.636897 125 DB
0.698670 125 a
0.756182 125 DB
0.805174 125 rr
0.860557 125 DB
0.922329 125 a1
0.958541 125 DB
1.005403 125 rr
1.041614 125 DB
1.186460 125 a
1.299355 125 DB
1.885000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0015
nfields 1
#
0.100000 125 H#
0.490000 125 DB
0.555000 125 t
0.600000 125 DB
0.660439 125 a
0.715000 125 DB
0.778295 125 s
0.820545 125 DB
0.880000 125 a1
0.931730 125 DB
1.000000 125 s
1.045000 125 DB
1.145205 125 a
1.298640 125 DB
1.970000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0016
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.560000 125 t
0.611011 125 DB
0.672773 125 a
0.765418 125 DB
0.798505 125 t
0.853650 125 DB
0.922030 125 a1
1.008057 125 DB
1.045556 125 t
1.078643 125 DB
1.199963 125 a
1.299225 125 DB
1.950000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0017
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.565941 125 t
0.619738 125 DB
0.688597 125 a
0.746698 125 DB
0.804798 125 th
0.852139 125 DB
0.899480 125 a1
0.976947 125 DB
1.040000 125 th
1.080000 125 DB
1.187830 125 a
1.299727 125 DB
1.905000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0018
nfields 1
#
0.100000 125 H#
0.512930 125 DB
0.550515 125 t
0.610000 125 DB
0.676537 125 a
0.727388 125 DB
0.778239 125 x
0.833511 125 DB
0.890000 125 a1
0.945000 125 DB
1.005000 125 x
1.045000 125 DB
1.158514 125 a
1.300012 125 DB
1.955000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0019
nfields 1
#
0.100000 125 H#
0.497499 125 DB
0.544782 125 t
0.627013 125 DB
0.705133 125 a
0.746248 125 DB
0.783252 125 dh
0.853149 125 DB
0.925101 125 a1
0.972384 125 DB
1.017611 125 dh
1.048448 125 DB
1.171795 125 a
1.299253 125 DB
1.820000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0020
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.553295 125 t
0.615000 125 DB
0.711380 125 a
0.774614 125 DB
0.846881 125 hh
0.898823 125 DB
0.950765 125 a1
1.023032 125 DB
1.090782 125 hh
1.120141 125 DB
1.224025 125 a
1.318875 125 DB
2.000000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0021
nfields 1
#
0.100000 125 H#
0.470000 125 DB
0.530000 125 t
0.575000 125 DB
0.647599 125 a
0.725757 125 DB
0.806149 125 sh
0.859743 125 DB
0.913338 125 a1
0.993729 125 DB
1.075000 125 sh
1.120000 125 DB
1.199174 125 a
1.299664 125 DB
1.975000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0022
nfields 1
#
0.100000 125 H#
0.504921 125 DB
0.555194 125 t
0.646998 125 DB
0.747545 125 a
0.784703 125 DB
0.828419 125 v
0.907108 125 DB
0.985797 125 a1
1.031699 125 DB
1.079787 125 v
1.116945 125 DB
1.256837 125 a
1.359570 125 DB
1.935000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0023
nfields 1
#
0.100000 125 H#
0.475000 125 DB
0.555000 125 t
0.600000 125 DB
0.679543 125 a
0.741927 125 DB
0.802083 125 z
0.875608 125 DB
0.949132 125 a1
1.009288 125 DB
1.076128 125 z
1.111777 125 DB
1.216493 125 a
1.301157 125 DB
1.970000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0024
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.559830 125 t
0.624179 125 DB
0.690672 125 a
0.746440 125 DB
0.791484 125 zh
0.860122 125 DB
0.943775 125 a1
1.003834 125 DB
1.063892 125 zh
1.096066 125 DB
1.231198 125 a
1.359894 125 DB
1.900000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0025
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.554002 125 t
0.609816 125 DB
0.673898 125 a
0.771055 125 DB
0.795861 125 p
0.847540 125 DB
0.893018 125 i1
0.986041 125 DB
1.021183 125 p
1.052191 125 DB
1.172086 125 a
1.258908 125 DB
1.830000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0026
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.556656 125 t
0.609239 125 DB
0.679955 125 a
0.705340 125 DB
0.734351 125 B
0.794187 125 DB
0.855836 125 i1
0.892101 125 DB
0.928365 125 B
0.953750 125 DB
1.080675 125 a
1.149577 125 DB
1.605000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0027
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.555000 125 t
0.600000 125 DB
0.657669 125 a
0.745034 125 DB
0.820266 125 ch
0.856668 125 DB
0.897924 125 i1
0.970729 125 DB
1.055667 125 ch
1.099350 125 DB
1.213411 125 a
1.298349 125 DB
2.150000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0028
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.560000 125 t
0.605000 125 DB
0.688581 125 a
0.730568 125 DB
0.768356 125 D
0.827137 125 DB
0.888018 125 i1
0.925806 125 DB
0.971991 125 D
1.011878 125 DB
1.125242 125 a
1.200818 125 DB
1.860000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0029
nfields 1
#
0.100000 125 H#
0.470000 125 DB
0.545000 125 t
0.600000 125 DB
0.656483 125 a
0.711766 125 DB
0.778566 125 f
0.820028 125 DB
0.865000 125 i1
0.932897 125 DB
1.006608 125 f
1.041160 125 DB
1.137904 125 a
1.218525 125 DB
2.040000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0030
nfields 1
#
0.100000 125 H#
0.530000 125 DB
0.650000 125 t
0.709854 125 DB
0.802646 125 a
0.825843 125 DB
0.858320 125 G
0.913995 125 DB
0.965031 125 i1
1.009107 125 DB
1.043903 125 G
1.078700 125 DB
1.241085 125 a
1.338516 125 DB
2.055000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0031
nfields 1
#
0.100000 125 H#
0.475000 125 DB
0.525611 125 t
0.584742 125 DB
0.648253 125 a
0.720525 125 DB
0.786226 125 k
0.821267 125 DB
0.862878 125 i1
0.939529 125 DB
0.996471 125 k
1.038081 125 DB
1.200145 125 a
1.300887 125 DB
1.940000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0032
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.555050 125 t
0.616722 125 DB
0.695408 125 a
0.731560 125 DB
0.774093 125 l
0.825132 125 DB
0.875000 125 i1
0.931463 125 DB
0.984629 125 l
1.012275 125 DB
1.127113 125 a
1.299370 125 DB
1.880000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0033
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.550000 125 t
0.602269 125 DB
0.692820 125 a
0.732831 125 DB
0.768631 125 ll
0.823382 125 DB
0.869711 125 i1
0.918145 125 DB
0.989743 125 ll
1.019225 125 DB
1.135046 125 a
1.301407 125 DB
1.865000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0034
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.561181 125 t
0.625000 125 DB
0.680874 125 a
0.727966 125 DB
0.767209 125 m
0.822150 125 DB
0.875000 125 i1
0.935956 125 DB
0.986972 125 m
1.014443 125 DB
1.145908 125 a
1.261677 125 DB
1.735000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0035
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.544355 125 t
0.590000 125 DB
0.666557 125 a
0.710994 125 DB
0.753209 125 n
0.802090 125 DB
0.850000 125 i1
0.902073 125 DB
0.948732 125 n
0.990947 125 DB
1.106484 125 a
1.202024 125 DB
1.965000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0036
nfields 1
#
0.100000 125 H#
0.486858 125 DB
0.538789 125 t
0.615000 125 DB
0.670000 125 a
0.755170 125 DB
0.813593 125 ny
0.861197 125 DB
0.902310 125 i1
1.010500 125 DB
1.051613 125 ny
1.090561 125 DB
1.194424 125 a
1.298287 125 DB
1.915000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0037
nfields 1
#
0.100000 125 H#
0.500000 125 DB
0.550895 125 t
0.621909 125 DB
0.718746 125 a
0.740265 125 DB
0.763937 125 r
0.832799 125 DB
0.905964 125 i1
0.953307 125 DB
0.970522 125 r
0.985586 125 DB
1.136221 125 a
1.239514 125 DB
1.905000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0038
nfields 1
#
0.100000 125 H#
0.470000 125 DB
0.545000 125 t
0.614520 125 DB
0.686178 125 a
0.738292 125 DB
0.786064 125 rr
0.842522 125 DB
0.912008 125 i1
0.957609 125 DB
1.003209 125 rr
1.060000 125 DB
1.194296 125 a
1.361498 125 DB
1.920000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0039
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.562993 125 t
0.615000 125 DB
0.698396 125 a
0.772037 125 DB
0.848053 125 s
0.900314 125 DB
0.940697 125 i1
1.007211 125 DB
1.080000 125 s
1.125000 125 DB
1.270891 125 a
1.399168 125 DB
2.100000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0040
nfields 1
#
0.100000 125 H#
0.485000 125 DB
0.545000 125 t
0.603559 125 DB
0.674048 125 a
0.770970 125 DB
0.826039 125 t
0.872298 125 DB
0.914150 125 i1
0.984639 125 DB
1.044114 125 t
1.095000 125 DB
1.231349 125 a
1.339285 125 DB
1.950000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0041
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.555000 125 t
0.600000 125 DB
0.665847 125 a
0.739363 125 DB
0.804478 125 th
0.848587 125 DB
0.903199 125 i1
0.966213 125 DB
1.033428 125 th
1.067036 125 DB
1.182561 125 a
1.300187 125 DB
1.860000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0042
nfields 1
#
0.100000 125 H#
0.494149 125 DB
0.538201 125 t
0.591829 125 DB
0.672272 125 a
0.741223 125 DB
0.806344 125 x
0.850396 125 DB
0.900194 125 i1
0.965314 125 DB
1.030434 125 x
1.065000 125 DB
1.158760 125 a
1.281339 125 DB
1.695000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0043
nfields 1
#
0.100000 125 H#
0.500000 125 DB
0.545000 125 t
0.590000 125 DB
0.693772 125 a
0.733362 125 DB
0.769182 125 dh
0.820083 125 DB
0.875000 125 i1
0.923772 125 DB
0.978444 125 dh
1.001067 125 DB
1.121723 125 a
1.200904 125 DB
1.670000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0044
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.555887 125 t
0.615000 125 DB
0.736056 125 a
0.780000 125 DB
0.826141 125 hh
0.885465 125 DB
0.940394 125 i1
1.008507 125 DB
1.070028 125 hh
1.115000 125 DB
1.261183 125 a
1.399606 125 DB
1.945000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0045
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.564494 125 t
0.623341 125 DB
0.682188 125 a
0.762830 125 DB
0.839113 125 sh
0.882703 125 DB
0.924114 125 i1
1.000397 125 DB
1.089757 125 sh
1.131168 125 DB
1.227066 125 a
1.318606 125 DB
1.930000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0046
nfields 1
#
0.100000 125 H#
0.490000 125 DB
0.560000 125 t
0.641685 125 DB
0.728801 125 a
0.777671 125 DB
0.826541 125 v
0.883911 125 DB
0.945529 125 i1
1.005023 125 DB
1.073016 125 v
1.100639 125 DB
1.226001 125 a
1.319492 125 DB
1.880000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0047
nfields 1
#
0.100000 125 H#
0.500000 125 DB
0.560000 125 t
0.605000 125 DB
0.715000 125 a
0.765538 125 DB
0.817519 125 z
0.878951 125 DB
0.942746 125 i1
1.004178 125 DB
1.065610 125 z
1.120000 125 DB
1.240455 125 a
1.342054 125 DB
2.090000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0048
nfields 1
#
0.100000 125 H#
0.470000 125 DB
0.549195 125 t
0.595000 125 DB
0.683823 125 a
0.750068 125 DB
0.816313 125 zh
0.882559 125 DB
0.961626 125 i1
1.015049 125 DB
1.066336 125 zh
1.100000 125 DB
1.254387 125 a
1.380467 125 DB
1.890000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0049
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.580000 125 t
0.630000 125 DB
0.680000 125 a
0.782113 125 DB
0.816873 125 p
0.872876 125 DB
0.925000 125 u1
1.004194 125 DB
1.040000 125 p
1.075000 125 DB
1.183790 125 a
1.259105 125 DB
1.710000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0050
nfields 1
#
0.100000 125 H#
0.500000 125 DB
0.560000 125 t
0.619898 125 DB
0.707101 125 a
0.743119 125 DB
0.779138 125 B
0.837905 125 DB
0.900464 125 u1
0.940273 125 DB
0.980083 125 B
1.012311 125 DB
1.143115 125 a
1.218943 125 DB
1.680000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0051
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.562494 125 t
0.615412 125 DB
0.668329 125 a
0.766325 125 DB
0.829042 125 ch
0.874120 125 DB
0.928997 125 u1
0.989754 125 DB
1.065000 125 ch
1.099509 125 DB
1.211224 125 a
1.301380 125 DB
1.735000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0052
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.560000 125 t
0.605000 125 DB
0.693203 125 a
0.737125 125 DB
0.777227 125 D
0.828788 125 DB
0.891806 125 u1
0.937638 125 DB
0.973921 125 D
0.998747 125 DB
1.136241 125 a
1.218356 125 DB
1.690000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0053
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.559066 125 t
0.610000 125 DB
0.673995 125 a
0.734382 125 DB
0.802561 125 f
0.857104 125 DB
0.905803 125 u1
0.972034 125 DB
1.048005 125 f
1.067484 125 DB
1.211633 125 a
1.301240 125 DB
1.725000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0054
nfields 1
#
0.100000 125 H#
0.484558 125 DB
0.552028 125 t
0.625632 125 DB
0.707413 125 a
0.754438 125 DB
0.797374 125 G
0.848487 125 DB
0.897556 125 u1
0.952759 125 DB
1.028407 125 G
1.095000 125 DB
1.183793 125 a
1.300332 125 DB
1.810000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0055
nfields 1
#
0.100000 125 H#
0.513289 125 DB
0.554805 125 t
0.600095 125 DB
0.671805 125 a
0.743515 125 DB
0.794466 125 k
0.830321 125 DB
0.879385 125 u1
0.960530 125 DB
1.020000 125 k
1.051111 125 DB
1.149239 125 a
1.258691 125 DB
1.670000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0056
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.560000 125 t
0.605000 125 DB
0.671843 125 a
0.722328 125 DB
0.766988 125 l
0.819415 125 DB
0.875000 125 u1
0.925235 125 DB
0.974755 125 l
1.001939 125 DB
1.132036 125 a
1.238831 125 DB
1.720000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0057
nfields 1
#
0.100000 125 H#
0.520000 125 DB
0.567479 125 t
0.640173 125 DB
0.726936 125 a
0.792595 125 DB
0.832459 125 ll
0.886393 125 DB
0.954397 125 u1
1.001296 125 DB
1.048195 125 ll
1.085000 125 DB
1.224066 125 a
1.338969 125 DB
2.075000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0058
nfields 1
#
0.100000 125 H#
0.510000 125 DB
0.555000 125 t
0.615000 125 DB
0.656264 125 a
0.706177 125 DB
0.763485 125 m
0.818944 125 DB
0.872554 125 u1
0.924316 125 DB
0.968683 125 m
1.009353 125 DB
1.096238 125 a
1.199762 125 DB
1.635000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0059
nfields 1
#
0.100000 125 H#
0.515000 125 DB
0.563689 125 t
0.618362 125 DB
0.673034 125 a
0.720165 125 DB
0.763526 125 n
0.812542 125 DB
0.876641 125 u1
0.921887 125 DB
0.957706 125 n
0.999182 125 DB
1.102871 125 a
1.199018 125 DB
1.670000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0060
nfields 1
#
0.100000 125 H#
0.513937 125 DB
0.554623 125 t
0.614583 125 DB
0.687390 125 a
0.770905 125 DB
0.828723 125 ny
0.880117 125 DB
0.942217 125 u1
1.017166 125 DB
1.057853 125 ny
1.085691 125 DB
1.222741 125 a
1.301973 125 DB
1.895000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0061
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.556156 125 t
0.597425 125 DB
0.707477 125 a
0.717306 125 DB
0.736956 125 r
0.801810 125 DB
0.876486 125 u1
0.898103 125 DB
0.921686 125 r
0.970816 125 DB
1.084799 125 a
1.198781 125 DB
1.740000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0062
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.545000 125 t
0.595000 125 DB
0.680312 125 a
0.732812 125 DB
0.787500 125 rr
0.853125 125 DB
0.914375 125 u1
0.964688 125 DB
1.012812 125 rr
1.047813 125 DB
1.218438 125 a
1.419688 125 DB
2.260000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0063
nfields 1
#
0.100000 125 H#
0.500476 125 DB
0.548599 125 t
0.604422 125 DB
0.669869 125 a
0.733391 125 DB
0.808462 125 s
0.856585 125 DB
0.895000 125 u1
0.960530 125 DB
1.024052 125 s
1.052925 125 DB
1.181894 125 a
1.301239 125 DB
1.705000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0064
nfields 1
#
0.100000 125 H#
0.525000 125 DB
0.570767 125 t
0.630000 125 DB
0.694950 125 a
0.795252 125 DB
0.838239 125 t
0.886002 125 DB
0.960034 125 u1
1.026902 125 DB
1.069889 125 t
1.110487 125 DB
1.263329 125 a
1.401841 125 DB
2.115000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0065
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.555000 125 t
0.605426 125 DB
0.686280 125 a
0.755303 125 DB
0.824325 125 th
0.869683 125 DB
0.920957 125 u1
0.995895 125 DB
1.060000 125 th
1.100000 125 DB
1.226628 125 a
1.301566 125 DB
1.745000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0066
nfields 1
#
0.100000 125 H#
0.491513 125 DB
0.543760 125 t
0.584397 125 DB
0.673411 125 a
0.746945 125 DB
0.820478 125 x
0.866921 125 DB
0.915298 125 u1
0.979156 125 DB
1.046884 125 x
1.085000 125 DB
1.192016 125 a
1.300381 125 DB
1.715000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0067
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.562944 125 t
0.615000 125 DB
0.708964 125 a
0.753154 125 DB
0.799266 125 dh
0.856905 125 DB
0.926072 125 u1
0.964499 125 DB
1.004846 125 dh
1.043273 125 DB
1.177764 125 a
1.298807 125 DB
1.700000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0068
nfields 1
#
0.100000 125 H#
0.499481 125 DB
0.540295 125 t
0.588883 125 DB
0.672453 125 a
0.744363 125 DB
0.822103 125 hh
0.876522 125 DB
0.940657 125 u1
1.002850 125 DB
1.063098 125 hh
1.084477 125 DB
1.193313 125 a
1.294376 125 DB
1.720000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0069
nfields 1
#
0.100000 125 H#
0.505000 125 DB
0.560000 125 t
0.604025 125 DB
0.674057 125 a
0.746277 125 DB
0.825063 125 sh
0.868833 125 DB
0.920000 125 u1
0.991388 125 DB
1.060000 125 sh
1.105000 125 DB
1.208050 125 a
1.299966 125 DB
1.935000 125 #

View File

@ -0,0 +1,18 @@
signal Indisys_MP_pa_0070
nfields 1
#
0.100000 125 H#
0.511275 125 DB
0.550909 125 t
0.636121 125 DB
0.723315 125 a
0.764931 125 DB
0.806546 125 v
0.869960 125 DB
0.929411 125 u1
0.986879 125 DB
1.050293 125 v
1.095872 125 DB
1.236572 125 a
1.341601 125 DB
1.755000 125 #

Some files were not shown because too many files have changed in this diff Show More