summaryrefslogtreecommitdiff
path: root/lib/voices/finnish/suo_fi_lj_diphone/README.lj
blob: ac2ba01a390b89452b2dab8affd7f28e3dd90d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
Copyright (c) 2000-2003 Yleisen kielitieen laitos, Helsingin yliopisto, ja
                        Vieraiden kielten laitos, Joensuun yliopisto

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.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Tekij�t: Nicholas Volk (nvolk@ling.helsinki.fi)
         Martti Vainio
         Stefan Werner (stefan.werner@joensuu.fi)


2004-10-22: Festival on ohjelman kirjoittamisen ja julkaisun v�lill�
            ehtinyt versiosta 1.4.3 versioon 1.96. Pit�isi toimia
            my�s uusissa versiossa. En ole testannut. (NV)

FESTIVALIN SUOMENKIELISTEN SUOPUHE-��NTEN K�YTT�OHJE

MANUAL FOR FINNISH FESTIVAL VOICES (in Finnish)

Yleisen kielitieteen laitos, Helsingin Yliopisto

Nicholas Volk, others


1. JOHDANTO

T�ss� paperissa esitell��n Festival-puhesynteesij�rjestelm�n,
<http://www.cstr.ed.ac.uk/projects/festival>, p��lle
Suopuhe-projektissa rakennetut suomenkieliset ��net.
Ty� tehtiin Helsingin yliopiston yleiisen kielitieteen laitoksella
ja Joensuun yliopiston vieraiden kielten laitoksella.
Tavallaan t�m� paperi siis laajentaa Festivalin oman dokumentaation
(<http://www.cstr.ed.ac.uk/projects/festival/manual>) kattamaan
my�s suomenkieliset ��net. Kun nyt kirjoitan t�t� omalla ajallani,
niin mit��n kauhean h��vi� dokumentaatiota on turha odottaa

Suomenkielisen ��nen kehitys aloitettin kev�t-kes�ll� 2000.
T�ll�in Festivalista oli k�yt�ss� versio 1.4.1. Nyt
kev�ttalvella 2003 on Festivalista olemassa versio 1.4.3.
Suomenkielinen Festival-laajennus tukee ainakin t�t� uusinta
versiota, uskoaksemme my�s aikaisempia versioita ainakin
versioon 1.4.1 asti. Suomenkielist� ��nt� tehdess� k�ytettiin omien
kehitysty�kalujen lis�ksi  uusien Festival-��nien tekemiseen tarkoitettua'
Festvox-ty�kalupakettia
<http://www.festvox.org>, k�yt�nn�ss� paketin versiota 1.2 - 1.6.

Suomenkielisest� laajennuksesta  julkaistiin ensimm�inen "vakaa" 
versio 5.2.2003 ja  siihen ensimm�inen bugikorjaus heti seuraavana p�iv�n�.
Ohjelman lopullista lisenssi� ei ole viel� t�t� kirjoitettaessa  p��tetty,
mutta lisenssin pit�isi ratketa viel� t�m�n kuun aikana. Joku
open source -lisenssi sen tulisi kuitenkin olla.

Suomenkieliset ��nitietokannat ja ohjelmat l�ytyv�t
Helsingin yliopiston yleisen kielitieteen laitoksen sivulta
(<http://www.ling.helsinki.fi/suopuhe/>).
Toistaiseksi projektin tekeleit� jaetaan vain projektin osapuolille ja 
yhteisty�yliopistoille.

Lis�ksi projektin yhteydess� valmistettiin erillinen tekstin lavennin
(<http://www-ling.helsinki.fi/suopuhe/lavennin/>), jonka tuottamaa 
XML-muotoista teksti� suomenkielinen j�rjestelm� ymm�rt��.


	Helsingiss� 23.5.2003

				Tekij�t

2. TY�NJAOSTA

Ensimm�inen suomea puhunut versio syntetisaattoristamme taisi olla kokonaan
Martti Vainion (MV) k�sialaa. T�m�n rungon p��lle rakennetut modulit, kuten
tavutus, tauotus ja alkukahdennus, ovat kaikkine virheineen p��s��nt�isesti
Nicholas Volkin (NV) k�sialaa. Grafeemi-foneemio -konversios��nn�t
perustuivat MV:n aikaisemmin tekemm�n ty�h�n, jotka NV jatkoi projektin 
yhteydess� edelleen. ��nnekestomalleissa k�ytettiin ensin MV:n aiemmin
toisessa yhteydess� laskemia keskiarvokestostoja (Ks. MV:n v�it�skirja).
Pian t�m�n j�lkeen Jarmo V�likangas ja MV rakensivat ensimm�iset CART-pohjaiset
��nnekestomallit Festvoxin ty�kalujen avulla (VIITE), joita k�ytettiin
suurimman osan projektin ajasta. Lopullinen versio on Nicholas Volkin 
Festoxilla rakentamat CART-puut, joissa huomioitiin erityisesti suomen kieless�
lingvististen teorioiden mukaan olevia merkitsevi� piirteit�, kuten
moraa. Lis�tyt lingvistiset piirteet perustuivat NV:n ja MV:n
intuitiohin. Festivalin Scheme-tulkin ja lingvistisen datan yhdist�minen
oli tietyin osin kivulaista, eik� esim. alkukahdennusta saatu
kunnolla mukaan kestomalliin, vaan se tehd��n tavallaan kestomallista
huolimatta.

Kestomallin rakentamisessa k�ytettiin MV:n aikaisemmin 
(jossain aiemmassa projektissa(?)) nauhoittamaa n. 700 lauseen puhetietokantaa.
Kaikki intonaatiomallit, mukaan lukien valituksi tullut Fujisakin malli,
olivat MV:n kirjoittamia, NV tosin on muokannut niit� ja
intonaatiobugit ovat yleens� h�nen syyt��n :)
T�m� manuaali ja virheet koodissa ovat kaikki todenn�k�isesti
Nicholas Volkin kirjoittamia.

Difonisanalistan laadinta sek� difonilauseiden ��nitys olivat Stefan
Wernerin vastuulla.

3. MODULIT

Syntesoinnin eri osavaiheet on jaettu moduleihin. Kukin moduli
huolehtii omasta kokonaisuudestaan ja moduleita on suhteellisen
helppo korvata kesken��n. Festivalin tiedostot festival/lib/synthesis.scm
m��ritt�� tavallisen puhunnokset-rakenteen seuraavasti:

(defUttType Text
  (Initialize utt)
  (Text utt)
  (Token_POS utt)
  (Token utt)
  (POS utt)
  (Phrasify utt)
  (Word utt)
  (Pauses utt)
  (Intonation utt)
  (PostLex utt)
  (Duration utt)
  (Int_Targets utt)
  (Wave_Synth utt)
  )

Festival ei kuitenkaan ole niin kieliriippumaton kuin milt� se n�ytt��,
esimerkiksi tekstin lavennus tehd��n tyypillisesti Token-modulissa
ennen POS-modulia. Suomessa ei kuitenkaan voida laventaa oikein, ennen kuin 
morfologinen tieto on ker�tty:

Initialize
----------

Luo Utterance-olion. Ei muutettu. (Alkuper�ist� C++-koodia.)

Text
----

Festivalin omaa, kieliriippuvaista C++-koodia, jota ei kivutta voi kirjoittaa
uudelleen Schemess�. Tekee alkuper�isest� merkkijonosta Token-relaation.
Sananloppuiset pisteet k�sitell��n (j�rjestysluvuissa ja tietyiss�
lyhenteiss� v��rin) t��ll�, eli poistetaan ja laitetaan
tilalle sopiva tauon ilmaiseva feature (mik�-sen-nimi-nyt-olikaan).
Kieliriippuvainen koodi aiheuttaa ongelmia j�rjestyslukujen ja pisteeseen
p��ttyvien lyhenteiden tunnistuksen kanssa.

Token_Pos
---------

Englannin kielt� varten rakennettu moduli, jota k�sitt��kseni
mik��n muu kieli ei koskaan k�yt�. Asettaa token_pos-featuren p��lle
kullekin tokenille.

Token
-----

POS
---

Phrasify
--------

Word
----


15 miehen 15 soitti 15. tammikuuta klo 15.15 puhelimella numeroon 15 15 15.

Word-modulissa tavutetaan sana ja m��ritell��n eri tavujen painot.
Suomen sanat taipuvat liikaa, jotta voitaisiin k�ytt�� kiinte��
sanastoa, mutta toisaalta suomen kirjoituksen ja puheen v�linen
suhde on selke� ja sanapaino m��r�ytyy ensimm�iselle tavulle,
t�m� ei ole suuri ongelma. Sanalistojen avulla tehd��n
ero sis�lt�- ja merkityssanojen v�lille. Yleisimm�t sis�lt�sanat on
poimittu morfologisen perustein ja listattu, jotta osattaisiin olla
laittamatta niille lausepainoa.

Tavutus on totetutettu LTS-s��nt�jen avulla (vrt. espanjankielinen ��ni).
S��nt�jen avulla "v��rennet��n" Festivalin tukema Lisp-lista-muotoinen
sanakirjamerkint�. Ensimm�isen tavun p��painon (2) lis�ksi sanoille merkit��n
my�s mahdollinen sivupaino (1) ja  painottomat tavut (0):

  ("takaraivo" "content" (((t a) 2) ((k a) 0) ((r a i) 1) ((v o) 0)))
  ("mittari" "content" (((m i) 2) ((t: a) 0) ((r i) 0)))
  ("mato" "content" (((m a) 2) ((t o) 0)))
  ("matto" "content" (((m a) 2) ((t: o) 0)))


Tarkempi m��ritys sanaston merkinn�ille l�ytyy Festivalin dokumentaatiosta.
Kannattaa kuitenkin huomatata, ett� kirjoitetun ja puhutun kielen tavutus
ei mene aivan yksi yhteen: kaksi samaa kirjainta vastaa tavallisesti
yht� pitk�� ��nnett�, esim. �skeisen mittari-sanan t:-kirjaimet realistuvat
puheessa yhten� pitk�n� t-��nteen�. Festivalissa ei ��nteit� voi
kuvata ambisyllaabisina eli kahteen tavuun kuuluvina, joten olemme
k�ytt�neet j�lkimm�ist� tavua ��nteen paikkana. T�ll�in
lyhyet ja pitk�t ��nteet k�ytt�ytyv�t samalla tavalla (vrt. mato ~ matto).
T�m� tosin monimutkaistaa ��nnekestomallissa k�ytettyjen morien
laskentaa. Todettaakoon my�s, ettei ��nnekestomalli hy�dynt�nyt
sivupainotietoa, tosin t�t� tietoa ei onnistuttu my�sk��n erist�m��n
parhaalla mahdollisella tavalla opetusta varten.

Pauses
------

Intonation
----------

Post_Lex
--------

Duration
--------

Oma kestomoduli Duration_Finnish. Periaatteessa ��nnekestot haetaan
tavalliseen tapaan CART-puusta. Lis�ksi moduli huolehtii, ett�
��nteiden tietty minimipituus s�ilyy (nyt 30ms) ja venytt��
viimeist� ��nnett�. (Viimeinen ��nne sis�lt�� segmentointiteknisist�
syist� hiljaista loppuaspiraatiota ja lis�ksi kestomalli ei v�ltt�m�tt�
venyt� ��nnett� itsekseen tarpeeksi.)


Int_Targets
-----------

Wave_Synth
----------

Signaalin generointi ker�ttyjen tietojen perusteella. Festivalin omaa
C++-koodia.

4. MARK-UP

Suomenkielisi� ��ni� varten kehitettiin oma XML-moodi, nimelt��n Suopuhe.

5. ��NET

Kaksi ��nt�, mies��ni hy_fi_mv_diphone ja nais��ni suo_fi_lj_diphone.
��nten lisenssitilanteesta en ole tietoinen.

6. TEHOKKUUS

Testaamatta.

7. TIEDOSTOT

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/COPYING

Lisenssi, jahka p��tetty...

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_duration.scm

Suomen kielen ��nnekestomalli. Laskee CART-puun avulla
��nteiden kestot. Lis�ksi taukoa edelt�vi� ��nteit� venyt��n
erikseen, sill� opetetun puun tekev� venytys ei tuntunut riitt�v�lt�.
RMSE 0.7680 Correlation is 0.6294 Mean (abs) Error 0.5780 (0.5058)

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_lex.scm

Sanastotiedosto. Sanastojen avulla tunnistetaan sis�lt�- ja merkityssanat.
Lis�ksi yksitt�isten kirjainten leksikkoentryt.

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_lts.scm

Sis�lt�� Letter.to-sound -s��nn�t, jotka muuttavat grafeemit eli merkit
foneemeiksi. LTS-konversion yhteydess� tehd��n my�s tavutus.
"V��rent��" Festivalin sanastoon kuulumattomille sanoille (k�yt�nn�ss�
kaikki sanat pl. yksitt�iset aakkkoset) leksikkomerkinn�t.
Merkinn�n sanaluokka m��ritty finnish_lex-tiedoston tietojen p�erusteella
tai suopuhe-moodilta saatujen tietojen perusteella.


  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_mv_int.scm

Intonaatiomalli eli Fujisakin malli. Laskee perustaajuuden tavallisesti
50 millisekuntin v�lein, lyhyiss� tavuissa tihe�mmin.

Intonaation yhteydess� my�s nime�� tavut.

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_mv_phrase.scm

Lis�� puhunnokseen tauot ja tauotuksen j�lkeen huolehtii my�s
alkukahdennuksesta. 

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/finnish_phones.scm

Suomenkielisten ��nteiden m��ritelm�t. K�ytet��n mm. kestomallin apuna.
��nteiden nimien pohjana toimii Sampa-aakkosto, mutta yhdenmukaisuus
ei ole t�ydellinen. Meid�n tiettyjen ��nteiden nimet ovat intuitiivisesti
helpompia muistaa.

  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/hy_fi_mv_diphone.scm
  festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/suo_fi_lj_diphone.scm

Mies- (hy_fi_mv_diphone) ja nais��nen (suo_fi_lj_diphone) 
m��ritelm�t. Nais��nen "tiedosto" on vain symbolinen linkki mies��neen.

festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/suopuhe.dtd

Suopuhe-XML-moodin k�ytt�m� DTD.

festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/suopuhe_filter.perl

Suopuhe-moodin k�ytt�m� tekstin esik�sittelij�.
Siivoaa sy�tett� erin�isin osin. Siivous on helpompi tehd� Perlill�
kuin Schemell�...

festival/lib/voices/finnish/hy_fi_mv_diphone/festvox/suopuhe_mode.scm/

Suopuhe-moodin tulkitseva scheme-koodi

festival/lib/voices/finnish/hy_fi_mv_diphone/group/mvlpc.group

Mies��nen ��nitietokanta.

festival/lib/voices/finnish/suo_fi_lj_diphone/group/ljlpc.group

Nais��nen ��nitietokanta,

8. SUOPUHEEN FUNKTIOT

(= N1 N2)
Return true if N1 and N2 are equal numbers.

(Duration_Finnish)
Lengthens the final phone after the duration cart tree.

(SayText TEXT)
TEXT, a string, is rendered as speech. (Suopuhe redifinion)

(accented_p SYL)
Sees if the syllable is accented...

(add_linguistic_break WORD)
Adds a phrase break after the word, if the context is appropriate.
If the word is final return nil. If there already is a pause
return the word itself. Also is pause is added, return the word itself.
If pause couldn't be added, try the same with the next word. Simple!

(baptize SYL)
Baptizes the given syllable by concatenating together the names
of it's daughters (phones)

 (calculate_fujisaki acc_list phrase list point alpha beta f_min)
Calculates the Fujisaki parameter values for a given point. Returns an absolute
Hertz value

(compound_stress WORD)
Handles the exception stress placement in compounds.
The few compounds supported are recognized by the '-' separator.
However secondary word stress did not show up in duration and intonation
models... We could also add boundary detection based on vowel positions
in neighboring syllables.

(distance_from_prev_pause WORD)
Distance (in syllables) from the previous word.

(distance_to_next_pause WORD)
Counts the distance from the end of the word to the next pause in syllables.

(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...

(extract_feats relname feats utt outfd)
Extract the features and write them to the screen.

No documentation available for user-defined function.

(find_phrase_break WORD)
If the distance from previous break to the next break is
long enough (now 25 syllables), try to add more pauses
in between. New pauses are added between certain word classes.

(define (find_phrases utt)
Returns a list of phrases from an utterance in the form
of lists whose car is the break level followed by start and end times

(finnish_lts WORD) 
Creates the lexical entry for the given WORD.

(finnish_number INT)
Converts the INT into a corresponding string.
Very simple. Does not handle cases.

(finnish_token_to_words token name)
A few simple ad hoc solutions for the most common simple T2W-problems.
It was much nicer to use an external Perl text normalizer than scheme.

(finnish_tosyl_brackets phones)
Takes a list of phones containing - as syllable boundary.  
Should we add a compound boundary? Probably...
Construct the Festival bracket structure. 
Used by finnish_lts-function.

(fujisaki_targ_func UTT STREAMITEM)
Returns a list of targets for the given syllable.

(general_fi_diphone) 
Shared settings for all Suopuhe voices.

(general_fi_diphone) 
Shared settings for all Suopuhe voices.

(get_accent_list UTT)

(get_amplitude point beta)
Calculate the amplitude from time and beta information:

(get_phrase_amplitude time alpha)
calculate phrase amplitude for a given point in time.

(get_phrase_list utt)
Returns a list of phrase commands for an utterance. The first command
is higher than the following ones.

(initial_doubling WORD)
Checks wheter the current WORD can triggers initial doubling on the
next word or not.

(insert_pause2 WORDITEM)
 Insert a little break (pause segment) after the last segment in WORDITEM in UTT.

(intro-finnish)
Synthesize an introduction to the Festival Speech Synthesis System
in Finnish.

(lab_body PHONE)
Writes the LAB data for a given phone and recursively call
itself while there are phones left (ortographically right:).
The header is done in lab_header procedure which typically
is the caller of this function.

(lab_header UTT)
Returns the contents for the to-be *.lab file based on the UTTerance.
Saving the output to a file is done somewhere higher.

(language_finnish)
Set up language parameters for Finnish.

(list2string LIST)
Construct a string from a list of symbols

(make_number INT)
Splits numbers into 3-letter chunks, which are converted into a number.
Also adds an appropriate  quantifier (like thousands) to each triplet,
thus producing any int between 1 - 999999999.

(make_number2 INT)
Converts an up-to-three digit sequence into a number.

(max num1 num2)
Returns the greater of the two.

(min num1 num2)
Returns the smaller of the two.

(monotone UTT SYL)
Monotonous intonation model.

(mora PHONE)
Counts the number of morae in the syllable.
Used by the duration model.

(mora2 list_of_phones)
Counts the moras (morae?) in a given list of phones.
Does not support ambisyllabic long consonants.

(neg number)
Negates a number -- Festival SIOD doesn't understand (- number), but
requires TWO arguments to the '-' operator

(number_list DIGIT)
Returns the corresponding string for a given DIGIT

(one_by_one WORD)
Speaks the letters in the given WORD one by one.

(parts_of_speech UTT)
Returns a list of sublists. Each sublist consists of a word's name
and part-of-speech based on the UTTerance.

(phone_durations PHONE)
Prints the name and duration of a given PHONE.
The recursively goes through the next phones and does the same for them also.

(phones UTT)
Prints a list of phone names in UTTerance and returns the original utterance
unchanged..

(pop_accent)
Removes and returns the topmost whatever from the suopuhe_accent_stack.

(pop_pos)
Removes and returns the topmost whatever from the suopuhe_pos_stack.

(push_accent alkio)
Adds alkio to the top of the suopuhe_accent_stack.

(push_pos alkio)
Adds alkio to the top of the suopuhe_pos_stack.

(remove_head_and_tail_spaces string)
Removes unspoken space sequences from the beginning and end of a give string.

(save_suopuhe_output UTT)
Saves the UTT and some textual data about it to files.

(skip_pause WORD)
Returns the word after the next pause or nil if there are no intersentence
pauses left.

(sqr NUM)
NUM ** 2.

(suopuhe_Pauses utt)
Converts the punctuation marks into appropriate pauses.
Does the list intonation too.

(suopuhe_add_break UTT)
Adds pauses if necessary to a (overlong) utterance.
Applies some linguistic intelligence in the process...

(suopuhe_adjust_volume utt)
Amplify or attenutate signale based on value of suopuhe_vol_factor
and suopuhe_vol_type (absolute or relative).

(suopuhe_exit_func)
Exit function for SUOPUHE mode

(suopuhe_init_func)
Initialisation for SUOPUHE mode

(suopuhe_init_globals)
Initialize various global variables.

(suopuhe_setup)
Reset tts hooks for suopuhe mode.

(suopuhe_token_to_words token name)
SUOPUHE mode token specific analysis.

(suopuhe_voice_param_setup)
Set up original values for various voice parameters.

(syllable stress UTT)
Returns a list of sublists. Each sublist consists of a syllable name
and a syllable stress value based on the UTTerance.

(syllables_in_word SYL)
Counts the number of syllables in a given word. Actually counts the numebr
of syllables from a given syllable to the end of word.

(tts FILE MODE)
  Convert FILE to speech.  MODE identifies any special treatment
  necessary for FILE.  This is simply a front end to tts_file but 
  puts the system in sync audio mode first. [see TTS]

(utt.length utt)
Returns the length of an utterance in syllables

(wavesurf UTT)
Saves the utterance UTT as a wav file 
and the creates the corresponding lab file.
The files are placed in the /tmp dir.
Then starts the wavesurfer-program for speech analysis.

(word durations2 WORD)
Returns the name and start and end times of the given word.
Then recursively calls the next word if any and finally
returns a string consisting of data from all words visited.

(word_has_break? WORD)
True, if the WORD is followed by # or ##  "phone".

(word_list_entry? STRING LIST)
Checks whether the STRING is member of any of the sublists of LIST.


9. SUOPUHEEN MUUTTUJAT

suopuhe_output_file_prefix
  M��ritt�� hakemistot, johon suopuhe-moodin mukaiset tiedostot talletetaan.
  Oletusarvo "/tmp"

suopuhe_max_sentences
  M��ritt�� yl�rajan levylle talletettaville puhunnoksille.
  Oletusarvo 1000. Arvolla 0 tiedostoja ei pit�isi p��ty�
  kovalevylle laisinkaan, eli t�ll�in puhunnokset vain soitetaan.

suopuhe_aloud
  Jos tosi niin syntetisoitava ��ni soitetaan ulos kaiuttimista,
  muuten (arvolla ep�tosi) se vain talletetaan levylle.
  Oletusarvoisesti tosi.

[Vajavainen]

10. TUNNETUT BUGIT

Festival README.tiedosto kertoo seuraavaa:

  INSTALL

  Festival should run on any standard Unix platform.  It has already run
  on Solaris, SunOS, Linux and FreeBSD.  It requires a C++ compiler (GCC
  2.7.2, 2.8.1, 2.95.[123], RedHat "gcc-2.96" and egcs are our standard
  compilers) to install. A port to Windows NT/95/98 and 2000 using
  either Cygnus GNUWIN32 and Visual C++ is included, this is still new
  but many people are successfully using it.


Joillain gcc:n versiolla (3.2x) ei Festivalin versio 1.4.2 k��nny.
Ongelma ratkeaa siirtym�ll� uudempaan Festivalin versioon (1.4.3)

Verkosta l�ytyy valmiita RPM-tiedostoja, mutta n�iss� on ��kk�siin
liittyv� bugi (7-bittinen ascii...), joka johtuu SIOD:n k�ytt�m�n
editline-komentoriviohjelman rajoituksista.
L�hdekoodin teht�v� bugikorjaus on kerrottu www:ss� (Ks. kpl 12), mutta
RPM:��n t�t� ei voine tehd�.

Syntetisaattori k�ytt�� ensisijaisesti lavennukseen ulkoista 
lavennin-modulia, joten sen omat tekstin lavennuss��nn�t ovat sangen
huonot.

Alkuper�inen koodimme on kirjoitettu ISO-8859-1 -standardilla
(vai oliko se 8859-15). Uudemmat unixit yritt�v�t tukea UTF-8:aa.
UTF-8-tuki puuttuu... Korjaukset tulisi tehd� tiedostoon
editline.cc, mutta niit� tuskin ehdit��n tekem��n/testaamaan projektin
puitteissa,

11. K�YTT�

Lukee laventimen tekem�t suo- tai suopuhe-prefiksill� varustetut tiedostot
suopuhe-moodissa, k�skyll�

$ festival --tts foo.suo

Muuten k�ytt� festivalin ohjekirjojen mukainen

12. WWW-SIVUT

Syntisaattorit ohjesivut tulevat vastaisuudessa l�ytym��n
osoitteen http://www.ling.helsinki.fi/suopuhe alta.



MUUTA

VERSIOHISTORIA



Notaatio: 
numerot kertovat versionumerot,
kirjaimet viittavat pieniin p�ivityksiin/bugikorjauksiin.

       22.10.2004  Lisenssitekstin liimailua 

  1.0f  23.5.2003  ��nipakettin polku festvox-paketteja vastaavaksi.
	           Puuttuvat funktioiden dokumentoinnit koodiin sek�
	           funtioiden dokumentaatio t�h�n dokumenttiin.
		   README-tiedostot siirtyneet yht� hakemistoa ylemm�s.

  1.0e  22.4.2003  Duration_Method paremmin ��niriippumattomaksi.
		   Versio nais��nest� pihalle

  1.0d  16.4.2003  Korjattu suopuhe-moodissa ollut tauotusvirhe.
		   Korjattu paketintekoskriptiss� ollut virhe, jonka
		   takia edellinen julkaistu versio (1.0c) ei sellaisenaan
	           toiminut.

  1.0c  10.4.2003  Korjattu virhe LTS-s��nn�ist�.
	           Poistettu 1 tarpeettomaksi k�ynyt funktio.
	           Mahdollisesti muitakin pieni� muutoksia

  1.0b  10.2.2003  T�m� tiedosto osaksi pakettia.
		   Muutamaa ��nnekestoa korjattu k�sin. (mm. pitk� l)

  1.0a	6.2.2003   Suopuhe-moodista unohtuneet funktiot lis�tty 
		   pakettiin. Muutama bugikorjaus.

  1.0	5.2.2003   julkaistu alustava versio

Ennen helmikuuta 2003 julkaistut beta-versiot oli nimetty julkaisup�iv�n
mukaan.