Utils - czyli dodatki do Mileny

I. DYKCJONARZ

Jest to prosty program pozwalajcy na stworzenie sownika przeznaczonego
dla pojedynczego tekstu (np. ksiki) w celu prawidowej wymowy przez
Milen nazw wasnych. Pobiera wszystkie wyrazy z tekstu i wypisuje te,
ktre nie pasuj do sownika Mileny a w caym tekcie pisane s wycznie
wielk liter (oprcz pocztku zdania), zawieraj apostrof lub dowoln
liter z zakresu poza polskimi.

Program jest bardzo prowizoryczny, ale do czasu opracowania penego sownika
wymawialnych wyrazw moe by przydatny...

II. MILENIZER

Milenizer to konwerter tekstu na format przeznaczony dla Mileny. Tekstem
wejciowym moe by:

1) niesformatowany tekst w dowolnym kodowaniu. Nastpuje tu wycznie
   konwersja na ISO-8859-2.
   
2) sformatowany tekst w dowolnym kodowaniu. Oprcz konwersji na ISO-8859-2
   milenizer prbuje poczy linie w akapity, w miar moliwoci lczc
   rwnie przeniesienia wyrazw. Moliwe jest wymuszone zakoczenie
   akapitu pust lini lub rozpoznawanie koca akapitu po dugoci linii.

3) tekst w formacie rtf.

Na wyjciu otrzymuje si tekst w postaci akceptowanej przez Milen (kady
akapit w jednej linii). Moliwy jest rwnie pautomatyczny podzia tekstu
na rozdziay, z opcjonaln autonumeracj rozdziaw, uwzgldnianiem
tytuw rozdziaw oraz wyrnieniem prologu oraz epilogu lub ostatniego
rozdziau.

Milenizer moe rwnie suy jako prosty konwerter z RTF na TXT.
Na wyjciu otrzymuje si wtedy plik tekstowy w kodowaniu UTF-8.

Sposb uycia:
	
	milenizer [opcje] <plik>

Dostpne opcje:

-- opcje rozformatowania --
  -u <minlen>
  -U <minlen>
     Wczenie rozformatowania. Jeli <minlen> wynosi 0, uznaje si,
     e akapity s oddzielone pust lini. W przeciwnym przypadku
     akapitem koczcym jest akapit o dugoci nie wikszej ni <minlen>.
     Opcja -U powoduje dodatkowo ignorowanie numeracji stron (tzn. linii
     zawierajcych wycznie cyfry oraz nastepujcych po nich pustych)
  -d
     nie uznaje linii zaczynajcych sie od '-' za dialogi.

-- opcje podziau na rozdziay --

  -s <sciezka>
     wcza tryb podziau na pliki rozdziaw. W tym trybie pierwsza linia
     traktowana jest jako linia tytuowa i rozpoczyna kady plik. Jeli nie
     podano adnej z opcji -a/-A, pierwsza linia kadego rozdziau jest
     traktowana jako tytuowa rozdziau i oddzielona kropk od tytuu
     ksiki. Po linii tytuowej zawsze wystpuje pusty wiersz. Kady plik
     koczony jest oddzielonym pustym wierszem zdaniem "koniec rozdziau"
     lub (dla ostatniego) "koniec ksiki". Jeli podano opcje -p/-P,
     prolog koczony jest zdaniem "koniec prologu".
     Kolejne pliki maj posta <sciezka>_<numer>.txt, gdzie <numer> jest
     dwu- lub trzycyfrow liczb oznaczajc kolejny plik.
  -S <separator>
     Podaje znak separujcy rozdziay (domyslnie '#'). Znak ten powinien byc
     pierwszym widocznym znakiem linii. Wszelkie biae znaki za separatorem
     s ignorowane.

-- opcje autonumeracji rozdziaow --

  -a
     wcza autonumeracj rozdziaow
  -A
     wcza autonumeracje, dodatkowo pierwsza linia rozdziau traktowana
     jest jako tytu rozdziau.
  -l
     wyrnia ostatni rozdzia
  -p, -P
     wyrnia prolog. Jesli podano -P pierwsza linia traktowana jest jako
     tytu prologu.
  -e, -E
     wyrnia epilog. Jesli podano -E pierwsza linia traktowana jest jako
     tytu epilogu.
  Opcje -p/-P i -e/-E dziaaj niezalenie od tego czy podano -a czy -A.
  Wystpienie ktrejkolwiek z opcji -p/-P/-e/-E/-l bez opcji -a/-A jest
  nielegalne. Wszystkie opcje autonumeracji s ignorowane, jeli nie podano
  opcji -s.

