Komputery, oprogramowanie, internet i okolice
Kategorie: Wszystkie | Aplikacje | Blog | Dev | Hacks | Linux | Subversion | Varia | gry | khoomei | książki | mjuzik
RSS
czwartek, 28 lutego 2008
Wygląda na to, że mamy dziś dzień zmian w internetowych aplikacjach służących do edycji tekstów. Paweł Wimmer na swoim blogu informował o zmianach na Zoho Writer. A przed chwilą przeglądam sobie nowe wpisy na joggerze i moim oczom ukazuje się info o zmianach na GoogleDocs. Szybko sprawdzam i rzeczywiście!



Sam jeszcze nie wiem czy mi się podoba. Stara wersja była jakby bardziej spójna graficznie, to ciemne tło jakoś tak się wyróżniało. Zobaczymy jak się będzie sprawdzać w praniu. W sumie wielkich zmian nie ma.

Co najdziwniejsze na blogu Google ani na blogu GoogleDocs o zmianach ani słowa. Z okołogooglowych blogów jak na razie tylko Google Blogoscoped zareagował. Oraz pojawiła się notka na Google Operating System.
wtorek, 26 lutego 2008
Niedawno pojawił się do wykonania mały projekt z wykorzystaniem TTS (Text To Speech), czyli syntezy mowy. I zaczęły się schody...

Java Speech API

Pierwszą rzeczą jaką zrobiłem to zerknięcie na stronę Sun'a w poszukiwaniu odpowiednich bibliotek. Chwila szukania i jest! Java Speech API (w skrócie JSAPI). Po przeczytaniu wstępnych informacji okazało się, że nie jest wcale tak różowo. JSAPI to jedynie zbiór interfejsów i brak jakiejkolwiek implementacji referencyjnej. No to zabieram się za szukanie implementacji (na stronie Code Samples niestety większość linków już nieaktualnych)

Cloudgarden Talking Java SDK

Cloudgarden Talking Java SDK to jedyna pełna implementacja JSAPI (zarówno synteza jak i rozpoznawanie mowy) jaką udało mi się znaleźć. Niestety za darmo można skorzystać jedynie z 30 dniowego triala. Krótko mówiąc - odpada...

Sphinx-4

O Sphinx-4 wspominam bo komuś może się przydać. Jest to implementacja części JSAPI odpowiedzialnej za rozpoznawanie mowy. Z tego co widzę to darmowa. Ja jednak poszukiwałem syntezy więc to nie dla mnie.

FreeTTS

FreeTTS wydawał się tym czego szukałem. Darmowa implementacja części JSAPI odpowiedzialnej za syntezę mowy! W dodatku pozwala na wykorzystanie głosów MBROLA, CMU ARCTIC czy FestVox. Krótko mówiąc rozwiązanie idealne... jeśli ogranicze się jedynie do głosów English (US). Mimo, że można pobrać polski głos MBROLA to nie zostanie on rozpoznany przez FreeTTS.

MBROLA

Jeśli już wspominam o MBROLA i FreeTTS warto wspomnieć o problemach ze współpracą w systemach Windows. Prawidłowa konfiguracja zestawu nie jest prosta, na szczęście ze strony Quadmore Software można pobrać poprawnie skonfigurowany zestaw. Wystarczy tylko dograć pozostałe głosy do odpowiedniego katalogu.

OK, no to sprawę języka angielskiego mamy już w zasadzie rozwiązaną - jest Javowo, przenośnie i darmowo. Jednak nadal pozostaje kwestia języka polskiego. Niestety nie udało mi się znaleźć żadnej implementacji JSAPI dla języka polskiego a nie mam na tyle doświadczenia w syntezie mowy by coś takiego samemu napisać. Jeśli kogoś by to interesowało to tutaj jest implementacja JSAPI ze wsparciem dla języków hinduskich.

Microsoft Speech API

