diff options
author | Niko Tyni <ntyni@iki.fi> | 2005-10-18 14:32:20 +0200 |
---|---|---|
committer | Niko Tyni <ntyni@iki.fi> | 2005-10-18 14:32:20 +0200 |
commit | 8e03a58d62f4b8c00978634f116819ff246c09d3 (patch) | |
tree | 29284d785fe91b3473a19dcc257dfaa6066f4b12 /lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm |
Import festvox-suopuhe-mv_20041119.orig.tar.gz
[dgit import orig festvox-suopuhe-mv_20041119.orig.tar.gz]
Diffstat (limited to 'lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm')
-rw-r--r-- | lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm | 1315 |
1 files changed, 1315 insertions, 0 deletions
diff --git a/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm b/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm new file mode 100644 index 0000000..0e944db --- /dev/null +++ b/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm @@ -0,0 +1,1315 @@ +; +; finnish_duration.scm - duration model based on 692 sentences +; +; Copyright (c) 2000-2003 +; Department of General Linguistics, University of Helsinki +; Department of Foreign Languages, University of Joensuu +; All Rights Reserved. +; +; Author: Nicholas Volk (nvolk@ling.helsinki.fi) + +; This program is distributed under Gnu Lesser General Public License (cf. the +; file LICENSE in distribution). + +; This program is free software; you can redistribute it and/or modify +; it under the terms of the GNU Lesser 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 Lesser General Public License for more details. + +; FEATURE 1 R:SylStructure.parent.position_type: 0.2493 +; FEATURE 2 lisp_end_of_phrase: 0.3704 +; FEATURE 3 n.ph_ctype: 0.4334 +; FEATURE 4 pos_in_syl: 0.5047 +; FEATURE 5 p.ph_vc: 0.5382 +; FEATURE 6 ph_ctype: 0.5784 +; FEATURE 7 lisp_mora: 0.6033 +; FEATURE 8 p.ph_ctype: 0.6158 +; FEATURE 9 p.ph_cplace2: 0.6267 +; FEATURE 10 n.seg_onsetcoda: 0.6330 +; FEATURE 11 ph_cplace2: 0.6385 +; FEATURE 12 n.ph_vfront: 0.6427 +; FEATURE 13 p.ph_clng: 0.6460 +; FEATURE 14 n.ph_cplace: 0.6492 +; FEATURE 15 pp.ph_vlng: 0.6530 +; RMSE 0.7550 Correlation is 0.6530 Mean (abs) Error 0.5636 (0.5024) +; ;;; Test the duration model +; ;; RMSE 0.7679 Correlation is 0.6300 Mean (abs) Error 0.5778 (0.5059) + + + +;; averages durations and deviations as counted by Festvox 1.6 +;; from 692 mv sentences + some modifications +(set! + hy_fi_mv2::phone_durs ' + ( + (# 0.2 0.1) + (## 0.050 0.1) + (7 0.074 0.021091) + (7: 0.144 0.0343) + (@ 0.066 0.02502) + (@: 0.142 0.039752) + (N 0.054 0.019307) + (N: 0.105 0.031537) + (S 0.107 0.074051) + (S: 0.162 0.002122) + (T 0.100 0.02) + (T: 0.150 0.02) + (a 0.072 0.027) + (a: 0.134 0.034379) + (b 0.087 0.020942) + (b: 0.150 0.05) + (d 0.052 0.017189) + (d: 0.150 0.05) + (e 0.068 0.02284) + (e: 0.118 0.031648) + ;; (f 0.111 0.04366) + ;; (f: 0.123 0.025) + (f 0.090 0.04366) + (f: 0.160 0.025) + (g 0.083 0.028302) + (g: 0.150 0.05) + (h 0.068 0.022465) + (h: 0.128 0.014142) + (i 0.057 0.02158) + (i: 0.117 0.028321) + (j 0.062 0.019587) + (j: 0.078 0.011561) + (k 0.089 0.026993) + (k: 0.163 0.037839) + (l 0.058 0.014875) + ;; (l: 0.085 0.026515) + (l: 0.130 0.025) + (m 0.067 0.018604) + (m: 0.101 0.021473) + (n 0.052 0.01586) + (n: 0.093 0.028081) + (o 0.075 0.024718) + (o: 0.139 0.045108) + (p 0.096 0.028916) + (p: 0.176 0.043074) + (r 0.062 0.015694) + (r: 0.103 0.040321) + (s 0.078 0.023607) + (s: 0.146 0.038235) + (t 0.088 0.026786) + (t: 0.150 0.036228) + (u 0.066 0.023676) + (u: 0.132 0.036521) + (v 0.060 0.015418) + (v: 0.093 0.022544) + (y 0.070 0.027444) + (y: 0.130 0.030567) + )) + + + +(set! hy_fi_mv2::zdur_tree ' +((name is ##) + ((0.0 0.0)) + ((name is #) + ((n.name is #) ;; lauseen loppu (tunnus 2*#) + ((0.0 -1.8)) ;; lyhennetään niin maan perkeleesti + ((p.name is 0) ;; puhunnoksen alku + ((0.0 -1.8)) ;; ja taas lyhyenä (emacspeakin vasteajan takia) + ((p.R:SylStructure.parent.parent.pbreak is BB) + ((0.0 0.0)) + ((0.0 0.0))))) + +((R:SylStructure.parent.position_type is initial) + ((lisp_end_of_phrase is 0) + ((pos_in_syl < 1.2) + ((p.ph_vc is 0) + ((ph_ctype is s) + ((ph_cplace2 is r) ((0.414358 -2.16199)) ((0.874005 -2.4695))) + ((ph_ctype is 0) + ((pp.ph_vlng is 0) + ((n.seg_onsetcoda is coda) + ((1.05861 1.62942)) + ((1.172 1.17007))) + ((1.08052 0.293028))) + ((ph_cplace2 is a) + ((n.ph_vfront is 1) + ((1.14796 0.487189)) + ((ph_ctype is f) ((0.584116 0.460911)) ((1.5297 1.02475)))) + ((ph_ctype is n) + ((lisp_mora is 2) ((0.880194 -1.15771)) ((1.17857 -0.557597))) + ((lisp_mora is 2) ((1.1581 0.0696902)) ((1.00619 -0.432983))))))) + ((n.ph_ctype is s) + ((pos_in_syl < 0.1) + ((n.seg_onsetcoda is coda) + ((0.697916 1.4032)) + ((p.ph_ctype is n) + ((1.0436 1.18853)) + ((lisp_mora is 2) ((1.02962 -0.0361715)) ((0.952024 0.580176))))) + ((n.seg_onsetcoda is coda) + ((p.ph_cplace2 is r) + ((0.691754 0.228866)) + ((p.ph_cplace2 is l) + ((0.442573 0.720269)) + ((0.593858 0.55871)))) + ((ph_ctype is f) + ((pp.ph_vlng is s) + ((0.625067 -0.431548)) + ((0.521233 -0.571476))) + ((p.ph_ctype is n) + ((n.ph_cplace is a) + ((0.778804 -0.56443)) + ((0.750129 0.0464458))) + ((p.ph_ctype is r) + ((pp.ph_vlng is s) + ((1.07725 -0.16798)) + ((0.891796 -0.425804))) + ((lisp_mora is 2) + ((p.ph_ctype is s) + ((0.521263 0.500136)) + ((pp.ph_vlng is 0) + ((n.ph_cplace is a) + ((0.699937 -0.0663515)) + ((0.838917 0.306609))) + ((0.732822 0.411336)))) + ((p.ph_cplace2 is l) + ((0.610493 0.304215)) + ((n.ph_cplace is l) + ((0.440354 0.190908)) + ((p.ph_vc is +) + ((0.708797 -0.181432)) + ((p.ph_cplace2 is a) + ((p.ph_ctype is s) + ((0.507732 0.162633)) + ((0.701973 -0.0615322))) + ((0.497253 -0.0607969)))))))))))) + ((ph_ctype is 0) + ((lisp_mora is 2) + ((pos_in_syl < 0.1) + ((n.seg_onsetcoda is coda) + ((n.ph_cplace is a) + ((p.ph_ctype is n) ((0.846843 1.98492)) ((1.28616 1.76399))) + ((1.10419 1.37166))) + ((n.ph_ctype is l) ((1.09167 0.707285)) ((1.00628 1.5813)))) + ((n.ph_ctype is r) + ((n.seg_onsetcoda is coda) + ((p.ph_ctype is s) + ((pp.ph_vlng is 0) ((0.793108 1.6759)) ((0.686577 1.46816))) + ((p.ph_cplace2 is l) + ((1.02811 1.5475)) + ((0.797975 1.08187)))) + ((1.23028 0.848184))) + ((p.ph_ctype is r) + ((p.ph_cplace2 is a) + ((1.03257 0.930175)) + ((0.844828 -0.17997))) + ((n.ph_ctype is n) + ((n.seg_onsetcoda is coda) + ((pp.ph_vlng is 0) + ((0.566015 1.01837)) + ((0.641936 1.2535))) + ((pp.ph_vlng is s) + ((0.958101 1.00167)) + ((0.756233 0.717495)))) + ((n.ph_cplace is a) + ((n.seg_onsetcoda is coda) + ((p.ph_cplace2 is a) + ((0.565396 1.10786)) + ((n.ph_ctype is f) + ((p.ph_cplace2 is r) + ((0.785843 0.922216)) + ((0.620961 0.483967))) + ((p.ph_cplace2 is l) + ((0.518981 1.07022)) + ((0.777028 0.626201))))) + ((p.ph_cplace2 is a) + ((0.854425 0.404668)) + ((0.883663 0.766847)))) + ((n.ph_cplace is g) + ((p.ph_ctype is s) + ((0.588436 0.573801)) + ((0.875701 0.741857))) + ((p.ph_cplace2 is l) + ((0.812018 0.592433)) + ((0.8093 0.408434))))))))) + ((n.ph_cplace is b) + ((pos_in_syl < 0.1) + ((1.15445 -0.163448)) + ((p.ph_cplace2 is a) + ((0.663495 0.537209)) + ((0.687391 0.141296)))) + ((pos_in_syl < 0.1) + ((n.ph_ctype is l) + ((p.ph_ctype is n) + ((1.11183 0.916437)) + ((pp.ph_vlng is 0) + ((1.09516 0.399922)) + ((1.18411 -0.276583)))) + ((pp.ph_vlng is 0) + ((n.seg_onsetcoda is coda) + ((1.08438 0.911585)) + ((0.820251 1.1614))) + ((p.ph_ctype is s) ((1.00213 1.07576)) ((1.24814 1.58642))))) + ((n.seg_onsetcoda is coda) + ((p.ph_ctype is s) + ((n.ph_cplace is a) + ((0.727405 0.660093)) + ((p.ph_cplace2 is l) + ((0.742461 1.11747)) + ((pp.ph_vlng is 0) + ((0.734555 0.927789)) + ((0.73705 0.806348))))) + ((p.ph_cplace2 is r) + ((0.852441 0.239643)) + ((pp.ph_vlng is 0) + ((n.ph_vfront is 3) + ((0.822279 0.306066)) + ((p.ph_cplace2 is a) + ((0.853881 0.699284)) + ((0.871431 0.446849)))) + ((p.ph_ctype is n) + ((1.03132 0.965835)) + ((n.ph_vfront is 1) + ((0.873465 0.816313)) + ((0.917851 0.467496))))))) + ((p.ph_cplace2 is l) + ((p.ph_ctype is n) + ((0.642136 0.211476)) + ((n.ph_ctype is r) + ((0.652363 0.978806)) + ((p.ph_ctype is f) + ((0.633854 0.697683)) + ((0.665691 0.477371))))) + ((p.ph_ctype is f) + ((p.ph_cplace2 is a) + ((0.551109 0.143966)) + ((0.876272 -0.22467))) + ((p.ph_cplace2 is r) + ((pp.ph_vlng is 0) + ((0.717158 0.387737)) + ((0.704496 0.14666))) + ((pp.ph_vlng is s) + ((p.ph_ctype is s) + ((0.756359 0.404007)) + ((0.95238 0.722275))) + ((n.ph_ctype is l) + ((0.600341 0.275517)) + ((n.ph_ctype is f) + ((0.63293 0.300704)) + ((0.743196 0.509984)))))))))))) + ((p.ph_cplace2 is a) + ((p.ph_ctype is s) + ((ph_cplace2 is l) + ((n.ph_vfront is 1) + ((0.658511 -1.04505)) + ((0.764273 -0.579458))) + ((ph_ctype is f) + ((0.67381 -0.385443)) + ((ph_ctype is s) + ((0.669678 -0.387274)) + ((1.24196 0.0205493))))) + ((ph_ctype is f) + ((ph_cplace2 is a) + ((n.ph_vfront is 3) + ((0.727442 0.566241)) + ((0.727165 0.75547))) + ((n.ph_vfront is 1) + ((ph_cplace2 is l) + ((0.909459 -0.0993548)) + ((0.980587 0.321758))) + ((n.seg_onsetcoda is coda) + ((0.903312 0.625847)) + ((0.813008 0.375792))))) + ((ph_ctype is r) + ((ph_cplace2 is a) + ((1.28399 0.917389)) + ((0.843269 0.424056))) + ((ph_cplace2 is l) + ((ph_ctype is n) + ((n.ph_vfront is 1) + ((0.665766 -0.560041)) + ((0.688994 -0.1633))) + ((n.seg_onsetcoda is coda) + ((n.ph_vfront is 1) + ((0.612282 -0.212725)) + ((0.622185 0.0863764))) + ((0.799478 0.339492)))) + ((ph_ctype is s) + ((pp.ph_vlng is s) + ((p.ph_ctype is n) + ((n.ph_vfront is 3) + ((n.seg_onsetcoda is coda) + ((ph_cplace2 is a) + ((0.593878 0.0926664)) + ((0.597355 -0.0915215))) + ((0.559002 0.134849))) + ((0.80247 0.218785))) + ((1.43028 0.546898))) + ((ph_cplace2 is a) + ((0.443011 -0.381483)) + ((0.704263 0.0768767)))) + ((0.848131 0.435969))))))) + ((n.ph_ctype is f) + ((ph_ctype is s) ((0.565053 -0.295846)) ((1.07037 0.259748))) + ((ph_ctype is r) + ((ph_cplace2 is a) + ((n.ph_vfront is 3) + ((0.949098 0.360166)) + ((0.574453 0.066609))) + ((0.891948 0.717105))) + ((ph_cplace2 is a) + ((ph_ctype is s) + ((pp.ph_vlng is 0) + ((0.998088 0.854391)) + ((0.701013 0.508697))) + ((n.ph_vfront is 1) + ((lisp_mora is 1) + ((0.919257 0.855378)) + ((1.04349 1.02608))) + ((n.seg_onsetcoda is coda) + ((0.906812 0.977146)) + ((1.0171 1.22371))))) + ((ph_ctype is f) + ((ph_cplace2 is l) + ((n.seg_onsetcoda is coda) + ((n.ph_vfront is 1) + ((0.871274 0.435394)) + ((1.04888 0.673423))) + ((1.06361 0.865767))) + ((pos_in_syl < 0.1) + ((n.ph_vfront is 1) + ((1.19273 0.164819)) + ((0.989494 0.412502))) + ((0.957089 -0.0737841)))) + ((n.ph_vfront is 3) + ((ph_ctype is n) + ((0.940868 1.07394)) + ((lisp_mora is 2) + ((0.868656 0.728722)) + ((ph_cplace2 is l) + ((0.781457 0.821993)) + ((1.04734 0.988019))))) + ((ph_cplace2 is l) + ((ph_ctype is n) + ((0.951098 0.80061)) + ((lisp_mora is 2) + ((0.653205 0.478247)) + ((0.632344 0.169985)))) + ((lisp_mora is 2) + ((0.942891 1.12906)) + ((0.838455 0.830946))))))))))))) + ((pp.ph_vlng is 0) + ((lisp_mora is 2) + ((ph_ctype is n) + ((n.ph_cplace is a) ((0.992075 0.715216)) ((0.966096 0.45234))) + ((n.ph_cplace is b) + ((0.997309 0.462189)) + ((ph_ctype is s) + ((n.ph_ctype is f) + ((0.705022 -0.0571909)) + ((0.68043 0.408178))) + ((n.ph_cplace is l) + ((0.953455 0.163587)) + ((ph_cplace2 is r) + ((0.81628 -0.329822)) + ((n.ph_cplace is p) + ((0.558684 -0.351913)) + ((ph_ctype is f) + ((0.869936 0.0522303)) + ((0.837145 -0.127896))))))))) + ((n.ph_ctype is s) + ((n.ph_cplace is a) + ((ph_ctype is 0) ((0.666094 -0.561262)) ((0.67667 -0.90291))) + ((0.716715 -0.154598))) + ((n.ph_ctype is r) + ((0.849713 0.305567)) + ((n.ph_cplace is a) + ((n.ph_ctype is n) + ((0.810898 0.0721763)) + ((0.757718 -0.365141))) + ((n.ph_ctype is n) + ((0.644913 -0.0967719)) + ((0.831196 0.100217))))))) + ((ph_ctype is f) ((0.678479 -0.884737)) ((0.774502 -0.714391))))) + ((ph_ctype is 0) + ((pos_in_syl < 1.2) + ((n.ph_ctype is s) + ((0.998406 1.39843)) + ((n.ph_vfront is 1) + ((0.968515 2.57223)) + ((lisp_mora is 2) ((0.917282 2.32119)) ((1.09961 1.84692))))) + ((0.920013 0.866701))) + ((lisp_mora is 2) + ((pp.ph_vlng is 0) + ((ph_cplace2 is a) ((1.2236 2.06478)) ((1.26739 1.56763))) + ((1.00706 1.12254))) + ((ph_cplace2 is r) ((1.29876 0.73761)) ((1.15951 1.07969)))))) + ((lisp_end_of_phrase is 0) + ((n.ph_ctype is 0) + ((pos_in_syl < 0.3) + ((n.seg_onsetcoda is onset) + ((p.ph_ctype is n) + ((n.ph_vfront is 1) + ((0.568545 -0.372535)) + ((0.691604 -0.0313148))) + ((ph_ctype is f) + ((lisp_mora is 1) + ((ph_cplace2 is a) + ((0.594369 0.581908)) + ((n.ph_vfront is 1) + ((0.721584 0.130575)) + ((0.930026 0.396382)))) + ((1.11599 0.746493))) + ((ph_ctype is l) + ((n.ph_vfront is 1) + ((0.900054 0.261192)) + ((0.697786 -0.106809))) + ((p.ph_cplace2 is a) + ((ph_ctype is s) + ((R:SylStructure.parent.position_type is final) + ((0.562343 0.100754)) + ((0.671633 -0.13135))) + ((1.20928 0.372015))) + ((R:SylStructure.parent.position_type is single) + ((1.22288 0.626556)) + ((ph_ctype is r) + ((0.86283 0.040434)) + ((pp.ph_vlng is s) + ((0.441464 0.410568)) + ((lisp_mora is 1) + ((0.535682 0.30082)) + ((ph_ctype is s) + ((0.509292 0.278067)) + ((0.612567 -0.00251823))))))))))) + ((R:SylStructure.parent.position_type is final) + ((lisp_mora is 3) + ((p.ph_cplace2 is a) + ((0.886962 0.182227)) + ((ph_cplace2 is a) + ((ph_ctype is n) + ((0.585278 -0.182946)) + ((n.ph_vfront is 1) + ((ph_ctype is f) + ((0.643504 0.0106825)) + ((0.431145 0.241959))) + ((0.680088 -0.0184326)))) + ((n.ph_vfront is 1) + ((0.701176 -0.260645)) + ((ph_ctype is s) ((0.52602 0.102609)) ((0.752803 -0.186949)))))) + ((p.ph_ctype is r) + ((0.934638 -0.0194497)) + ((p.ph_vc is +) + ((ph_ctype is f) + ((ph_cplace2 is l) + ((lisp_mora is 1) + ((0.638637 -0.263461)) + ((n.ph_vfront is 1) + ((0.665793 -0.7841)) + ((0.669529 -0.508022)))) + ((n.ph_vfront is 1) + ((0.639215 -0.335894)) + ((0.507619 -0.521445)))) + ((lisp_mora is 2) + ((ph_ctype is s) + ((n.ph_vfront is 1) + ((ph_cplace2 is a) + ((pp.ph_vlng is 0) + ((0.56605 -0.290392)) + ((0.587672 -0.427569))) + ((0.600395 0.0798048))) + ((ph_cplace2 is r) + ((0.626045 -0.156842)) + ((0.604648 0.0259143)))) + ((ph_ctype is l) + ((0.815216 -0.185746)) + ((ph_ctype is r) + ((n.ph_vfront is 1) + ((0.640864 -0.444553)) + ((0.773282 -0.788709))) + ((n.ph_vfront is 1) + ((0.619612 -0.484726)) + ((0.789049 -0.322862)))))) + ((ph_ctype is n) + ((ph_cplace2 is a) + ((0.609116 -0.121808)) + ((0.631903 -0.277501))) + ((ph_ctype is s) + ((ph_cplace2 is a) + ((0.520252 -0.576212)) + ((pp.ph_vlng is 0) + ((0.536619 -0.399986)) + ((0.548853 -0.546965)))) + ((ph_cplace2 is a) + ((pp.ph_vlng is s) + ((0.571261 -0.549291)) + ((0.61215 -0.369827))) + ((0.701239 -0.0779188))))))) + ((p.ph_ctype is l) + ((lisp_mora is 1) + ((0.51591 -0.442291)) + ((0.751446 -0.011766))) + ((p.ph_cplace2 is r) + ((p.ph_ctype is f) + ((0.823907 0.0602389)) + ((0.609257 -0.608541))) + ((p.ph_ctype is s) + ((0.710088 -0.74423)) + ((lisp_mora is 1) + ((n.ph_vfront is 1) + ((p.ph_ctype is f) + ((0.434611 -0.519039)) + ((0.500458 -0.660443))) + ((ph_ctype is f) + ((0.416119 -0.526136)) + ((0.41308 -0.666634)))) + ((p.ph_ctype is f) + ((0.551416 -0.58939)) + ((0.49131 -0.343446)))))))))) + ((p.ph_ctype is s) + ((ph_ctype is f) + ((p.ph_cplace2 is a) + ((0.558559 -1.06672)) + ((0.546486 -0.503908))) + ((ph_cplace2 is r) + ((0.62139 -0.761093)) + ((R:SylStructure.parent.position_type is 0) + ((0.538951 -0.241701)) + ((1.09057 0.263472))))) + ((lisp_mora is 3) + ((R:SylStructure.parent.position_type is mid) + ((ph_cplace2 is a) + ((0.672133 0.230903)) + ((0.80338 0.0400124))) + ((1.69056 0.50114))) + ((ph_ctype is 0) + ((p.ph_vc is 0) + ((n.ph_vfront is 1) + ((0.501554 0.26615)) + ((0.416151 0.388289))) + ((lisp_mora is 1) + ((0.987786 0.206331)) + ((n.seg_onsetcoda is 0) + ((pp.ph_vlng is s) + ((3.63498 0.300449)) + ((p.ph_vc is +) + ((0.316186 -0.0912046)) + ((0.378855 -0.137722)))) + ((0.63434 -0.490483))))) + ((p.ph_ctype is n) + ((ph_cplace2 is r) + ((n.ph_vfront is 1) + ((0.620663 -0.502778)) + ((1.0622 -0.222376))) + ((R:SylStructure.parent.position_type is mid) + ((ph_cplace2 is a) + ((n.ph_vfront is 1) + ((0.599848 -0.462058)) + ((0.582839 -0.617057))) + ((0.754908 -0.661127))) + ((0.707766 -0.325685)))) + ((p.ph_cplace2 is r) + ((ph_ctype is s) + ((lisp_mora is 1) + ((0.485732 0.262402)) + ((0.639091 0.395967))) + ((0.75426 -0.415642))) + ((p.ph_ctype is f) + ((ph_ctype is s) + ((ph_cplace2 is r) + ((0.522713 -0.507001)) + ((0.516307 -0.413684))) + ((1.44597 -0.00853439))) + ((ph_ctype is f) + ((ph_cplace2 is a) + ((lisp_mora is 1) + ((0.659259 -0.034664)) + ((n.ph_vfront is 1) + ((0.664414 0.0984968)) + ((0.658419 0.382264)))) + ((lisp_mora is 2) + ((n.ph_vfront is 1) + ((ph_cplace2 is l) + ((0.693631 -0.643123)) + ((0.649306 -0.281858))) + ((0.83365 -0.135963))) + ((ph_cplace2 is l) + ((0.867115 0.0178028)) + ((0.724301 -0.31404))))) + ((p.ph_vc is 0) + ((1.53813 -0.682428)) + ((ph_cplace2 is a) + ((ph_ctype is n) + ((0.784693 -0.0930149)) + ((n.ph_vfront is 1) + ((ph_ctype is s) + ((lisp_mora is 1) + ((0.606571 -0.136641)) + ((pp.ph_vlng is 0) + ((0.500308 -0.257488)) + ((0.580499 -0.36123)))) + ((pp.ph_vlng is 0) + ((ph_ctype is l) + ((lisp_mora is 1) + ((0.616096 -0.341244)) + ((0.602307 -0.132246))) + ((0.591382 -0.46949))) + ((0.670605 -0.53436)))) + ((ph_ctype is l) + ((pp.ph_vlng is s) + ((0.91185 0.177441)) + ((0.720048 -0.0126887))) + ((p.ph_vc is +) + ((pp.ph_vlng is 0) + ((0.5792 -0.2432)) + ((0.525133 -0.365416))) + ((0.398956 -0.147817)))))) + ((ph_ctype is s) + ((pp.ph_vlng is s) + ((p.ph_vc is +) + ((n.ph_vfront is 1) + ((0.520408 -0.228262)) + ((0.611901 -0.437854))) + ((0.631179 -0.126642))) + ((ph_cplace2 is l) + ((0.45656 -0.246684)) + ((lisp_mora is 1) + ((0.557288 -0.0837172)) + ((n.ph_vfront is 1) + ((0.686151 -0.00979517)) + ((0.635011 0.193597)))))) + ((R:SylStructure.parent.position_type is mid) + ((ph_ctype is n) + ((p.ph_vc is +) + ((0.635443 -0.0443977)) + ((0.667539 -0.192734))) + ((pp.ph_vlng is s) + ((1.07378 0.0364854)) + ((0.906008 0.377596)))) + ((0.714999 -0.158161))))))))))))))) + ((pos_in_syl < 2) + ((p.ph_clng is l) + ((n.ph_vfront is 1) + ((p.ph_cplace2 is a) + ((0.700828 0.0274336)) + ((0.677255 -0.111315))) + ((p.ph_ctype is s) + ((0.618852 -0.193819)) + ((0.724311 -0.329287)))) + ((pp.ph_vlng is s) + ((p.ph_ctype is r) + ((p.ph_cplace2 is a) + ((0.937351 0.317126)) + ((0.849952 -0.139897))) + ((lisp_mora is 1) + ((p.ph_ctype is f) + ((n.ph_vfront is 1) + ((R:SylStructure.parent.position_type is mid) + ((0.76535 0.790169)) + ((1.03739 0.558797))) + ((0.90394 0.524563))) + ((R:SylStructure.parent.position_type is final) + ((n.ph_vfront is 1) + ((0.864259 0.530013)) + ((p.ph_ctype is n) + ((0.925474 0.385941)) + ((0.839374 0.0860296)))) + ((p.ph_cplace2 is r) + ((0.842425 0.331699)) + ((p.ph_ctype is l) + ((0.846849 0.421375)) + ((p.ph_ctype is n) + ((0.794562 0.498626)) + ((p.ph_cplace2 is a) + ((0.664718 0.548134)) + ((0.866985 0.820401)))))))) + ((p.ph_ctype is n) + ((0.720299 -0.150627)) + ((ph_ctype is 0) + ((p.ph_cplace2 is l) + ((0.801496 0.738192)) + ((p.ph_cplace2 is a) + ((0.765104 0.419409)) + ((0.705522 0.243006)))) + ((1.22977 0.000188928)))))) + ((p.ph_vc is +) + ((lisp_mora is 3) + ((n.ph_vfront is 1) + ((0.93838 0.197776)) + ((0.701688 -0.0627497))) + ((ph_ctype is n) ((0.881802 0.595966)) ((0.708916 0.403764)))) + ((p.ph_ctype is s) + ((R:SylStructure.parent.position_type is final) + ((p.ph_cplace2 is a) + ((0.71706 -0.0729048)) + ((0.793548 0.133463))) + ((R:SylStructure.parent.position_type is mid) + ((0.680685 0.145939)) + ((0.60824 0.307953)))) + ((R:SylStructure.parent.position_type is single) + ((0.914759 -0.423949)) + ((p.ph_cplace2 is r) + ((0.81343 -0.284817)) + ((pp.ph_vlng is 0) + ((p.ph_cplace2 is a) + ((0.671806 -0.0742459)) + ((0.703139 0.137603))) + ((0.794418 0.203018))))))))) + ((p.ph_vc is +) ((0.93074 0.182872)) ((0.181943 -2.7517))))) + ((lisp_mora is 1) + ((p.ph_clng is l) + ((n.ph_ctype is r) + ((R:SylStructure.parent.position_type is final) + ((0.66389 -0.180732)) + ((0.599906 -0.595642))) + ((R:SylStructure.parent.position_type is mid) + ((p.ph_ctype is s) + ((n.ph_cplace is l) + ((0.533117 -0.968386)) + ((n.ph_ctype is l) + ((0.523188 -0.989232)) + ((0.418059 -0.825256)))) + ((n.ph_ctype is f) + ((0.530341 -0.816161)) + ((0.609714 -0.468383)))) + ((p.ph_ctype is f) + ((n.ph_ctype is s) ((0.255965 -1.16391)) ((0.281458 -1.08328))) + ((p.ph_ctype is s) + ((n.ph_ctype is s) + ((0.309995 -1.09552)) + ((0.373794 -0.968148))) + ((n.ph_ctype is s) + ((0.55278 -0.916649)) + ((0.386578 -0.73261))))))) + ((pp.ph_vlng is s) + ((n.ph_cplace is v) + ((R:SylStructure.parent.position_type is mid) + ((0.66849 -0.385247)) + ((0.561963 -0.639861))) + ((p.ph_ctype is r) + ((R:SylStructure.parent.position_type is single) + ((0.431664 -0.72181)) + ((n.ph_cplace is a) + ((0.563895 -0.386133)) + ((0.773353 -0.214832)))) + ((n.ph_ctype is r) + ((n.ph_cplace is a) + ((0.80164 0.449338)) + ((R:SylStructure.parent.position_type is mid) + ((0.608827 -0.427038)) + ((0.713475 -0.129587)))) + ((R:SylStructure.parent.position_type is final) + ((p.ph_ctype is n) + ((0.675759 -0.0711996)) + ((n.ph_cplace is a) + ((p.ph_ctype is s) + ((0.536365 -0.150662)) + ((0.547778 -0.288462))) + ((0.600451 -0.517365)))) + ((p.ph_ctype is l) + ((n.ph_ctype is n) + ((0.7461 0.146578)) + ((n.ph_ctype is s) + ((0.677136 -0.0470136)) + ((0.604616 -0.224768)))) + ((p.ph_cplace2 is l) + ((p.ph_ctype is n) + ((0.667951 -0.494344)) + ((0.667624 -0.0213202))) + ((p.ph_ctype is n) + ((0.86803 0.12581)) + ((n.ph_ctype is l) + ((0.715877 -0.0238713)) + ((p.ph_cplace2 is a) + ((n.ph_ctype is s) + ((0.642383 -0.163298)) + ((0.725958 -0.441871))) + ((n.ph_cplace is a) + ((0.796113 -0.368086)) + ((0.551508 0.0142687)))))))))))) + ((pos_in_syl < 0.3) + ((1.00356 0.0241227)) + ((n.ph_ctype is r) + ((n.ph_cplace is a) + ((0.7926 -0.0106655)) + ((R:SylStructure.parent.position_type is mid) + ((0.564627 -0.715817)) + ((0.713114 -0.326565)))) + ((p.ph_ctype is r) + ((R:SylStructure.parent.position_type is single) + ((0.342482 -1.24585)) + ((0.591421 -0.842725))) + ((p.ph_cplace2 is a) + ((n.ph_cplace is v) + ((0.37148 -0.997771)) + ((pp.ph_vlng is 0) + ((R:SylStructure.parent.position_type is mid) + ((p.ph_ctype is f) + ((0.566184 -0.883607)) + ((n.ph_cplace is b) + ((0.486445 -0.860645)) + ((0.519562 -0.746008)))) + ((n.ph_cplace is b) + ((0.537189 -0.651737)) + ((n.ph_ctype is s) + ((0.297647 -1.00349)) + ((n.ph_cplace is a) + ((n.ph_ctype is f) + ((0.307224 -1.01861)) + ((0.413763 -0.777775))) + ((0.452027 -0.803768)))))) + ((0.566495 -0.631796)))) + ((n.ph_cplace is a) + ((n.ph_ctype is s) + ((0.475403 -0.761056)) + ((p.ph_ctype is f) + ((0.694206 -0.439748)) + ((R:SylStructure.parent.position_type is mid) + ((n.ph_ctype is l) + ((0.513707 -0.725154)) + ((0.511479 -0.623081))) + ((0.721193 -0.488443))))) + ((p.ph_cplace2 is r) + ((n.ph_cplace is l) + ((0.547292 -0.739571)) + ((0.506041 -0.875932))) + ((R:SylStructure.parent.position_type is final) + ((n.ph_ctype is s) + ((0.469445 -0.722393)) + ((0.608242 -0.332834))) + ((0.674525 -0.325557))))))))))) + ((p.ph_vc is 0) + ((n.ph_ctype is f) + ((0.490377 0.14904)) + ((n.ph_cplace is a) + ((n.ph_ctype is n) ((0.610979 0.235261)) ((0.46348 0.372425))) + ((0.541258 0.237457)))) + ((n.ph_ctype is s) + ((ph_ctype is s) + ((n.seg_onsetcoda is coda) + ((0.798423 2.41817)) + ((n.ph_cplace is v) + ((0.445275 -0.171309)) + ((0.796616 0.315213)))) + ((ph_ctype is n) + ((lisp_mora is 2) + ((pp.ph_vlng is s) + ((n.ph_cplace is v) + ((0.94266 -0.290003)) + ((0.706687 -0.862965))) + ((n.ph_cplace is v) + ((R:SylStructure.parent.position_type is mid) + ((0.77751 -0.167354)) + ((0.794132 -0.0397283))) + ((n.ph_cplace is a) + ((R:SylStructure.parent.position_type is final) + ((0.717463 -0.395321)) + ((0.859088 -0.10108))) + ((R:SylStructure.parent.position_type is final) + ((0.676595 -0.214784)) + ((0.976023 -0.662831)))))) + ((R:SylStructure.parent.position_type is final) + ((0.683003 -0.641977)) + ((0.461195 -0.846843)))) + ((ph_cplace2 is a) + ((n.ph_cplace is v) + ((0.782669 -0.332275)) + ((pos_in_syl < 2) + ((ph_ctype is f) + ((0.567608 -0.900861)) + ((0.941499 -0.732118))) + ((0.497955 -1.24758)))) + ((p.ph_clng is l) + ((p.ph_ctype is n) + ((0.377335 -0.827169)) + ((0.43858 -0.961623))) + ((pos_in_syl < 0.3) + ((0.694012 -0.153702)) + ((R:SylStructure.parent.position_type is final) + ((pp.ph_vlng is s) + ((p.ph_ctype is n) + ((0.393129 -0.498547)) + ((p.ph_cplace2 is l) + ((0.379415 -0.591128)) + ((p.ph_ctype is f) + ((0.519226 -0.826579)) + ((0.550936 -0.619726))))) + ((p.ph_ctype is f) + ((0.344598 -0.974665)) + ((0.467213 -0.760801)))) + ((p.ph_ctype is r) + ((0.557746 -0.788657)) + ((ph_ctype is 0) + ((pp.ph_vlng is s) + ((p.ph_ctype is f) + ((p.ph_cplace2 is a) + ((0.657189 -0.461298)) + ((0.804463 -0.0564339))) + ((p.ph_cplace2 is a) + ((n.ph_cplace is a) + ((0.516349 -0.487186)) + ((0.652126 -0.24901))) + ((0.516932 -0.599442)))) + ((n.ph_cplace is v) + ((p.ph_ctype is s) + ((0.45193 -0.584097)) + ((0.526092 -0.839978))) + ((n.seg_onsetcoda is coda) + ((0.828519 -0.366318)) + ((0.501974 -0.642094))))) + ((0.998996 -0.207612)))))))))) + ((ph_cplace2 is a) + ((n.ph_ctype is f) + ((n.ph_cplace is a) + ((ph_ctype is n) + ((lisp_mora is 2) + ((R:SylStructure.parent.position_type is final) + ((0.845547 -0.490197)) + ((0.868322 -0.86479))) + ((0.583089 -1.32664))) + ((0.659799 -0.166974))) + ((pp.ph_vlng is s) + ((pos_in_syl < 1.2) + ((0.545178 -0.0838595)) + ((0.745166 -0.343245))) + ((lisp_mora is 2) + ((ph_ctype is s) + ((0.553365 0.210636)) + ((0.809561 0.399364))) + ((0.696307 -0.116787))))) + ((ph_ctype is l) + ((0.990092 -0.339027)) + ((lisp_mora is 3) + ((n.ph_cplace is a) + ((1.07935 -0.12981)) + ((0.882304 0.0823764))) + ((pp.ph_vlng is 0) + ((n.ph_cplace is l) + ((ph_ctype is s) ((0.646903 1.15249)) ((1.10717 0.496918))) + ((1.01146 0.434096))) + ((n.ph_ctype is n) + ((0.887008 -0.0745151)) + ((0.812587 0.169537))))))) + ((n.ph_ctype is f) + ((n.ph_cplace is a) + ((pp.ph_vlng is 0) + ((p.ph_cplace2 is l) + ((0.56388 -0.836105)) + ((p.ph_cplace2 is r) + ((0.681996 -0.798265)) + ((R:SylStructure.parent.position_type is single) + ((0.722674 -0.240226)) + ((n.seg_onsetcoda is coda) + ((pos_in_syl < 1.2) + ((0.532268 -0.482672)) + ((0.573514 -0.810443))) + ((0.486268 -0.535983)))))) + ((p.ph_clng is s) + ((p.ph_cplace2 is r) + ((0.840044 -0.137973)) + ((R:SylStructure.parent.position_type is mid) + ((p.ph_ctype is s) + ((0.676392 -0.317128)) + ((p.ph_cplace2 is a) + ((p.ph_ctype is r) + ((0.717006 -0.533094)) + ((p.ph_ctype is f) + ((0.742985 -0.454561)) + ((0.7368 -0.27739)))) + ((0.533025 -0.571322)))) + ((0.619673 -0.514244)))) + ((p.ph_cplace2 is a) + ((0.497439 -0.806519)) + ((0.476752 -0.693539))))) + ((n.seg_onsetcoda is coda) + ((0.95952 -0.135029)) + ((p.ph_cplace2 is a) + ((0.598809 -0.486134)) + ((0.495617 -0.20274))))) + ((R:SylStructure.parent.position_type is mid) + ((pp.ph_vlng is s) + ((n.ph_cplace is a) + ((p.ph_ctype is n) + ((p.ph_clng is l) + ((0.521479 -0.175804)) + ((0.682339 -0.0022929))) + ((lisp_mora is 2) + ((n.seg_onsetcoda is coda) + ((0.702162 0.465337)) + ((p.ph_cplace2 is r) + ((0.730895 -0.0114749)) + ((0.716493 0.313177)))) + ((0.747677 0.00177269)))) + ((p.ph_ctype is f) + ((0.922175 0.203941)) + ((n.ph_cplace is l) + ((0.687174 -0.0363329)) + ((0.797603 -0.344224))))) + ((n.ph_ctype is r) + ((1.02108 0.282636)) + ((p.ph_ctype is r) + ((0.54182 -0.5994)) + ((p.ph_cplace2 is a) + ((p.ph_ctype is f) + ((0.52293 -0.613554)) + ((0.61755 -0.265341))) + ((p.ph_ctype is f) + ((0.861973 0.0372255)) + ((n.ph_ctype is l) + ((0.730478 -0.349741)) + ((0.757481 -0.145898)))))))) + ((p.ph_clng is s) + ((lisp_mora is 3) + ((p.ph_ctype is s) + ((pp.ph_vlng is 0) + ((0.517808 -0.479629)) + ((0.534339 -0.339318))) + ((p.ph_cplace2 is l) + ((0.603803 -0.640758)) + ((pp.ph_vlng is s) + ((0.712351 -0.330568)) + ((0.568915 -0.560679))))) + ((p.ph_cplace2 is r) + ((p.ph_ctype is r) + ((0.476332 -0.66412)) + ((R:SylStructure.parent.position_type is single) + ((0.555318 -0.445519)) + ((p.ph_ctype is f) + ((0.692326 -0.584272)) + ((0.649426 -0.235355))))) + ((pp.ph_vlng is s) + ((p.ph_ctype is f) + ((p.ph_cplace2 is a) + ((0.694916 -0.403756)) + ((0.648391 -0.0108221))) + ((n.seg_onsetcoda is coda) + ((p.ph_ctype is l) + ((0.634274 0.189092)) + ((p.ph_cplace2 is a) + ((0.622436 -0.0801574)) + ((0.659552 0.0564502)))) + ((0.613115 -0.274092)))) + ((R:SylStructure.parent.position_type is single) + ((0.890316 0.100146)) + ((0.555715 -0.393896)))))) + ((lisp_mora is 3) + ((0.470997 -0.778816)) + ((pos_in_syl < 1.2) + ((R:SylStructure.parent.position_type is single) + ((0.786515 -0.460109)) + ((pp.ph_vlng is s) + ((p.ph_ctype is n) + ((0.580053 -0.392255)) + ((0.506821 -0.529974))) + ((R:SylStructure.parent.position_type is 0) + ((0.297801 -0.379085)) + ((0.845351 -0.117591))))) + ((R:SylStructure.parent.position_type is final) + ((0.58491 -0.464601)) + ((0.637256 -0.652212))))))))))))) + ((n.ph_vfront is 0) + ((lisp_mora is 1) + ((R:SylStructure.parent.position_type is final) + ((p.ph_clng is l) + ((p.ph_ctype is l) + ((0.581768 -1.19027)) + ((p.ph_ctype is f) ((0.751442 -0.985889)) ((0.81301 -0.645655)))) + ((p.ph_ctype is s) + ((pp.ph_vlng is 0) + ((0.706418 -0.704896)) + ((0.971941 -0.206601))) + ((p.ph_ctype is f) + ((0.910496 -0.223875)) + ((0.955915 -0.378582))))) + ((n.ph_ctype is s) + ((0.720567 0.000321504)) + ((n.ph_ctype is f) + ((0.847069 0.243405)) + ((pp.ph_vlng is 0) ((0.698901 0.345199)) ((0.912286 0.674266)))))) + ((n.ph_ctype is n) + ((p.ph_ctype is n) + ((0.702047 0.319904)) + ((lisp_mora is 2) + ((R:SylStructure.parent.position_type is final) + ((0.865349 0.460549)) + ((1.08463 1.00808))) + ((pp.ph_vlng is 0) ((0.922977 1.0134)) ((1.12538 1.26623))))) + ((ph_ctype is f) + ((0.996002 0.871986)) + ((ph_ctype is s) + ((ph_cplace2 is a) ((0.824457 1.24974)) ((0.543244 0.450197))) + ((lisp_mora is 3) + ((ph_cplace2 is a) + ((0.777385 -0.343544)) + ((0.956584 0.337526))) + ((n.ph_ctype is s) + ((p.ph_cplace2 is a) + ((0.594385 -0.37777)) + ((0.940047 -0.0249902))) + ((n.ph_ctype is f) + ((p.ph_cplace2 is a) + ((pp.ph_vlng is s) + ((0.736129 0.0641271)) + ((0.653832 -0.371453))) + ((pos_in_syl < 1.2) + ((0.847296 0.149207)) + ((1.13276 0.4653)))) + ((pos_in_syl < 1.2) + ((n.ph_ctype is l) + ((0.842123 0.474713)) + ((p.ph_ctype is s) + ((1.06371 0.634879)) + ((1.10028 1.26986)))) + ((1.03168 0.11122)))))))))) + ((lisp_end_of_phrase is 1) + ((p.ph_cplace2 is a) + ((p.ph_ctype is f) + ((lisp_mora is 1) + ((n.ph_vfront is 1) ((0.858409 0.569369)) ((0.600806 0.297108))) + ((0.966558 1.03672))) + ((lisp_mora is 1) + ((ph_cplace2 is a) ((0.75622 0.996286)) ((0.898703 1.26713))) + ((1.09981 1.37918)))) + ((ph_ctype is s) + ((n.ph_vfront is 1) + ((ph_cplace2 is r) ((1.15655 1.42386)) ((1.16713 1.80448))) + ((1.08963 1.38385))) + ((ph_ctype is r) + ((0.807953 0.43703)) + ((lisp_mora is 2) + ((pp.ph_vlng is 0) ((0.853256 0.60538)) ((1.17451 1.00819))) + ((ph_ctype is n) + ((1.11399 0.823994)) + ((n.ph_vfront is 1) + ((ph_ctype is l) + ((0.90164 1.2336)) + ((p.ph_ctype is s) ((0.734892 1.24618)) ((1.02358 1.614)))) + ((0.888684 1.27728)))))))) + ((ph_ctype is 0) + ((p.ph_cplace2 is a) ((0.718485 1.10805)) ((0.932929 1.2986))) + ((n.seg_onsetcoda is coda) + ((p.ph_cplace2 is a) + ((lisp_mora is 1) ((0.590999 0.228387)) ((0.699974 0.413645))) + ((ph_cplace2 is l) + ((ph_ctype is n) ((0.700411 0.449788)) ((0.564384 0.214491))) + ((lisp_mora is 2) + ((ph_ctype is f) + ((0.698342 0.453959)) + ((pp.ph_vlng is 0) + ((0.827512 0.514166)) + ((0.801421 0.748086)))) + ((ph_ctype is s) + ((0.782835 0.90533)) + ((ph_ctype is l) ((0.886991 0.499058)) ((0.55558 0.703079))))))) + ((pp.ph_vlng is s) ((0.806638 1.23657)) ((0.748911 0.750108))))))))) +) +)) + +(define (Duration_Finnish utt) + "(Duration_Finnish) +Lengthens the final phone after the duration cart tree." + (if hy_debug (format stderr "<PHONE DURATIONS>\n")) + (let ((end 0)) + (if hy_debug (format stderr "Phone\tDur\tEnd")) + (mapcar + (lambda (s) + (item.get_utt s) + (let ((dur (wagon_predict s duration_cart_tree)) + (di (assoc_string (item.name s) hy_fi_mv2::phone_durs))) + ;; (nth 1 di) mean + ;; (nth 2 di) dev + (set! dur (+ (nth 1 di) (* dur (nth 2 di)))) + + ;; lengthening of the final phoneme + ;; (we're not perfectly happy of duration in phrase final position) + (if (and (item.next s) + (string-equal (item.name (item.next s)) "#")) + (begin + (set! dur (* dur 1.0)))) ;; 1.3 + + + + (set! dur (* (Parameter.get 'Duration_Stretch) dur)) + (if (> 0.03 dur) + (begin + (set! dur 0.03) + (if hy_debug + (format stderr + " %s is shorter than 30 ms! Lengthening it!\n" + (item.name s)))) + (if hy_debug (format stderr "\n"))) + + ;; too short final phoneme can cause a crash... + ;; an awfully terrible bug fix... + (if (not (item.next s)) + (begin + (set! dur 0.2))) + + (set! end (+ dur end)) + + (if hy_debug (format stderr "%s\t%s\t%s " (item.name s) dur end)) + (if (and hy_debug (not (item.next s))) (format stderr "\n")) + (item.set_feat s "target_dur" dur) + (item.set_function s "start" "unisyn_start") + (item.set_feat s "end" end) + (item.set_feat s "dur" dur) + );; end of let + ) ;; end of lambda + (utt.relation.items utt 'Segment)) ;; end of mapcar + utt)) + + +(define (mora aanne) + "(mora PHONE) +Counts the number of morae in the syllable. +Used by the duration model." +;; if syllable ends in a long C, is it counted as 1 (as it should be) +;; or as 2 (as it probably is)???? + (let ((coda (item.feat aanne 'R:SylStructure.parent.syl_codasize)) + (onset (item.feat aanne 'R:SylStructure.parent.syl_onsetsize)) + (head (if (item.parent (item.relation aanne 'SylStructure)) + (item.relation (item.daughter1 (item.parent (item.relation aanne 'SylStructure))) 'Segment) + nil)) + (mora 0)) + (while (> onset 0) + (set! onset (- onset 1)) + (set! head (item.next head))) + (while (> coda 0) + (if (string-matches (item.name head) "^[abdefghijklmnoprstuvy@7NT]:$" ) + + (set! mora (+ mora 2)) + (set! mora (+ mora 1))) + (set! coda (- coda 1)) + (set! head (item.next head))) + (if (and head + (string-matches (item.name head) "^[abdefghijklmnoprstuvy@7NT]:$" ) + (string-matches (item.name head) "^[bdfghjklmnprstvNT]:?$" )) + (set! mora (+ mora 1))) +;; (print mora) + mora)) + + +(define (end_of_phrase phone) + "(end_of_phrase PHONE) +Used by the duration tree to detect phrase boundary. +Returns either 1 (last syllable), 2 (penultimate syllable of the phrase) +or 0 (other). Somehow I'm sure that there are easier and faster +ways to do this..." + (cond + ((not (item.relation phone 'SylStructure)) + 0) + ((string-equal "#" (item.feat phone "R:SylStructure.parent.daughtern.R:Segment.n.name")) +;; (format stderr "1: %s\n" (item.name phone)) + 1) + + ((string-equal "#" (item.feat phone "R:SylStructure.parent.n.daughtern.R:Segment.n.name")) +;; (format stderr "2: %s\n" (item.name phone)) + 2) + (t + 0))) + + +(provide 'finnish_duration + +) + + |