Kirjoittaja Aihe: Webbisivu puheeksi festivalilla  (Luettu 2610 kertaa)

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Webbisivu puheeksi festivalilla
« : 13.05.11 - klo:17.31 »
Festival antaa huomattavasti paremman suomenkielisen puheen kuin esimerkiksi espeak. (Tämä ohje testattu Ubuntu 11.04 fresh install.)

Koodia: [Valitse]
sudo apt-get install festvox-suopuhe-mv festvox-suopuhe-lj lame
Tämän jälkeen testaan festivalin toimivuutta lyhyellä tekstitiedostolla INPUT.txt, johon geditillä tallensin pätkän suomenkielistä tekstiä, jossa on ä ja ö; kuuntelussa ctrl-c = hyppää eteenpäin tekstissä.

Koodia: [Valitse]
cat INPUT.txt | iconv -f UTF-8 -t ISO8859-1 -c | festival --language finnish --tts
Kuinka saan webbisivun puheeksi?

Koodia: [Valitse]
sudo apt-get install w3m
Tulostan sivun http://m.hs.fi/ äänitiedostoon PUHE.wav

Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | text2wave -otype wav -eval '(language_finnish)' -o PUHE.wav
Tulostan sivun mp3 äänitiedostoon. - Mutta tämä ei toimi vaikka lame sinänsä toimii. Mikä mahtaa olla vikana?

Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | text2wave -otype wav -eval '(language_finnish)' -o - | lame - PUHE.mp3
Lopuksi kuuntelen tuon webbisivun suoraan "on-line".

Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | festival --language finnish --tts -
« Viimeksi muokattu: 13.05.11 - klo:20.40 kirjoittanut K-Veikko »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11479
    • Profiili
    • Tomin kotisivut
Vs: Webbisivu ääneksi festivalilla
« Vastaus #1 : 13.05.11 - klo:17.41 »
Tulostan sivun mp3 äänitiedostoon. - Mutta tämä ei toimi vaikka lame sinänsä toimii. Mikä mahtaa olla vikana?

Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | text2wave -otype wav -eval '(language_finnish)' -o - | lame - PUHE.mp3
Toimisiko tämä paremmin (en testannut):
Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | text2wave -otype wav -eval '(language_finnish)' -o /dev/stdout | lame - PUHE.mp3
Muokkaus: Kyllä mulla molemmat toimii.
Muuten hieno ohje/vinkki. Tätä pitää joskus kokeilla. :)
« Viimeksi muokattu: 13.05.11 - klo:17.45 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: Webbisivu ääneksi festivalilla
« Vastaus #2 : 13.05.11 - klo:18.07 »
Toimisiko tämä paremmin (en testannut):
Koodia: [Valitse]
w3m -dump http://m.hs.fi/ | iconv -f UTF-8 -t ISO8859-1 -c | sed '1,10d' - | text2wave -otype wav -eval '(language_finnish)' -o /dev/stdout | lame - PUHE.mp3

Tämä toimii. Kiitos.

Kun outputin ohjaa UbuntuOne'n musiikkikansioon (tai vaikkapa wippiesin musiikkikansioon), ovat haetut sivut kuunneltavissa sieltä vaikka mobiilisti.