No to jeśli nie ma rozwiązania w Javie to może uda się wykorzystać Microsoftowy Speech API (w skrócie SAPI) - rozwiązanie nieprzenośne poza Windowsa ale przynajmniej mające szanse powodzenia. Windows 2000 i wyższe obsługują SAPI5. Tutaj można poznać szczegóły SAPI5. Windows 2000 i XP mają już zainstalowany głos Microsof Sam, Windows Vista ma dużo lepszy głos Microsoft Anna. SAPI5 SDK, SAPI4 i trochę głosów zgodnych zarówno z wersją 4 jak i 5 można pobrać z tej strony. Głosy wysokiej jakości zgodne z SAPI5 można też pobrać ze strony Cepstral, niestety na początku pierwszej wypowiadanej frazy poinformują, że są nielicencjonowane.

Polskie syntezatory zgodne z SAPI5

No dobra, ale nadal mamy do wyboru jedynie syntezatory obcojęzyczne (głównie angielskie). Z tym jest spory kłopot...Znalazłem głosy IVONA Jacek i IVONA Ewa (firmy IVO), przy czym zgodne z SAPI5 są jedynie głosy dołączone do rehabilitacyjnej wersji programu IVONA, te dołączone do Expressivo niestety nie. Można pobrać wersję demonstracyjną, która ma niższą jakość i niepoprawnie wymawia "u" i "ó". Wyczytałem o głosie Realspeak Agata, jednak nigdzie nie znalazłem dalszych informacji.

Java to SAPI Bridge

Mamy już polski syntezator. Z użyciem Visual Basica wykorzystanie SAPI5 jest banalnie proste. Ale co z Javą? Z pomocą przychodzi wspomaniane już Quadmore Software z Java to SAPI Bridge, która to biblioteka jest pomostem pomiędzy Javą a SAPI5. Niestety zarówno w wersji 1.1 jak i 2.5, normalnej jak i tej z obsługą Unicode (wyłuskanej z wersji 1.6 BabyTalk Web) nie udało mi się zmusić SAPI5 do czytania polskich znaczków. Albo były pomijane albo przerywały mówienie. Mimo wszystko biblioteka może się przydać do pobrania listy dostępnych głosów.

Java i dostęp do obiektów ActiveX

Pozostaje rozwiązanie dosyć niskopoziomowe czyli dostęp do SAPI za pomocą obiektów ActiveX. Wykorzystać można bibliotekę JACOB lub JCom. Obie są stosunkowo proste w użyciu. Oto jak użyć SAPI5
Dla JACOBa będzie to wyglądać tak:
ActiveXComponent spVoice = new ActiveXComponent("SAPI.spVoice");
spVoice.invoke("Speak", "Hello World!");

Dla JCom w ten sposób:
IDispatch spVoice = new IDispatch(rm, "SAPI.spVoice");
spVoice.method("Speak", new Object[] {"Hello World"});

Głośność i prędkość pobieramy i ustawiamy operując na polach Voice oraz Rate obiektu SAPI.spVoice
Z ustawieniem głosu już jest trudniej.... Teoretycznie wystarczy pobrać dostępne głosy za pomocą metody GetVoices i z otrzymanego obiektu pobrać głos za pomocą metody Item(int) i ustawić otrzymany wynik jako pole Voice, jednak zarówno JACOB jak i JCom rzucają wtedy wyjątkiem. Rozwiązaniem jest sterowanie głosami za pomocą XML:
TREŚĆ TEKSTU
Tu jednak pojawia się kolejny problem z IVONĄ - polskie znaki w nazwie głosu. Należy odnaleźć IVONĘ w rejestrze (klucz
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens) i poprawić jej nazwę na np "IVONA_Jacek"

A co z obsługą SAPI4 przez obiekty ActiveX? Dobre pytanie... Jak na razie znalazłem informację, że kluczem do tej zagadki jest obiekt Speech.VoiceText jednak na razie nie udało mi się zmusić go do poprawnego działania. Tzn czyta tekst, jednak na końcu dodaje jakieś śmieci i przy próbie odczytania polskich znaków zawiesza komputer.

