Program jest naprawdę we wczesnej fazie rozwoju, toteż może sprawiać przeróżne problemy. Proszę o sygnalizację owych problemów tutaj lub na maila (znajdziesz w pliku README_pl).
Do ściągnięcia z http://tts.polip.com/files/subaloud/ (należy ściągać najnowszą wersję, nie bardzo mi się chce uaktualniać link za każdym razem gdy poprawię jakiegoś babola).
Przyszłość programu zależy od Was - jeśli nie będzie żadnych odpowiedzi, uznam że projekt jest niepotrzebny i zostanie zakończony.
Fragment z README_pl:
I. WYMAGANIA
1. Do kompilacji następujące pakiety:
milena-libs-dev
libivolektor-dev
libsapilektor-dev
libao-dev
libenca-dev
glib-2.0-dev
W Ubuntu trzy pierwsze pakiety można pobrać z repozytorium ppa:ethanak/milena
W pozostałych dystrybucjach milena i ivolektor dostępne są na stronie
http://milena.polip.com/download.shtml, sapilektor należy ściągnąć z
http://tts.polip.com/files/sapi/
2. DO PRACY
a) dla modułów milena, txt2pho i espeak-mbrola (planowany):
- mbrola
- głos odpowiedni dla języka (pl1 dla Mileny, de4 do de7 dla txt2pho)
b) dla modułu txt2pho - binaria txt2pho. Sam program txt2pho musi być dostępny
w ścieżce wykonania (PATH), dane należy umieścić w jednym z katalogów:
/usr/share/txt2pho/data
/usr/local/txt2pho/data
/usr/local/share/txt2pho/data
c) Dla mileny z głosami Ivony oraz modułu sapi - dostępny i uruchomiony
serwer sapi4linux (w Ubuntu z tego samego repozytorium, w pozostałych
dystrybucjach w http://tts.polip.com/files/sapi/).
II. KOMPILACJA
Bardzo prosta. Rozpakowujemy plik, wchodzimy w terminalu do tego pliku
i wydajemy kolejno polecenia:
make
sudo make install
Program będzie umieszczony w domyślnie w /usr/local, można to zmienić
podając odpowiedni parametr w make, np:
make prefix=/usr
sudo make prefix=/usr install
III. DZIAŁANIE PROGRAMU
Program przede wszystkim próbuje nawiązac komunikację z modułem syntezy.
Następnie wczytuje napisy i uruchamia mplayera z odpowiednimi
parametrami. Jeśli format napisów jest oparty na ramkach, dodaje
do mplayera parametr -identify aby poznać FPS filmu.
Jeśli nie podano ścieżki do napisów, program próbuje znaleźć napisy
podmieniając w nazwie pliku filmu rozszerzenie na jedno z
.asub, .sub, .srt lub .txt. Plik z rozszerzeniem asub może być
w dowolnym formacie, dodanie takiego pliku umożliwia proste
czytanie innych napisów i wyświetlanie innych.
W obecnej postaci program szuka biblioteki pulse_simple, i jeśli
ją znajdzie, wyjściem audio będzie pulseaudio. W przeciwnym przypadku
użyje biblioteki ao.
Zakończenie pracy mplayera spowoduje automatyczne zakończenie programu.
Również zakończenie programu spowoduje wysłanie do mplayera sygnału
zakończenia.
Program będzie czytał napisy z zadaną prędkością nominalną, jednak
w przypadku zagęszczenia kwestii prędkość będzie płynnie przyspieszona
aż do osiągnęcia prędkości maksymalnej. Jeśli mimo to opóźnienie
kwestii wyniesie ponad 3 sekundy, nastąpi resynchronizacja czytanych
napisów z bieżącą pozycją czasową - niektóre kwestie mogą zostać
pominięte.
IV. PARAMETRY WYWOŁANIA
-h - wyświetlenie pomocy
-M <nazwa_modulu> - obowiązkowy - jeden z modułów (aktualnie milena,
txt2pho lub sapi)
-V <nazwa głosu> - obowiązkowy (z wyjątkiem Mileny). Dla głosów SAPI
będzie to nazwa głosu wpisana w konfiguracji ivolektora lub
sapilektora, dla txt2pho jeden z głosów de4 do de7. Domyślnym
głosem modułu Milena jest Milena (synteza poprzez mbrolę)
-r <float> - szybkość czytania (od 1.0 do 2.0)
-R <float> - maksymalna szybkość czytania (od wartości -r do 2.0)
-m <ścieżka> - obowiązkowy poza trybem test - ścieżka do filmu
-s <ścieżka> - ścieżka do napisów, jeśli inne niż domyślne
-e <encoding> - kodowanie napisów (domyślnie automatyczne)
-l <code> - dwuliterowy kod języka napisów do automatycznego rozpoznania,
jeśli inny niż bieżący język systemu.
-T 'tekst' - tryb testowy. Program nie próbuje odtwarzać filmu, zamiast
tego wypowiada podany tekst z prędkością nominalną, następnie
z prędkościa maksymalną.
-A <parametr> - głośność lektora (z zakresu 0..100)
Dodatkowo wystapienie w parametrach ciągu '--' powoduje,
że następne parametry będą przeznaczone dla mplayera
Przykładowe wywołanie:
spowoduje uruchomienie mplayera bez wyświetlania napisów,Kod: Zaznacz cały
subaloud -M milena -V jacek -m ~/Wideo/Fajny_film.avi \ -r 1.3 -R 1.5 -- -noautosub
wczytanie np. napisów ~/Wideo/Fajny_film.txt oraz czytanie
napisów głosem Jacek syntezatora Ivona. Nominalna prędkość wyniesie
1.3 prędkości standardowej Ivony, maksymalna 1.5 tej prędkości.
V. ZDALNE STEROWANIE
UWAGA!!! Zdalne sterowanie działa wyłącznie pod linuksem!
Do zdalnego sterowania programem służy zamieszczony jako przykład
programik w Pythonie - subalctl.py. Wywołanie tego programu
bez żadnych parametrów lub z parametrem 's' spowoduje natychmiastowe
zatrzymanie czytania bieżącej kwestii oraz resynchronizację. Wywołanie
z parametrem '+' lub '-' spowoduje zwiększenie/zmniejszenie głośności
o wartość 5. Podanie parametru z zakresu 0 do 100 spowoduje
ustawienie głośności na zadaną wartość. Przy ustawianiu głośności
program zwraca aktualną wartość.
Program należy traktować jako przykładowy kod do stworzenia interfejsu
graficznego, chociaż może być przydatny bezpośrednio poprzez podpięcie
go do klawiszy (np. SUPER-9 i SUPER-0 sterują głośnością, SUPER-minus
resynchronizuje napisy).
Dzięki koledze Adlatus z Forum Ubuntu za sugestię resynchronizacji!