Seuraava vaihe on laittaa serverille stream player, jonka valikosta klikkaamalla serveri hakee halutun sivun uusimman version ja soittaa sen. Valikon sisältö tulee [tämän hs.fi'n] otsikoista ja klikkauksella valitaan kyseiseen otsikkoon liittyvä linkki downloadausta varten.

  • Serverin soittosivu voisi listata etusivun otsikot, joiden edessä on rasti ruutuun. Ruksaamalla kuunneltavat sivut (ja javascript appletissa jopa järjestelemällä soittolistaa hiirellä), saa selaimelle soittolistan.
  • Kun soitin pyytää listassa seuraavaa kappaletta, niin se haetaan vasta silloin. Tällä tavalla luettava sivu on mahdollisimman tuore (esim keskustelupalstan kuunteleminen) eikä kuunneltavia sivuja haeta turhaan (soitto lopetettu). Jos tämä reaaliaikainen haku aiheuttaa liikaa viivettä, serveri voisi hakea kaksi ensimmäistä kappaletta. Kun kakkoskappaleen soittaminen aloitetaan, hakee se kolmosen jne.
  • Myös mainosten lisääminen kappaleiden väliin (tai vaikkapa sisään) on helppoa.

Taas ajatus lensi kykyjeni ohi. Etenkin tuo serveripuolen toteutus. Tekstin putsaus kuunneltavaksi kyllä onnistuu. Tällä hetkellä muokkaan tekstiä näin:

Koodia: [Valitse]
| sed '1,/poista_alusta_kaikki_tähän_tekstiin_asti/d' | sed '/poista_tästä_tekstistä_alkaen_kaikki_loppuun_asti/,$ d'  | sed  's/\-\{1,\}\|\–\{1,\}\|\?\{1,\}\|\!\{1,\}\|\;\{1,\}\|\:\{1,\}\|\,\{1,\}\|\.\{1,\}\|\^\{1,\}\|\"\{1,\}\|\/\{1,\}\|\«\{1,\}\|\»\{1,\}\|^\[.*\]$\|Sivun alkuun Kommentoi\|^Tweet$/\n\n/g' |

# Kaikki erikoismerkit kannattaa muuttaa kappaleen vaihdoksi - kuulostaa paremmalta.
# Nämä sed-jutut kannattaa tehdä (alkuperäisestä poiketen) ennen tuota iconv-muunnosta.

Äänen jälkeen kehityskaaressa tulee tietenkin video. Puhuva pää.

Aluksi vain pelkkä puhuva pää, mutta pian se kehittyy hauskaksi hahmoksi, joka puheen lomassa tekee erilaisia hauskoja temppuja. Kertoo lapsellisia vitsejä väliin, tanssii seksikkäästi tai vaikkapa juo viinaa taskumatista.

  • Tämä hauskuus on aivan kriittisen olennaista ohjelman kehitykselle. Se toimii hunajapurkkina, joka houkuttelee massoittain käyttäjiä sovellukselle. Kun miljoona katsojaa on nähnyt vitsikkään puhuvan pään, mahtuu joukkoon jo sata potentiaalista kehittäjää, jotka osaavat tehdä vieläkin paremman version ... - Internettiäkään ei olisi olemassa nykylaajuudessa, ellei pornosivuja olisi keksitty.
  • No honey, no money, no fun.

Pian keskustelupalstan videoversiossa lukijan kasvot kehittyvät kirjoittajan avatarin näköiseksi ja lukijan äänikin muuttuu kirjoittajan valitsemaksi tai itse tekemäksi "oma ääni" -versioksi.

Oman äänen tekemiseen festival on ehkä paras vapaasti saatavilla oleva text to speech -ohjelma.
« Viimeksi muokattu: 17.05.11 - klo:13.48 kirjoittanut K-Veikko »

K-Veikko

  • Käyttäjä
  • Viestejä: 309
    • Profiili
Vs: Webbisivu puheeksi festivalilla
« Vastaus #3 : 15.05.11 - klo:15.54 »
Festivalin kehittämisessä itsellä olisi ensimmäinen toive saada text2wave -ohjelmaan normaalit command-line optiot jotka toteuttavat ohjelman "lisp-expressioita".

Ainakin kielioptiot ja "(voice.list)". Nyt en osaa toistaa suomen naisäänellä vaikka se on asennettu. Vahingossa sain sen kerran toimimaan säheltäessäni tuossa lisp-promptissa. Joidenkin ohjeiden mukainen "--language finnishf" ei toimi.

  • Nyt optiot pitää antaa tuon -eval option jälkeen suluissa olevina "lisp s-expression"'eina. Enkä edes tiedä miten useita expressioita annetaan, laitetaanko peräkkäisiä sulkuja peräkkäisten lainausmerkkien sisään vaiko eri expressiot jollain merkillä erotettuna samojen sulkujen sisään. Jo sana lisp kuulostaa siltä, kuin sillä olisi jotain tekemistä lizard'ien kanssa.

Paras löytämäni manuaali on
http://www.cstr.ed.ac.uk/projects/festival/manual/
Sama postscript versiona
http://www.cstr.ed.ac.uk/projects/festival/manual/festival-1.4.0.ps.gz

Kuriositeettina laitan, että manuaalin voi kätevästi ladata curl ohjelmalla nykyiseen hakemistoon (36 klikattavaa html sivua)

Koodia: [Valitse]
curl --remote-name   http://www.cstr.ed.ac.uk/projects/festival/manual/festival_toc.html  --remote-name    http://www.cstr.ed.ac.uk/projects/festival/manual/festival_[1-35].html
« Viimeksi muokattu: 15.05.11 - klo:16.08 kirjoittanut K-Veikko »