Jeśli ktoś zna sposób na oprogramowanie SAPI4 lub zna inne rozwiązanie bardziej Javowe to proszę o kontakt!

Za niedługo napisze jakiś wrapper, który pozwoli na obsługę zarówno głosów z poziomu FreeTTS jak i SAPI5.
15:49, kosciak1 , Dev
Link Dodaj komentarz »
niedziela, 24 lutego 2008
Małe arcydzieło pokazujące całą prawdą o tej popularnej dyscyplinie sportu. Aż sam mam ochotę zagrać w golfa

13:04, kosciak1 , Varia
Link Dodaj komentarz »
piątek, 15 lutego 2008

Chyba każdy użytkownik komputera lubi od czasu do czasu zagrać w jakąś ciekawą grę. Zwłaszcza jeśli to gra nietuzinkowa. A właśnie taką chcę tu zaprezentować.

Czy zastanawialiście się co mogłoby powstać z połączenia Simsów, Settlersów, Dungeon Keepera, Sim City i Adoma lub Nethacka? Odpowiedź to...

Dwarf Fortress

Niech was nie zmyli ASCII-artowa grafika! To jedna z najlepszych gier w jakie miałem okazję grać.
Gra rozpoczyna się od wygenerowania świata. Jako, że generowana jest całkiem spora mapa ze zróżnicowanymi terenami, warunki pogodowe, geologiczne, roślinność, zwierzęta, tysiącletnia historia świata może to potrwać od kilkunastu do nawet kilkudziesięciu minut. Jeśli ktoś nie chce czekać może sobie ściągnąć już wygenerowany świat.

Gdy mamy już gotowy świat możemy wybrać jeden z trzech trybów rozgrywki:

  • Dwarf Fortress - budowa twierdzy
  • Reclaim Fortress - czyli odbicie opuszczonej twierdzy
  • Adventure - czyli praktycznie zwykły roguelike
  • Legends - gdzie można poczytać o legendach poznanych w trybie Adventure

Najciekawszym trybem jest oczywiście Dwarf Fortress. Wybieramy sobie miejsce na mapie, przygotowujemy ekipę 7 krasnoludów (ich statystyki, umiejętności, posiadane przedmioty) i wyruszamy na miejsce by rozpocząć budowę twierdzy. Na początku gra trochę przytłacza swoją złożonością - mnóstwo opcji i nie wiadomo od czego zacząć. Nie czarujmy się, grafika na początku nie ułatwia sprawy. Na szczęście jest wspaniałe Dwarf Fortress wiki gdzie wszystkiego się dowiemy. A jest czego się dowiadywać:

  • budowa sieci podziemnych korytarzy i komnat jak i naziemnych murów i wierz
  • budowa i zarządzanie wieloma pomieszczeniami (od sypialń, kuchni, składnic różnych dóbr po wyspecjalizowane warsztaty)
  • wytwarzanie różnorakich narzędzi i dóbr
  • dbanie o wyżywienie armii krasnoludów (na początku jest ich tylko siedmiu lecz po roku, dwóch przybędą imigranci)
  • rolnictwo, łowiectwo, dbanie o zwierzęta
  • wydobycie kamieni i minerałów
  • irygacja i nawadnianie terenów
  • budowa różnych maszyn
  • handel z innymi cywilizacjami (ludźmi, elfami, innymi krasnoludami)
  • obrona przed dzikimi zwierzętami i wrogimi stowrami - od zwykłych wilków i lisów po straszliwe smoki
  • budowa armii gotowej do rozpoczęcia wojen z innymi nacjami czy nadciągającymi falamia złych goblinów
  • pilnowanie by nasze krasnoludy były szczęśliwe - inaczej mogą popaść w choroby psychiczne
  • dbanie o rozwój zawodowy naszych podopiecznych
  • przydzielanie specjalnych funkcji - zarządcy, księgowego, szeryfa, handlarza i zaspokajania zachcianek notabli

