Krtko (z uwagi na brak czasu):

Milena to system TTS, sucy do translacji tekstu w jzyku polskim na
zapis fonetyczny, ktry moe sterowa bezporednio syntezatorem mowy.
W przeciwiestwie do istniejcych tego typu systemw Milena korzysta
z danych zapisanych w plikach tekstowych w formacie czytelnym dla czowieka,
co pozwala na atw modyfikacj owych plikw w celu uzyskania lepszej jakoci
mowy.

Milena jak na razie stanowi do wczesn faz rozwoju, tak wic efekty
nie musz by wcale porwnywalne z komercyjnymi systemami (np. Ivona
czy Loquendo). Tym niemniej stanowi alternatyw dla darmowego eSpeaka,
a generowana przez modu mbroli mowa jest po pierwsze nieco lepsza
jakociowo ni przy uyciu zestawu eSpeak + mbrola, po drugie dziki
zastosowaniu tekstowych sownikw nie wymaga w wikszoci przypadkw
wstpnego przetwarzania tekstu.

===========================================================================
				UWAGA!
   
   Milena _NIE_JEST_ kombajnem sucym do czytania plikw w dowolnym
   formacie. Jedynym rozumianym formatem jest czysty tekst, zawierajcy
   kady akapit w pojedynczej linii (jak w przypadku zastosowania opcji
   -w 0 w Antiwordzie). Tekst moe by interpretowany jako tekst literacki,
   zawierajcy dialogi oraz akapity separujce oraz moe zawiera dodatkowe
   informacje przeznaczone dla Mileny. Wymagane jest podanie tekstu
   w kodowaniu ISO-8859-2. Do konwersji mona uy doczonego programu
   "milenizer" (patrz README_utils).
   
===========================================================================

W odrnieniu od innych systemw Milena przetwarza tekst wielofazowo,
co pozwala na atwe modyfikacje zachowania poszczeglnych faz czy te
stworzenie wasnego programu realizujcego dan faz w inny sposb.
Poszczeglne fazy to:

1) Frazer

   Przyjmuje na wejciu tekst w zapisie naturalnym. Koryguje wymow
   obcojzycznych wyrazw i skrtowcw, ustala prawidow form liczebnikw
   oraz jednostek przy liczebnikach mianowanych. Zwraca pojedyncze
   frazy tekstu w zapisie ortograficznym oraz informacj o rodzaju danej frazy.
   Aktualna wersja frazera wymaga tekstu wejciowego w ISO-8859-2.
   
   Frazer interpretuje wejciowy tekst jako "literacki" - czyli nie zawierajcy
   rnych dziwnych znaczkw ktre w tekstach takowych rzadko wystpuj.
   W przeciwiestwie do innych systemw nie ma tu moliwoci wczenia
   odczytywania wszystkich znakw interpunkcyjnych czy sygnalizacji wielkich
   liter. Powd jest prosty - Milena w zaoeniach miaa by systemem
   sucym do czytania literatury piknej a nie technicznej, i te zaoenia
   zdaje si spenia.
   
   
2) Prestresser

   Ustala akcentowanie dla przypadkw, gdy wyraz nie jest akcentowany
   na drugiej sylabie od koca oraz si akcentu dla rnych wyrazw.
   Przyjmuje na wejciu fraz w zapisie ortograficznym, zwraca t sam
   fraz wzbogacon o informacje o akcentowaniu.
   
3) Translator

   Przyjmuje na wejciu fraz w zapisie ortograficznym i tumaczy
   j na notacj EPN.
   
4) Poststresser

   Ustala akcentowanie dla sw ktre nie zostay uwzgldnione w fazie
   frazera lub prestressera. W praktyce sprowadza si to do ustalenia
   akcentw na drugiej sylabie od koca oraz uwzgldnienia pocze
   wyrazw (np. "nie mam" akcentowanie na "nie"). Zwraca tekst w notacji
   EPN z akcentami umieszczonymi bezporednio przed samogosk tworzc
   sylab.
   