-- opcje konwersji --

  -c <kodowanie>
     podaje kodowanie pliku wejciowego. Jeli nie podano tej opcji,
     program prbuje wydedukowac kodowanie na podstawie zawartoci pliku.
     Jeli program skompilowano z bibliotek enca, bdzie ona uyta do
     okrelenia kodowania. W przeciwnym przypadku dopuszczalne s tylko
     trzy wejciowe kodowania (UTF-8, ISO-8859-2, CP_1250).
  -r
     powoduje e program dokona wycznie konwersji z formatu RTF na tekst
     w kodowaniu UTF-8 (przydatne przy rcznej obrbce plikow). Podanie
     tej opcji spowoduje, ze wszystkie opcje oprocz -o, -i oraz -f bd
     ignorowane.
  -i
     powoduje, e przy konwersji z UTF-8 znaki spoza dopuszczalnego zakresu
     bd ignorowane. Nie dotyczy to znakw o kodach wyszych ni \uFFFF.
  -I
     powoduje, e przy konwersji z UTF-8 znaki spoza dopuszczalnego zakresu
     bd wypisywane jako szesnastkowe encje zgodne z HTML. Opcja przeznaczona
     przede wszystkim do przygotowania tekstu do dalszej obrbki.

-- pozostae opcje --

  -h
     wypisuje tre pomocy
  -o <nazwa_pliku>
     program zapisze wynik konwersji do podanego pliku (domylnie program
     wypisuje wynik na standardowe wyjcie).
  -f <tryb>
     okrela tryb traktowania przypisw (footnotes) przy konwersji plikow
     w formacie RTF. Dopuszczalne s nastpujace tryby:
   d - ignorowanie przypisow (domylnie);
   n - przypisy w postaci czytelnej na ekranie. Kady przypis w treci
       oznaczany jest [n] (gdzie <n> to numer przypisu). Po akapicie
       wypisywana jest linia "---", a po niej wszystkie przypisy wystepujce
       w akapicie.
   e - jak wyej, ale wszystkie przypisy s grupowane i wypisane na kocu.
   a - podobnie jak 'n', lecz przypisy wypisane s w formie czytelnej dla
       syntezatora mowy.
   i - przypisy w postaci czytelnej dla syntezatora mowy bd wypisane
       bezporednio w miejscu wystpienia przypisu w treci.

Uwagi co do konwersji na ISO-2.

Milenizer rozpoznaje litery do kodu \u017f oraz "s" i "t" z przecinkiem.
W przypadku napotkania znaku literowego niewystpujcego w ISO-2:

1) Litery "s" i "t" z przecinkiem zamienione zostaj odpowiednio
   na "" i "";

2) Litery "a","e","i","u" z akcentem gravis zostaj zamienione
   na odpowiednie litery z akutem (pozwala to na rozrnienie
   np. angielskich i francuskich sw o podobnej pisowni);

3) Litery thorn i eth zostaj zamienione odpowiednio na "t" i "d";

4) Litera n+tylda wystpujca przed samogosk zostaje zamieniona na "j",
   w pozostaych przypadkach na "";

5) Litery "a+ring", "ae", "o+stroke", "oe" "ij" i "eng" zamienione zostaj
   odpowiednio na "o", "", "", "", "ij", "ng";

6) Pozostae litery zostaja zamienione na ich odpowiedniki bez akcentu.

Taki sposb konwersji w wielu przypadkach pozwala na prawidow (lub
przynajmniej nie raco bdn) wymow obcojzycznych wyrazw bez
koniecznoci wprowadzania ich do sownika.

Pena tablica konwersji - patrz plik utils/readfile.c

Dodatkowo czciowo rozpoznawana jest cyrylica i przekadana fonetycznie
wedug uproszczonych zasad odpowiadajcych jzykowi rosyjskiemu. Oprcz
liter z alfabetu rosyjskiego rozpoznawane s rwnie litery charakterystyczne
dla alfabetw ukraiskiego i biaoruskiego. Translacja jest w fazie
eksperymentalnej, nie naley si wic spodziewa dobrych rezultatw,
ale czytany tekst powinien by zrozumiay. 

III) MILENA_BOOK

Jest to bardzo prosty skrypt w bashu sucy do szybkiej konwersji ksiki
bdcej wynikiem dziaania milenizera (czyli kompletu plikw txt) na 
komplet plikw mp3.

Sposb uycia:

milena_book [opcje] <katalog>

Przy pierwszym uruchomieniu skrypt tworzy plik ~/.milena_bookrc, w ktrym
naley ustawi wszystkie parametry, w szczeglnoci parametr "voice"
wskazujcy ciek do pliku jzykowego Mbroli.

Opcje:

	-H - odczyt godzin w formacie HH:MM:SS i HH:MM
	-u plik - dodatkowy sownik uzytkownika
	-f plik - dodatkowy plik frazera
	-m plik - dodatkowy plik mbroli
	-L lang - plik jzyka

Skrypt znajduje wszystkie pliki z rozszerzeniem .txt w podanym katalogu
i tworzy z nich pliki mp3, zamieniajc w nazwie rozszerzenie .txt na .mp3.
Do pracy wymagany jest lame.