Warto wspomnieć, że nie kierujemy tu krasnoludami bezpośrednio. Są one dosyć autonomiczne w swoich decyzjach. My tylko wydajemy polecenia co należy zrobić a krasnolud o określonej profesji powienien to zrobić, o ile nie będzie zajęty innymi rzeczami jak na przykład dziką, suto zakrapianą imprezą.

Chyba najfajniejszym aspektem gry jest brak jakichkolwiek celów. Nie można tu "wygrać", co najwyżej można przegrać gdy zginą nasi podopieczni lub stracimy twierdzę. Cele gry wyznaczamy sobie sami - mamy gigantyczny, zmieniający się z czasem świat i całkowitą wolność wyboru.

No i jeszcze kwestia grafiki. Dla niektórych 16 kolorów i ASCII-artowe znaczki to może być za mało. Można ściągnąć dodatkowe pakiety graficzne z "normalną" grafiką. Jednak według mnie to już nie to. ASCII-artowa grafika powoduje, że wszystko odbywa się w głowie, w wyobraźni.

I jeszcze jedno ostrzeżenie. To dopiero wersja alpha gry - może więc mieć sporo błędów. Na pewno jest dosyć pamięcio i procesorożerna. I niesamowicie wciągająca!

10:23, kosciak1 , gry
Link Dodaj komentarz »
niedziela, 10 lutego 2008
Jako osoba ciągle poszukująca nowych rozwiązań postanowiłem poszukać zastępstwa dla multikomunikatora Pidgin. Nawet nie o to chodzi, że coś z tym komunikatorem jest nie tak. Wręcz przeciwnie - sprawuje się całkiem dobrze i bardzo go polecam. Po prostu jest stosunkowo ciężki i szukam czegoś lekkiego i minimalistycznego. Jako, że nie boję się konsoli (swego czasu zakochałem się w tandemie slrn-pl + jed do czytania usenetu) postanowiłem poszukać czegoś z CLI (Command Line Interface). Okazuje się, że jest tego trochę:
Wybór wydawał się spory. Jest tylko jedno małe "ale" - wszystko to są komunikatory Linuxowe. Stety lub niestety korzystam z Windowsa więc postanowiłem uciec się do sposobu. Cygwin miał rozwiązać wszelkie problemy. Jednak Cygwin to nie jest jednak emulator Linuxa a implementacja standardu POSIX dla Windowsa. Oznacza to, że wykorzystywane programy należy wcześniej skompilować pod Cygwinem. Cóż prostszego?! Wystarczy ściągnąć źródła, rozpakować tar'em, i wykonać:
./configure
make
make install

Tak to wygląda przynajmniej w praktyce...
W rzeczywistości trzeba jeszcze dociągnąć kompilator, sed'a, readline'a, interpreter perla, pythona, ncurses, libxml'a plus masę innych dodatkowych bibliotek wymaganych przez programy (plus ich bindingi dla pythona), które chciałem zainstalować. Oczywiście części z tych bibliotek nie ma w repozytorium dla Cygwina więc też trzeba ściągnąć źródła i spróbować skompilować.
Efekt dwudniowej walki to całkowita porażka. Mimo, że Freetalk dał się skompilować i nawet udało mi się połączyć z serwerem GG to już nie udało mi się znaleźć jak ściągnąć listę kontaktów z serwera, a z serwerami Jabbera mimo ustawiania różnych portów połączyć się już nie udało. Pozostałe programy nie dawały za wygraną i co rusz pokazywały różne warningi i errory. Pewnie bardzo łatwo to rozwiązać instalując jakąś brakującą bibliotekę czy program ale nie mam już na to siły. Przy okazji instalacji różnych dziwnych rzeczy Cygwin rozrósł się do ponad 500 mega...

Jeśli jednak ktoś nadal ma ochotę powalczyć to polecam stronę http://cygwinports.dotsrc.org/ z dużą ilością skompilowanych bibliotek dla Cygwina. Swoją drogą jest tam EKG jakby ktoś był zainteresowany (mnie jednak to nie urządza bo głównie szukam czegoś z obsługą Jabber/XMPP).

