Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gadatliwa strona, samoczytające się emaile itp. itd. hbo i tvn
Forum PHP.pl > Forum > PHP
fiasko
Od ostatniej zabawy syntezatorami mowy minęło już u mnie sporo czasu. Generalnie włączałem je sobie z All Playerem do czytania napisów na filmie i do dnia dzisiejszego nie wydawało mi się , że będę tego potrzebował w innych celach.

Szybko zajrzałem więc na stronę jedynego w miarę przyzwoitego polskiego syntezatora mowy o którym wiedziałem z poprzednich lat doświadczeń - program o nawie IVONA.

Ku mojemu zdumieniu Soft Ivona bardzo się rozrósł. Możliwe stało się bowiem używanie syntezatorów mowy w aplikacjach www.

W brew pozorom program można wykorzystać nie tylko dla nie słyszących. Pobawiłem się tym softem i nawet elegancko czyta e-maile.

W każdym bądź rzazie daje link http://www.ivona.com/webreader.php

Moim zdaniem jedyną wadą i głupotą producenta jest sposób licencjonowania programu .
WADY które moim zdaniem są barierą wejścia w powszechny użytek

A. cena z kosmosu - 1 907 zł za rok, przy czym liczba odsłuchań 2000 na miesiąc (rozbuj),
B. abonament,
C limit odsłuchań,
D. synteza na zewnętrznym serwerze. - z wielu powodów nie dopuszczalne.


Gdyby nie te przeszkody można byłoby z powodzeniem stosować te rozwiązania .

Uważam też , że dużym minusem jest to , że synteza dźwięku odbywa się na serwerach producenta Ivona. Obawy moje rodzi , to, że w przypadku czytania poufnych informacji nie będą już poufne.
Skąd ja mam wiedzieć czy transmisja nie zostanie w jakiś sposób podsłuchana lub zapisana po drugiej stronie ? Kolejnym problem jest to , że serwer musi oczekiwać na dobicie się do serwerów IVONA co nie zawsze skutkuje powodzeniem.

Ja osobiście mocno ubolewam nad tym, że mimo, iż Polacy nie gęsi i swój język mają to nie mają nadal syntezatora mowy, który byłby w miarę na wysokim poziomie i za free. Wtedy można byłoby wykorzystać go jak bibliotekę i generować mowę w aplikacjach. No cóż mam nadzieję, że producent syntezatora mowy Ivona zejdzie na ziemię.


Ciekawe zastosowania dla tego softu jakie przyszły mi do głowy w aplikacjach www:

- odsłuchiwanie e-maili po kliknięciu w linka.
- tworzenie animacji i gadających dynamicznie postaci animowanych np. interaktywny przewodnik po stronie www.
- tworzenie interaktywnych pomocy np. przy zakupach w sklepach internetowych,
- gadające reklamy,
- alerty dźwiękowe w przypadku wykrycia błędu w formularzu ,
- oczywiste ,że dla niewidomych,
- nauka języków dla obcokrajowców hehe,

i masa innych zastosowań .


Jak sądzicie czym generować mowę w PHP ?
pedro84
A jaki jest cel tego tematu ( w dodatku w złym dziale)?

PS. Czytanie maili? Jeśli masz oczy i mózg to debilizm totalny, już dosyć wysoki poziom analfabetyzmu w społeczeństwie jest...
Sorry za formę wypowiedzi. Anyway uważam, że czytanie maili to zły pomysł wink.gif
ciekawskiii
wlasnie chcialem zapytac, a jakie jest pytanie? yahoo.gif
fiasko
Cel informacyjny. Dział odpowiedni bo syntezę generuje się na stronie w PHP. np :

o czym było pisane : Temat: ivonacom online

Po za tym interesuje mnie dyskusja w tym zakresie i doświadczenie we wdrożeniach podobnych rozwiązań innych forumowiczów .

thek
Czym? Napisać sobie samemu? wink.gif Wbrew pozorom nie jest to takie kosmicznie trudne. Wystarczy tekst pisany zamienić na fonemy. Jeśli już mamy fonemy, to dla każdego fonemu musimy mieć jego nagranie głosowe. Teraz już tylko sklejamy fonemy w wyrazy lub zdania. Kiedyś popełniłem taką aplikację desktopową w Matlabie. Jedyny problem może być z intonacją. Ale kto się zna na dźwięku i gramatyce języka polskiego, dla tego syntezator nie jest zadaniem trudnym. Najważniejsze to znaleźć lub samemu stworzyć reguły zamiany na fonemy.
fiasko
No wiesz nad czymś producent IVONA siedział przez ponad dekadę i prowadził badania w dziedzinie polskiego syntezatora mowy.

