Czytacz alternatywny

Napisałem sobie kiedyś skrypt do dzielenia książek na rozdziały, po to aby robiąc audiobooka mieć po jednym pliku mp3 na rozdział i przy okazji zautomatyzować tworzenie audioksiążek.

Ponieważ skrypt jest w pythonie i zasadniczo daje się odpalić wszędzie postanowiłem dorobić do niego proste GUI i dostosować do współpracy z mileną. Głównie dlatego, że brakowało takiej funkcji windowsowej wersji mileny o której niedawno pisałem. W ten sposób powstał alternatywny audio book creator.
Początki rozdziałów wykrywane są dzięki wyrażeniom regularnym (można podać własne albo skorzystać z przykładowych), gdy książka nie posiada rozdziałów albo są one zbyt długie możliwe jest też dzielenie jej na kawałki określonej długości po akapitach. Poza podziałem na części jest też możliwość regulowania szybkości czytania.
Można go pobrać tutaj skrypt do działania wymaga qt4 (pakiet się nazywa python-qt4) oraz programów z których korzysta: enca, milena, mbrola, lame (może być potrzebne podanie/poprawienie ścieżek do programów na początku skryptu).


Przygotowałem też specjalną wersję pod windows razem z pasującą do niego wersją mileny (uruchamia się przez czytacz_gui.py)
Jeśli ktoś pod windowsem nie posiada pythona to może go pobrać ze strony python.org a bibliotekę qt ze strony riverbank (proszę zwrócić uwagę na to aby wersje pasowały np do pythona 2.6 na architekturze 64 bitowej potrzebny będzie plik PyQt-Py2.6-x64-gpl-4.9.5-1.exe)

8 komentarzy:

  1. Jeden błąd:
    do konwersji na ISO-2 użyj milenizera, ew. zerknij do źródeł milena_convert i przeportuj na Pythona, bo niektóre znaczki powinny być niestandardowo konwertowane (np. ñ na ň). Jeśli chcesz napisz do mnie (adres na stronie), mogę ten konwerterek w Pythonie napisać.

    OdpowiedzUsuń
    Odpowiedzi
    1. Kompilacja milienizera pod windows wymagała jakiejś bibliotek których komputer do którego miałem dostęp nie posiadał (a instalowanie bibliotek bez apta pod windows to jakiś koszmar) więc dałem sobie z tym spokój, enconv był już gotowy i poprawnie rozpoznawał różne kodowania.

      We własne zamiany kodowania też się nie bawiłem bo nie zawsze na wejściu dostaje się UTF-8 a wolał bym aby to działało w każdej sytuacji.

      Aby nie tracić znaczków unikodu które nie występują w iso8859-2 dorobiłem w samym skrypcie ich podmianę według tabelki jaką znalazłem w milena_toiso.c

      Myślę, że teraz powinno już być ok, dzięki za zwrócenie uwagi.

      Usuń
  2. To może inaczej?
    Zrobiłem dzisiaj wersję która bezpośrednio może czytać UTF-8 (jutro wystawię paczki bo jeszcze jeden mały błąd chce poprawić) - może tak będzie lepiej?
    Przy okazji: dodaj do mileny przełączniki -l (lektor), -H (odczytywanie godzin) i -m /tam/gdzie/mieszka/pl_pro_mbrola.dat, lepiej sobie będzie radzić z dłuższymi frazami, będzie sensowniej różnicować pauzy między akapitami i użyje krótszych pauz do ortografii.

    OdpowiedzUsuń
  3. zapomniałbym: jeszcze -i -I (ignorowanie rozszerzonego zapisu), bez tego będzie sie łamać na nawiasach

    OdpowiedzUsuń
    Odpowiedzi
    1. Dodane.

      Skrypty są tak skonstruowane, że dodanie dodatkowego parametru dla mileny sprowadza się tylko do dopisania go w jednej z początkowych linii (a w wersji pod windowsa w pliku pomocnik.bat) więc myślę, że każdy powinien sobie poradzić z dodaniem tam co akurat jemu najlepiej pasuje.

      Usuń
    2. Pewnie poradzi z tym sobie każdy kto wie co oznaczają konkretne parametry mileny (szczególnie dotyczy to ignorowania informacji dodatkowych - milena domyślnie przyjmuje na wejściu różne dodatkowe informacje pomagające w ustaleniu prozodii) :)
      Te które podałem powinny być domyślnie zastosowane przy tworzeniu audiobooków, więc dodanie ich na pewno nikomu nie będzie przeszkadzać.

      Milena 0.2.55 już jest na stronie, wersja na Ubuntu stoi w kolejce na launchpadzie i powinna dzisiaj już się pojawić. W tej sytuacji jeśli chcesz możesz po prostu dodać -U do mileny i w wywołaniu enconva zmienić kodowanie wynikowe na UTF-8 (oczywiście wymóg mileny w co najmniej tej wersji).

      Usuń
  4. Uwaga - zmiana linku do downloadu.
    m4win.zip jeszcze pewnie przez parę dni zostanie, ale proszę o sprawdzanie najnowszej wersji na http://milena.polip.com/m4win.shtml

    OdpowiedzUsuń
  5. Czego można też użyć (dla leniwych, dla tych, co potrzebują robić to z telefonu, dla informatycznej ciemnoty, ludzi z bardzo słabym sprzętem itp. 1. Bieżemy plik i zapisujemy jako tekst w utf-8, jak macie windowsa, notatnik, zapisz jako, tam kodowanie, jak jesteście na tyle ogarnięci, że macie linuxa, powinniście wiedzieć, jak to zrobić. Takie coś wysyłamy jako załącznik na adres mowa@robobraille.org. Treść ma być pusta, temat pusty dla tempa normalnego, jeśli chcemy je regulować wpisujemy odpowiednio znaki + lub -. Obsługiwane jest, z tego co wiem, do trzech takich znaków, a więc tempo najszybsze to +++ a najwolniejsze --- Sama konwersja trochę zajmuje, dłużej niż mileną, przy bardzo długich książkach może to nawet być kilka godzin. W niektórych sytuacjach takie rozwiązanie może jednak się przydać zwłaszcza, że głos od Mileny jest bardziej naturalny.

    OdpowiedzUsuń