A jeśli komuś udało się skompiować jakiś (multi)komunikator konsolowy pod Cygwin, lub zna jakiś działający pod Windowsem to proszę dać znać!
czwartek, 07 lutego 2008
Niedawno stwierdziłem, że już dawno nie instalowałem żadnego nowego rozszerzenia do Firefoxa (ba! nawet kilka nieużywanych odinstalowałem). Sam nie wiem czy nic nowego i ciekawego się nie pojawia czy też mój Firefox ma już wszystko co człowiekowi jest potrzebne (oprócz lekkości i szybkości uruchamiania się).

Jednak pojawiło się bardzo ciekawe rozszerzenie, które zostanie u mnie na dłużej. Google Docs Bar - czyli sidebar dla uzależnionych od Google Docs and Spreadsheets. Wygląda ono tak:



Mamy do dyspozycji:
  • listę wszystkich dokumentów Google
  • podział na dokumenty, arkusze, prezentacje
  • wyświetlanie daty utworzenia (albo modyfikacji... sam nie wiem), tago-folderu
  • sortoiwanie po tytule, dacie, autorze rosnąco i malejąco
  • filtrowanie zagwiazdkowanych
  • filtrowanie po tytule, autorze
  • przeglądanie wybranych tago-folderów
  • wyszukiwanie
  • uploadowanie dokumentów na zasadzie drag'n'drop
Brakuje mi jedynie przenoszenia dokumentów między tago-folderami, tworzenia tago-folderów. Ale oprócz tego jest praktycznie wszystko czego potrzeba do szybkiego dostępu do naszych dokumentów.

Jeśli ktoś nie chce obciążać Firefoxa kolejnym rozszerzeniem a szuka czegoś do uploadowania dokumentów na Google Docs to warto zainteresować się Google DocList Uploder, o którym niedawno wspominał Paweł Wimmer na swoim blogu.
środa, 06 lutego 2008
Od zawsze za jedną z najbardziej wkurzających rzeczy w Eksploratorze Windows uważałem brak przycisku "Nowy Folder". Klikanie, mnóstwo klikania by utworzyć nowy folder....
Pewnym rozwiązaniem był prosty skrypcik AutoHotKey wywołujący "Alt-P-N-F"
Jednak znalazłem coś co rozwiązuje problem całkowicie - bxNewFolder
Uzyskujemy nowy przycisk:



Naciskając go, lub używając nowego skrótu "F12" pojawia się okno pozwalające na wpisanie nazwy nowego folderu:




19:09, kosciak1 , Hacks
Link Dodaj komentarz »
poniedziałek, 04 lutego 2008
O ile z hostingiem dla projektów typu Open Source nie ma kłopotu (jest Google Code, SourceForge.NET by wymienić przykładowe rozwiązania) to już z projektami o  kodzie zamkniętym jest pewien problem.
Na szczęście nie ma co załamywać rąk. W końcu jest Assembla! Oto co ma nam do zaoferowania:
  • 500 MB miejsca dla użytkownika
  • dowolna ilość projektów
  • określenie stopnia widoczności projektu i dostępu do niego
  • masę narzędzi wspomagających pracę nad projektem: SVN, Trac (wraz z SVN lub Mercurial), Scrum, Milestones, Mephisto (blog), wgrywanie plików, obrazków, system ticketów, Dashboard, Chat (oparty o Jabbera), alerty, wiadomości, zarządzanie zespołem
  • Wiki
  • możliwość promowania się i poszukiwania pracy w projektach hostowanych na Assembla
  • wszystko to z dostępem przez całkiem praktyczną stronę jak i API
  • możliwość upgrade'u do wersji płatnej z codziennymi backupumi i dodatkowym wsparciem technicznym
Jak na razie wszystko działa całkiem solidnie i sprawnie. Polecam!
18:04, kosciak1 , Dev
Link Dodaj komentarz »
Spis Treści
Kanały RSS
Add to Google
Add to Netvibes