No dobra . Załóżmy, że mamy fonemy . Jak je wygenerować, sound , kontrolować prędkość odtwarzania , akcentować głoski i spółgłoski . Trzeba najpierw poznawać zasady fonetyki, a jak się już to zrobi to w zdaniu padają też akcenty na poszczególne wyrazy itd. Klasa do czegoś takiego musiałaby się opierać na bazie danych fonemów i zachowań w poszczególnych wypadkach syntezy. Bardzo trudno zrobić dobry syntezator mowy aby przypominał choć troszkę prawdziwy głos czytającego lektora.

Gdybym miał jakąś bazę fonemów to w wolnej chwili posiedziałbym nad syntezatorem i się pobawił.
IceManSpy
To już wiesz, dlaczego to tyle kosztuje smile.gif

A raczej takiej bazy nie znajdziesz, bo to nie jest popularne i każda z firm zajmująca się takim zagadnieniem tworzy to dla siebie na swoją wyłączność. W końcu chce mieć najlepszy produkt, więc nie będzie for fun udostępniać swoich zbiorów.
fiasko
Dotarłem też do ciekawego artykułu poświęconemu generowaniu mowy.


http://www.s1671.ps.pl/seminarium/PYTANIA%...0Wisniewski.pdf


Troszkę przytłacza ilość zasad jakie rządzą syntezą mowy z punktu programowego.

Ps . tej ceny nic nie usprawiedliwi smile.gif

Muszę zdobyć jakąś bazę fonemów.
IceManSpy
Cytat
Troszkę przytłacza ilość zasad jakie rządzą syntezą mowy z punktu programowego.

Za to się płaci smile.gif Możesz poszukać jakieś bazy, ale będzie Ci ciężko.
fiasko
Cytat
Za to się płaci Możesz poszukać jakieś bazy, ale będzie Ci ciężko.


Hehe . Już znalazłem.

http://www.staff.amu.edu.pl/~wagner/synteza_Mbrola.pdf

Ale słabo to działa.
thek
Działa słabo, ponieważ największy problem to prawidłowe nagranie fonemów. Tu trzeba nieco zdać się na wyczucie. Poza tym Ty nagrywasz fonemy czy litery? To dwie różne rzeczy smile.gif Najbliższe fonemów są głoski, ale to też nie do końca to samo. Podam Ci przykład zamiany na fonemy wink.gif
Prządka:
p-ż-o-n-d-k-a ("rz" to fonetycznie "ż", a "ą" zmiększa się zazwyczaj do "on")
p-sz-o-n-d-k-a (jeśli przed "ż" wystąpią takie fonemy jak "p", "h", "k" to następuje zmiększenie do "sz")
Jak widzisz, trzeba naprawdę dobrze znać język by poznać reguły kierujące. A co dopiero mówić gdy chesz jeszcze intonacje i akcenty wprowadzić. Tutaj musisz manikulować częstotliwością. Pytania charakteryzują się choćby tym, że częstotliwość się zwiększa im bliżej końca pytania, a w ostatnich wyrazach czy wręcz sylabach następuje znaczne jej zwiększenie, niemal wykładniczo. Do tego każdy fonem to nie ta sama długość w czasie, tutaj wspomniane wyczucie i samodzielny odsłuch wskazany.
fiasko
No wczoraj poczytałem te opracowania i kilka prac na ten temat. Przede wszystkim trzeba znać zasady budowy fonetycznej wymowy. Bez tego nie da się nic zrobić.

- moc obliczeniowa potrzeba do wygenerowania dźwięków jest dość spora. Jest dużo dylematów co do tego jakiego algorytmu używać. Można zrobić dużą bazę danych fonemów i wyrazów, albo oprzeć się tylko na podstawowych fonemach. Po za tym manipulacja częstotliwością, długość trwania difontów w poszczególnych wyrazach to wszystko sprawia, że jest tak dużo relacji, że znalezienie odpowiedniego algorytmu może zająć lata. Moje zainteresowanie wzbudziło korpusowe generowanie dźwięku.

W stanach zaczynają pojawiać się pierwsze udźwiękowione portale. Ciekawe kiedy u nas nastąpi taki przełom.


Tu ktoś dał świetny przykład wykorzystania syntezy :

http://blog.4zal.net/2009/02/22/udzwiekowi...-zaden-problem/
thek
Z bazą fonemów to nie przesadzaj. W języku polskim jest TYLKO około 25 fonemów (nie pamiętam czy 24 czy 26 smile.gif ) i z nich możesz składać wyrazy. To co musisz zrobić to tak naprawdę konwersja tekstu do zapisu fonemowego, a to zrobić nie tak znowu trudno. Jeśli tego nie potrafisz, nie ma co się nawet za trudniejsze rzeczy brać pod tym kątem ( akcenty czy intonacja ). Gdy to już zrobisz poprawnie to "sklejenie fonemów jest już tylko formalnością". To co zrobiłem kiedyś w Matlabie nie działało najgorzej, ale niestety od razu mówię, że nie działało idealnie, gdyż sa w języku polskie takie wyrazy, które są wyjątkami i ich pisownia nie do końca podlega zamianom według reguł. Znanym przykładem jest słowo "erzac", które wymawia się dokładnie tak jak pisownia, a więc nie "e-ż-a-c", ale "e-r-z-a-c"
fiasko
Cytat
To co zrobiłem kiedyś w Matlabie nie działało najgorzej, ale niestety od razu mówię, że nie działało idealnie, gdyż sa w języku polskie takie wyrazy, które są wyjątkami i ich pisownia nie do końca podlega zamianom według reguł.