5) Modu wyjciowy

   Tumaczy tekst w notacji EPN z akcentami wewntrz wyrazw na (szeroko
   rozumian) mow. W chwili obecnej istnieje tylko jeden modu wyjciowy,
   ktrego wynikiem jest tekst w notacji Mbroli.

Zarwno tekst wejciowy dla frazera, jak i tekst ortograficzny
w poszczeglnych fazach mog zawiera dodatkowe informacje o akcentowaniu
i wymowie. Poniewa zarwno sam program, jak i uyta wewntrznie notacja
nie s w penu opracowane i ukoczone, bezpiecznymi sekwencjami sterujcymi
s na razie:

~! (akcent gwny) - np. "techn~!ika"
~, (akcent pomocniczy)
~' (separator) - np "s~'inantropus"

Dodatkowo kade sowo moe by poprzedzone informacjami o sposobie
akcentowania, zawartymi w nawiasach kwadratowych oraz oglnymi informacjami
o sowie, zawartymi w nawiasach klamrowych.

Rozpoznawane sposoby akcentowania to:
cyfra - akcent na n-tej sylabie od koca. Jeli poprzedzona znakiem '+',
oznacza akcent pomocniczy na n-tej sylabie od pocztku.
n - wyraz nieakcentowany lub sabo akcentowany
k - wyraz wymawiany jest cznie z nastpnym

Informacje o sowie to:
v - sowo jest czasownikiem (potrzebne przy akcentowaniu poprzedzajcego 'nie')
cyfra - sowo powinno by wymawiane w okrelony sposb. Sposoby wymowy
	okrela modu wyjciowy, jedynym obowizujcym ustaleniem jest to,
	e '0' okrela normalny sposb wymowy.

Pliki danych s wyszukiwane:

a) w biecym katalogu
b) w katalogu ~/.milena
c) w katalogu instalacyjnym

Poszczeglne pliki zawieraj:

1) Frazer:
	
	pl_phraser.dat - reguy rozpoznawania i wymowy fraz z liczebnikami
	pl_udict.dat - sownik dla frazera, zawierajcy obcojzyczne
		zwroty (sownik uytkownika)
	pl_charspell.dat - dodatkowy plik zawierajcy wymow wikszoci
		znakw
	pl_xx_udict.dat - dodatkowy plik zawierajcy dodatkowy sownik
		dla jzyka xx (np. pl_en_udict.dat)
	pl_hours.dat - plik odpowiedzialny za czytanie godzin

2) Prestresser:

	pl_stress.dat - reguy akcentowania
	pl_dict.dat - sownik (wycznie wyrazw polskich)

3) Translator:
	
	pl_pho.dat - reguy translacji tekstu ortograficznego na fonetyczny
	
4) Poststresser:

	(brak plikw danych)
	
5) Modu Mbroli:

	pl_mbrola.dat - reguy translacji tekstu fonetycznego na fonemy
		uywane przez Mbrol.
		
	pl_intona.dat - dane dla intonatora eSpeak

Formaty plikw nie s na razie opisane - pen dokumentacj mog napisa
o ile kto bdzie zainteresowany. Podaj wic w skrcie:

1) sownik frazera - patrz plik README_udict

2) formaty frazera - patrz plik README_phraser

3) Ustalanie dugoci pauz oraz modyfikacji wymowy w pliku pl_mbrola.dat

Pauzy po frazach ustala si w linii "pause":

pause [dialog] <typ> <dugo w ms>

Podanie modyfikatora "dialog" oznacza, e dugo pauzy dotyczy
listy dialogowej, np: "- co to? - zapyta."

Typy to:

comma - przecinek
statement - kropka
exclamation - wykrzyknik
question - pytanie
colon - dwukropek
ellipsis - wielokropek

Pauzy midzy akapitami ustalane s w linii "break":

break <typ> <dugo w ms>

Typy to:

normal - midzy zwykymi akapitami
dialog - midzy kwestiami w dialogo
predial - midzy zwykym akapitem a dialogiem (pocztek dialogu)
postdial - midzy dialogiem a zwykym akapitem (koniec dialogu)
long - duga pauza, stosowana np. po tytuach czy jako separator.
       Pojawienie si w treci pustego akapitu lub akapitu nie zawierajcego
       ani jednego wymawialnego znaku jest przez Milen interpretowane
       jako konieczno zastosowania dugiej pauzy

Modyfikacja wymowy polega na zmianie wysokoci i/lub prdkoci wymowy
fragmentu frazy. Okrelany jest w liniach "modify":

modify <nr> <prdko> <wysoko>

gdzie nr to numer modyfikatora (od 1 do 9) a prdko i wysoko to liczby
z zakresu 0.5 do 2.0. Domylny (zerowy) modyfikator ma obie wartoci
ustawione na 1.0.

UWAGA! Kada fraza rozpoczyna si od normalnego sposobu wymowy.
Przy projektowaniu np. konwertera z HTML na tekst uwzgldniajcego rne
sposoby wymowy okrelonych tagw naley to uwzgldni!

Typowy sposb uycia:

cat chmielewska.txt | \
	milena -l -u chmielewska.dat | \
	mbrola -e /gdzie/mieszka/pl1/pl1 - - | \
	lame -m m -b 32 -x -s 16 - chmielewska.mp3
	
gdzie "chmielewska.dat" bdzie zawiera midzy innymi:

// wszystko czerwone
muldgaard(owi|em|zie|a|) mildgord%

Jeli chcemy bezporednio odsucha to co mwi Milena bez tworzenia
plikw porednich, zastpujemy lame dowolnym programem, ktry
potrafi odtworzy podany na standardowe wejcie dwik w formacie raw,
16 bitw little endian, 16 kHz, mono. Przykadowo:

cat chmielewska.txt | \
	milena -l -u chmielewska.dat | \
	mbrola -e /gdzie/mieszka/pl1/pl1 - - | \
	aplay -f s16_le -c 1 -r 16000 -t raw -

lub (przy uyciu sox):

cat chmielewska.txt | \
	milena -l -u chmielewska.dat | \
	mbrola -e /gdzie/mieszka/pl1/pl1 - - | \
	play -s -c 1 -r 16000 -t raw -2 -

Wszystkie opcje Mileny (z milena -h):

 -h	help
 -v	verbose, pokazuje etapy posrednie
	i zastosowane reguly translacji
 -p	phraser, wylacznie etap frazera
	do testow regul rozpoznawania i slownika
 -l	lektor, uwzglednia dialogi i puste akapity
 -i	frazer ignoruje informacje dodatkowe w {} i []
 -I	frazer ignoruje akcenty i separatory
 -P	frazer odczytuje wikszosc znakow nieliterowych
	(implikuje -i -I)
 -H	frazer odczytuje godziny
 -L xx	frazer wczytuje plik jezykowy
 -u	wczytuje dodatkowy plik slownika
 -f	wczytuje dodatkowy plik frazera
 -m	wczytuje dodatkowy plik modulu Mbroli
 
Opcje -u, -m, -L oraz -f moga wystepowac wielokrotnie.


Uwagi kocowe:

Mimo e Milenie daleko jeszcze do doskonaoci, dla kogo przyzwyczajonego
do syntetycznego gosu suchanie np. ksiki w mp3 jest - szczeglnie jeli
brak alternatywnego rozwizania - cakiem znone, a po paru godzinach mona
si przyzwyczai. Z moich prywatnych porad - naley nagra sobie ktr
ze swoich ulubionych ksiek, tak, ktrej tre jest znana a jednoczenie
jest to pozycja do ktrej lubi si wraca. W moim przypadku by to "Piercie"
Nivena (doczony sownik frazera zawiera rwnie sowa specyficzne
dla tej pozycji).

Wszelkie uwagi prosz kierowa na adres:

Bohdan R. Rau <ethanak@polip.com>

Rozpoczcie tematu od [milena] powinno znaczco przyspieszy odnalezienie
takiego maila w przepastnych czeluciach mojego inboxa :)

Bohdan R. Rau