I o to chodzi . Przeczytaj sobie te opracowania , które podesłałem w linkach to zobaczysz ,że to wcale nie taka prosta sprawa. Dźwięk generowany z samych fonemów jest zbyt mechaniczny i już większość firm zajmująca się syntezatorami mowy poszła w kierunku korpusowego generowania syntezy wykorzystując do tego funkcję obliczania kosztu, która ma za zadanie obliczyć opłacalność generowania syntezy w taki czy inny sposób. Dlatego sądzę , że napisanie takiego syntezatora tak aby wykorzystać go w php łatwe nie będzie.

Można iść oczywiście na łatwiznę i zrobić sobie prosty syntezator mowy. Ale szału to na nikim nie zrobi.
thek
@fiasko: wiem dobrze, że to nie jest banalna sprawa. Multimedia w postaci obróbki dźwięku i obrazu to specjalność jaką skończyłem na studiach (do dziś mnie trzęsie gdy słyszę choćby o ukrytych modelach Markova czy FFT biggrin.gif ). I syntezator samodzielnie napisany to było jedno z ćwiczeń laboratoryjnych wink.gif Dlatego dobrze wiem na czym to polega. Weź jednak pod uwagę, że sam język php też ma swoje ograniczenia w dziedzinie manipulacji dźwiękiem oraz demonem prędkości nie jest. Tak więc moim zdaniem nie ma co się samodzielnie szarpać na takie zagadnienie. To ciekawostka. Fajna, ale szczerze mówiąc to php robić powinien tylko za pośrednika. Powinien odebrać tekst i zwrócić plik dźwiękowy, tyle że cala reszta powinna być bez jego udziału. Powinno się to gdzieś w powłoce przez specjalistyczne oprogramowanie załatwiać. PHP jest mało wydajne do tego celu. Zarówno pod kątem analizy tekstu, jak i konwersji do pliku dźwiękowego. Wyobraź sobie choćby co się dzieje w chwili gdy masz do złożenia kilkunastowyrazowe zdanie. Ja nawet nie mówię o całych akapitach czy obróbkach bardziej złożonych jak modyfikacja głośności i częstotliwości w celu zaznaczenia interpunkcji. Naprawdę... Web to nie desktop i za próbę odpalenia takiego softu, na czymś innym niż serwer dedykowany, administratorzy by Cię powiesili wink.gif Już sama analiza tekstu dłuższego by trochę zajęła a co dopiero potem z galerii nagranych dźwięków to posklejać i skonwertować, przypuśćmy, do mp3. Dlatego szczerze wątpię, by twórcy Ivony zrobili inaczej. Mają zapewne dedykowane oprogramowanie, które robi wszystko, a php to tylko GUI webowe i nic więcej.
fiasko
Są już specjalne biblioteki do instalacji na serwer . Jak ktoś ma serwer dedykowany to może sobie zainstalować . Problem tylko, synteza jest po angielsku .

Jeszcze jedno przyszło mi do głowy. Google przecież ma na swoich stronach możliwość odsłuchiwania tłumaczeń . Wiem też, że firma pracuje nad syntezatorami mowy .

Jest do tego jakiś API ?


http://translate.google.pl/#pl|pl|Witaj%20...jna%20strona%20



Znalazłem coś co na pewno się wam spodoba. smile.gif


http://translate.google.com/translate_tts?tl=pl&q=fiasko+jest+genialny

Teraz spokojnie napiszę klasę w php , którą będę wykorzystywał przez jquery.
thek
Owszem, link ok, ale zauważ jedno: w tym temacie chciałeś odpowiedzi JAK zrealizować samą syntezę mowy w PHP, a nie CZYM wink.gif Stąd też mimo rozwiązania problemu wrzucenia na stronę (ale sprawdź jeszcze polskie diakrytyki, bo z nimi w $_GET jest często problem i zależy wynik nawet od tego jakiej przeglądarki używasz :/ ) tak naprawdę nie mamy algorytmicznego rozwiązania problemu czy choćby podejścia innego niż wspomniane w podanych przez Ciebie plikach i moim opisie. Soft googla się komuś przyda zapewne, ale sam temat wciąż pozostaje otwarty jeśli chodzi o samodzielną implementację.
fiasko
No widzisz smile.gif - w samym PHP się nie da.

Próbuję napisać klasę na używanie Google jak API.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.