Ubuntu Suomen keskustelualueet
Ubuntun kehittäminen ja yhteisö => Oppaiden kehittäminen => Aiheen aloitti: Jiku - 22.03.07 - klo:17.09
-
HUOM! Tämä on keskustelu festvox-suopuheen asentamiseen liittyvistä asioista.
Varsinainen ohje jolla Ubuntu saadaan tuottamaan puhetta suomeksi löytyy
täältä! (http://wiki.ubuntu-fi.org/Wiki/festvox-suopuhe)
Wiki: festvox-suopuhe: http://wiki.ubuntu-fi.org/Wiki/festvox-suopuhe (http://wiki.ubuntu-fi.org/Wiki/festvox-suopuhe)
edit2: Poistin ohjeen tästä kun ohje ei ollut ajantasalla enää enkä jaksanut päivittää. Ajantasainen ohje wikissä.
-
Putetaan tässä vielä tuo sano -skriptin sisältö, kun eihän kukaan halua ladata sikaa säkissä..
echo $* > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2 >/dev/null
jossa
echo $* > /tmp/ttv #tallennetaan komentoriviltä annetut parametrit tiedostoon
&& #odotetaan että edellinen komento on suoritettu
iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 #Festival haluaa saada ISO8859-1 tiedoston. oleellista skandien kannalta. muutetaan tiedosto sellaiseksi.
&& #odotetaan että edellinen komento on suoritettu
festival --tts /tmp/ttv2 >/dev/null #puhutaan ääneen annettu teksti ja heitetään tuloste virheilmoituksia lukuunottamatta bittien taivaaseen.
#virheilmoituksista tulee näytölle tekstiä ja en keksinyt miten sen saa pois..
-
Hehe, tämäpä on hauska ja yllättävän toimiva.
Kätevämpää on muuten laittaa scripti puhuman suoraan leikepöydän sisältö. Tämä onnistuu helposti KDE:ssä dcop:n avulla.
/bin/sano
#!/bin/bash
if [ -z "$1" ] ; then
dcop klipper klipper getClipboardHistoryItem 0 > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2 >/dev/null
else
echo $* > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2 >/dev/null
fi
exit 0
Hommaa vielä voisi helpottaa tekemällä tuolle pikanäppäin yhdistelmän.
-
Hauska ohje :D
-
mulle tulee virheilmoitus
Linux: can't open /dev/dsp
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb71b17a8>
-
Niin miulekkii, mutta silti toimii.
#virheilmoituksista tulee näytölle tekstiä ja en keksinyt miten sen saa pois..
-
Samat virheilmoitukset tulee minullakin.
-
tällaian tuli heti ensimmäisen komennon jälkeen...
tauno@tauno-laptop:~$ sudo apt-get install festvox-suopuhe-common festvox-suopuhe-lj festvox-suopuhe-mv libestools1.2 festival festlex-poslex
Password:
Luetaan pakettiluetteloita... Valmis
Muodostetaan riippuvuussuhteiden puu... Valmis
E: Pakettia festvox-suopuhe-common ei löytynyt
"Pakettia festvox-suopuhe-common ei löytynyt"?? :'(
-
Ubuntun saa aika helposti tuottamaan suomenkielistä puhetta äänikortin kautta.
Sain noiden ohjeiden homman pelittämään, kiitokset jikulle.
Kätevä fala text reader for gnome toimii loistavasti, mutta ääkköset tulee ulos muodossa "viiva tuntematon merkki". Jos taas käytän "sano" -skriptiä, ääkköset tulee aivan oikein. Saako festivalin jotenkin ymmärtämään UTF-8 skandeja ohjelman tasolla, siten että esim fala ja muut festivalia hyödyntävät ohjelmat osaisivat käsitellä ääkkösiä oikein?
-
Tuli muuten eteen ongelma, johon en keksinyt helppoa ratkaisua.
Pitäisi saada festival kaksikieliseksi niin että skripti sanosv puhuisi ruotsia ja sanofi suomea.
Miten tämä pitäisi ratkaista?
Mietin että saisiko festivalista ajettua kahta eri prosessia, joista toinen olisi suomenkielisillä äänteillä ja toinen ruotsinkielisillä?
Alkuun kokeilin että tuottaisin ruotsinkielisen puheen suomenkielen äänteillä kirjoittamalla sanat niin kuin ne suomeksi lausutaa. Lopputulos kuulosti lähinnä säälittävältä.
Kaikki pienetkin ideat olisi nyt tervetulleita!
-
Kätevämpää on muuten laittaa scripti puhuman suoraan leikepöydän sisältö.
Tämä on hiukan offtopic, mutta kuitenkin: käännöksiä korjaillessani olen ihmetellyt tätä puhua-verbin käyttämistä. Eikös lukea sopisi paremmin?
-
mulle tulee virheilmoitus
Linux: can't open /dev/dsp
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb71b17a8>
Niin minullekin aluksi. Tosin kun kokeilin myöhemmin taas tuota, niin alkoi ääni kuulua virheilmoituksesta huolimatta. Ilmeisesti koneen uudelleenkäynnistyksellä on vaikutusta? Ei riitä että käynnistää festivalin uudestaan.
otto@HPG5050EO:~/Ubuntu/festival$ sanon tämän pitäisi kuulemma kuulostaa naiselta
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb71e03d8>
otto@HPG5050EO:~/Ubuntu/festival$ sano ja tämän mieheltä
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb71e3c48>
otto@HPG5050EO:~/Ubuntu/festival$ sanoe well, now i can speak english also
SIOD ERROR: unbound variable : voice_ked_diphone
festival: fatal error exiting.
otto@HPG5050EO:~/Ubuntu/festival$
..tosin englanninkielinen ääni ei toimi vieläkään..
-
otto@HPG5050EO:~/Ubuntu/festival$ sanoe well, now i can speak english also
SIOD ERROR: unbound variable : voice_ked_diphone
festival: fatal error exiting.
otto@HPG5050EO:~/Ubuntu/festival$
..tosin englanninkielinen ääni ei toimi vieläkään..
Noissa konffitiedostoissa ja skripteissä näkyi olevan enemmän ja vähemmän virheitä.
Yritin korjata ne nyt. Toivottavasti en tehnyt sitten uusia virheitä, mutta
muijan koneella testasin niin toimi.
-
:D
kyllä pitää olla kiva juttu...
kiitos heille joille kiitos kuuluu.
-
Onko kellään tietoa voiko tätä käyttää esim tietokoneen käynnistyessä
esim. ilmoittaa paljonko kello on ja päivämäärään?
ja toivottaa hyvää päivää:)
ja voiko tätä jotenkin kytkeä koko tietokoneen käyttäytymiseen toimintoja tehdessä.
esim. tietyn ohjelman avaaminen ilmoittaa tietyn asian?
-
tällaisen pikaisesti kehittelin:
terve.bash
#!/bin/bash
kayttaja=`whoami`
viikonpaiva=`date +%A`
kuukausi=`date +%Bta`
pv=`date +%d`
tunti=`date +%k`
minuutti=`date +%M`
vrkaika="yötä"
if [ $tunti -ge 5 ]
then vrkaika="huomenta"
fi
if [ $tunti -ge 11 ]
then vrkaika="päivää"
fi
if [ $tunti -ge 17 ]
then vrkaika="iltaa"
fi
if [ $tunti -ge 22 ]
then vrkaika="yötä"
fi
if [ $pv = "1" ]
then pv="ensimmäinen"
elif [ $pv = "2" ]
then pv="toinen"
elif [ $pv = "3" ]
then pv="kolmas"
elif [ $pv = "4" ]
then pv="neljäs"
elif [ $pv = "5" ]
then pv="viides"
elif [ $pv = "6" ]
then pv="kuudes"
elif [ $pv = "7" ]
then pv="seitsemäs"
elif [ $pv = "8" ]
then pv="kahdeksas"
elif [ $pv = "9" ]
then pv="yhdeksäs"
elif [ $pv = "10" ]
then pv="kymmenes"
elif [ $pv = "11" ]
then pv="yhdestoista"
elif [ $pv = "12" ]
then pv="kahdestoista"
elif [ $pv = "13" ]
then pv="kolmastoista"
elif [ $pv = "14" ]
then pv="neljästoista"
elif [ $pv = "15" ]
then pv="viidestoista"
elif [ $pv = "16" ]
then pv="kuudestoista"
elif [ $pv = "17" ]
then pv="seitsemästoista"
elif [ $pv = "18" ]
then pv="kahdeksastoista"
elif [ $pv = "19" ]
then pv="yhdeksästoista"
elif [ $pv = "20" ]
then pv="kahdeskymmenes"
elif [ $pv = "21" ]
then pv="kahdeskymmenesensimmäinen"
elif [ $pv = "22" ]
then pv="kahdeskymmenestoinen"
elif [ $pv = "23" ]
then pv="kahdeskymmeneskolmas"
elif [ $pv = "24" ]
then pv="kahdeskymmenesneljäs"
elif [ $pv = "25" ]
then pv="kahdeskymmenesviides"
elif [ $pv = "26" ]
then pv="kahdeskymmeneskuudes"
elif [ $pv = "27" ]
then pv="kahdeskymmenesseitsemäs"
elif [ $pv = "28" ]
then pv="kahdeskymmeneskahdeksas"
elif [ $pv = "29" ]
then pv="kahdeskymmenesyhdeksäs"
elif [ $pv = "30" ]
then pv="kolmaskymmenes"
elif [ $pv = "31" ]
then pv="kolmaskymmenesensimmäinen"
fi
lause="hyvää "$vrkaika" "$kayttaja". tänään on "$viikonpaiva" "$pv" päivä "$kuukausi". kello on "$tunti" "$minuutti
echo $lause>/tmp/ttv
iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2
festival --tts /tmp/ttv2 >/dev/null
se ajetaan komentamalla
bash terve.bash
ja se toivottelee tyyliin:
hyvää päivää jani. tänään on maanantai kahdeskymmenesviides päivä helmikuuta. kello on 15 28
joku muu osaa varmaan kertoa miten sen saa koneen käynnistyessä automaattisesti suoritettua, koska itse en sitä osaa neuvoa. se pitäisi siis sellaisessa vaiheessa suorittaa jossa tuo festival on jo käynnissä.
ja ladata voi tästä:
http://personal.inet.fi/koti/jiku/doc-sv/terve.bash (http://personal.inet.fi/koti/jiku/doc-sv/terve.bash)
edit:
ja saahan festivalin kertomaan kun joku ohjelma avataan/suljetaan kun tekee työpöydälle käynnistimen jonka komento on:
sano firefox käynnistyy & firefox && sano firefox suljettu
-
ja se toivottelee tyyliin:
hyvää päivää jani. tänään on maanantai kahdeskymmenesviides päivä helmikuuta. kello on 15 28
joku muu osaa varmaan kertoa miten sen saa koneen käynnistyessä automaattisesti suoritettua, koska itse en sitä osaa neuvoa. se pitäisi siis sellaisessa vaiheessa suorittaa jossa tuo festival on jo käynnissä.
Kas, osaa oikealla nimellä tervehtiä vaikkei käyttäjänimi olekaan jani ;D
Varmaan Gnomen istunnot -> autom. käynnistyvät voisi olla oikea.
-
Tiivistän tähän lähinnä itselleni nuo wikissä mainitut komennot testausta varten (copypaste :)
sudo apt-get install festvox-suopuhe-common festvox-suopuhe-lj festvox-suopuhe-mv libestools1.2 festival festlex-poslex
wget http://personal.inet.fi/koti/jiku/doc-sv/festival.scm
sudo rm /etc/festival.scm
sudo cp festival.scm /etc/festival.scm
sudo /etc/init.d/festival restart
wget http://personal.inet.fi/koti/jiku/doc-sv/sano
chmod a+x sano
sudo cp sano /bin/
Gutsyllä nämä ajelin ja mitään ei kuulu - miten lähteä debuggaamaan?
r
-
joo toi uusi skripti piilottaa virheilmoitukset kokonaan. ei tullut mieleen että ongelmatilanteessa se on aika huono homma..
echo päivää > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
sanoo mulla puheen mutta ilmoittaa virheen:
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb7137c18>
tuleeko sulla tuon virheen lisäksi jotain muuta?
muijan koneella tuli vähän väliä ilmoituksia että äänikorttia ei voitu avata. tiedä sitten minkä takia kun ei sitä mikään ohjelma varannutkaan ollut..
-
rhk@rubert:~$ echo päivää > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
Linux: can't open /dev/dsp
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb71bed18>
KDE:lla mennään, siinä on jotain häikkää käsittääkseni joskus noiden äänilaitteiden varaamisten kanssa joten voi liittyä siihen. Muuten äänet kyllä toimii ok.
r
-
juuri tuo sama ilmoitus kun muijan koneella..
outoa kun itsellä tota ei tule koskaan vaikka on myös kubuntu kde-työpöydällä..
onkohan tuolla system settingsissä olevalla äänijärjestelmä > laitteisto jotain tekemistä asian kanssa?
itse olen sen pakottanut käyttämään alsaa.
edit: mulla on siinä yleiset-välilehdellä myös: siirry valmiustilaan automaattisesti 5 sekunnin kuluttua
http://wiki.ubuntu-fi.org/festvox-suopuhe
-
Hmm.. mulla ei ollut päällä edes koko täppä 'käytä äänijärjestelmää' mutta niin vain äänet pääsääntöisesti pelaa. Ei myöskään vaikutusta vaikka alsaa kokeilin. Pitää koittaa joskus bootin jälkeen koittaa. Ja minulla on ollut tuo valmiustila-asetus 1s:ssa (tosin deaktivoituna koska koko äänijärjestelmä on tuon mukaan ollut poissa pelistä.. usko nyt sitten tuota..)
r
-
jotenkin tuo äänijärjestelmä näemmä tähän vaikutti kun säätelin sitä niin sain ensimmäistä kertaa omalla koneella tuon
Linux: can't open /dev/dsp -herjan.
eikä sitten lähtenyt toimimaan ennen reboottia vaikka asetukset palauttikin entiseksi.
ehkä rebootti oli vähän hätävarjelun liioittelua ja pelkkä alsan uudelleenkäynnistyskin olisi riittänyt..
-
ehkä rebootti oli vähän hätävarjelun liioittelua ja pelkkä alsan uudelleenkäynnistyskin olisi riittänyt..
Sitäkin kokeilin muttei pelannut: ilmeisesti minulla on asetukset jotenkin pielessä..
r
-
viikon verran ubuntua käyttäneenä onnistuin saada toimimaan tuon puhe jutun, ihme sinänsä et saan jotain toimimaa. ;) ;D
-
viikon verran ubuntua käyttäneenä onnistuin saada toimimaan tuon puhe jutun, ihme sinänsä et saan jotain toimimaa. ;) ;D
Mutta aloitit ainakin oikealla tavalla, eli miten asennetaan jotain päätteen kautta :D
Se on hyvä opetella jo alussa kun sillä tavalla voi tehdä yksiselitteisiä ohjeita, joita on helppo noudattaa.
Tuon suomipuheen asennuksen toki voisi tehdä ihan graafisilla työkaluillakin, mutta
ohjeista siihen olisi tullut vähintäänkin epäselkeät tyyliin klikkaa sitä ja sitä ja sitten sitä ja tätä.
Ja kerran tuo opettelu vain kirpaisee. Nythän voit wikin ohjeiden mukaan asennella ihan mitä tahansa!
Ubuntussa on se hyvä puoli että ohjeita on tarjolla mieletön määrä ja suomeksikin paljon.
-
Hardyssä ohje toimii ok, kunhan pistää aina komennon alkuun pasuspender - komennon. Valittaa muutoin tuosta /dev/dsp - virhettä.
-
Joskus aikaisemmin sain jo tämän toimimaan, mutta nyt muutamien päivitysten jälkeen ei enää juttele eikä puhele. Näköjään mpg123 toimii jos kutsuu sitä komennolla "aoss mpg123".
Tässä tuloste:
$ echo päivää > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
Linux: can't open /dev/dsp
SIOD ERROR: damaged env : #<UNKNOWN 12 0xb7162068>
-
Heh, olipas hyvä keksintö :p nyt voin kouluttaa koiraa ilman sanaakaan :p
-
Joskus aikaisemmin sain jo tämän toimimaan, mutta nyt muutamien päivitysten jälkeen ei enää juttele eikä puhele.
Bootti ratkaisi ongelman.
Onko mahdollista putkittaa tekstitiedoston tulostetta tuon sano -skriptin syötteeksi? Kokeilin seuraavia, eivätkä toimineet:
/bin/sanon `cat /home/user/puhe.txt`
cat /home/user/puhe.txt | /bin/sanon
-
Joskus aikaisemmin sain jo tämän toimimaan, mutta nyt muutamien päivitysten jälkeen ei enää juttele eikä puhele.
Onko mahdollista putkittaa tekstitiedoston tulostetta tuon sano -skriptin syötteeksi? Kokeilin seuraavia, eivätkä toimineet:
/bin/sanon `cat /home/user/puhe.txt`
cat /home/user/puhe.txt | /bin/sanon
Komennon nimi on /bin/sanon?
Kokeiles sanon < /home/user/puhe.txt
-
Komennon nimi on /bin/sanon?
Kokeiles sanon < /home/user/puhe.txt
[/quote]
sanon on oikea komento. Teknisesti tuon antamasi pitäisi toimia, mutta ei edelleenkään puhu eikä pukahda.
Homma toimii jos käytän seuraavaa:
echo `cat testi.txt` > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
mutta olisi mukavaa saada tuo skripti toimimaan suoraan. Miksi putkitus kusee tässä?
-
Komennon nimi on /bin/sanon?
Kokeiles sanon < /home/user/puhe.txt
sanon on oikea komento. Teknisesti tuon antamasi pitäisi toimia, mutta ei edelleenkään puhu eikä pukahda.
Homma toimii jos käytän seuraavaa:
echo `cat testi.txt` > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
mutta olisi mukavaa saada tuo skripti toimimaan suoraan. Miksi putkitus kusee tässä?
Oikea komento on /bin/sano
naisääni on /bin/sanon, jos se on lisätty
Tämä on siis tuon http://wiki.ubuntu-fi.org/festvox-suopuhe mukaan.
-
Homma toimii jos käytän seuraavaa:
echo `cat testi.txt` > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
mutta olisi mukavaa saada tuo skripti toimimaan suoraan. Miksi putkitus kusee tässä?
Kusee varmaan, koska tossa on toi toinen ohjaus. Jaa-ah, en pääse nyt testailemaan, mut jos toimii noin niin eiks se oo ihan hyvä? ;D
-
Homma toimii jos käytän seuraavaa:
echo `cat testi.txt` > /tmp/ttv && iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 &&festival --tts /tmp/ttv2
mutta olisi mukavaa saada tuo skripti toimimaan suoraan. Miksi putkitus kusee tässä?
Kusee varmaan, koska tossa on toi toinen ohjaus. Jaa-ah, en pääse nyt testailemaan, mut jos toimii noin niin eiks se oo ihan hyvä? ;D
Olisi mukava saada yksi komento jonka perään heittää parametriksi tekstitiedoston nimi.
Oikeestaan tämä on niin mahtava juttu, että hommaa voisi kehittää siten, että skriptille voisi tarjota txt tiedoston lisäksi .doc, .pdf ja .odt tiedostoja - ja miksei muitakin formaatteja. Lähdetiedoston voi lukea sopivalla ohjelmalla, kuten antiword, pdftotext, odt2txt, ps2txt jne, tulosteen taas syöttää tuolle lue skriptille. Jos tällaisen saisi tuotettua, olisi mukava pyöräyttää tuo skripti vaikka nautiluksessa right-clickillä, ja kuunnella pdf-dokumentti samalla kun tiskaa astioita..
-
tässä skripti tekstitiedoston lukemiseen:
wget http://personal.inet.fi/koti/jiku/doc-sv/sanot
sudo cp sanot /bin
sudo chmod a+x /bin/sanot
ja kokeillaan toimiiko:
echo hyvää päivää. kokeillaan tiedoston puhumista. >tekstitiedosto
sanot tekstitiedosto
eli tuolla sanot-komennolla pitäisi tavallinen tekstitiedosto saada luettua ääneen.
en itse päässyt tuota testaamaan kun hardyssä tuo festival ei vielä oikein kunnolla toimi.
edit: mistähän sain päähäni ettei hardyssä toimi. no kokeilemalla selvisi että hyvin tässäkin toimii..
tiedosto /etc/init.d/festival vain puuttuu. lienenkö itse kämmännyt sen kadoksiin..
[/edit]
tuotahan tosiaan voisi kehitellä vaikka millä tavalla, että se lukisi kaikennäköisiä tiedostoja.
rohkeasti vain puukottamaan skriptejä, niiden perusajatus on siirtää teksti tiedostoon /tmp/ttv ja sitten iconv korjaa skandit tallentaen korjatun tekstin tiedostoon /tmp/ttv2. festival sitten lukee ääneen tuon tiedoston /tmp/ttv2.
-
Tässä pieni scripti irssille, joka puhuu kaiken kanavalle sanotun tekstin suomeksi.
!HUOM! - tämä ei ole mun tekemä, olen vain törkeästi muokannut alkuperäistä festival.pl scriptiä (tekijän tiedot scriptin headereissä)
#! /usr/bin/perl -w
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "0.1fin";
%IRSSI = (
authors => 'Andrzej Zaborowski',
contact => 'balrog@zabor.org',
name => 'festival',
description => 'Sends channel messages to the speech daemon',
license => 'BSD',
url => 'http://www.zabor.org/balrog',
);
use Irssi;
my $saycmd = "iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2 && festival --tts /tmp/ttv2";
my $log = "~/.irssi/festival.log";
sub mangle_string {
my ($msg) = @_;
$msg =~ s/\'//g;
$msg =~ s/\`//g;
$msg =~ s/\:\)/ /g;
$msg =~ s/\;/ /g;
$msg =~ s/\(/ /g;
$msg =~ s/\)/ /g;
$msg =~ s/\;[()]/ /g;
$msg =~ s/\:\// /g;
$msg =~ s/\:\>/ /g;
$msg =~ s/\:D/ /g;
$msg =~ s/\:keskisormi:/ /g;
$msg =~ s/\:p/ /g;
$msg =~ s/\prkl/peruna/g;
$msg =~ s/\http:*/ /g;
$msg =~ s/\jne/jii än ee/g;
$msg =~ s/\www./vee vee vee piste/g;
$msg =~ s/\:[Yy][Ee][Ss]:/jees/g;
$msg =~ s/\:[Nn][Oo]:/nou/g;
$msg =~ s/[Ll][Oo][Ll]/ /g;
$msg =~ s/[Ee][Vv][Oo]/et vaa osaa/g;
$msg =~ s/[Vv][Mm][Pp]/hitto mitä roskaa/g;
$msg =~ s/btw/baitevei/g;
$msg =~ s/wtf/ vattefak /g;
$msg =~ s/yes/jees/g;
$msg =~ s/£/punta/g;
$msg =~ s/[Mm]icrosoft/maikrosoft/g;
$msg =~ s/:[Tt][Uu][Oo][Pp][Pp][Ii]:/ /g;
$msg =~ s/fuck/fak/g;
$msg =~ s/[1234567890][1234567890]:[1234567890][1234567890]/kellon aika/g;
$msg =~ s/[Rr][Tt][Ff][Mm]/lue manuska/g;
$msg =~ s/hm*/mmm/g;
$msg =~ s/^/ /g;
$msg =~ s/=/ = /g;
$msg =~ s/IP/ iipee /g;
$msg =~ s/DRI/ dee är ii /g;
$msg =~ s/opengl/ ouppen gee äl /g;
$msg =~ s/glxgears/ gee äl äks gears /g;
$msg =~ s/glxinfo/ gee äl äks info /g;
$msg =~ s/thx/ /g;
$msg =~ s/([Hh][Aa])+[Hh]?/HAHAH/g;
return $msg;
}
sub message_public {
my ($server, $msg, $nick, $address, $channel) = @_;
my $twin = Irssi::window_find_item($channel);
my $awin = Irssi::active_win();
if (!defined($twin) || $twin->{refnum} ne $awin->{refnum}) {
return;
}
$msg = mangle_string($msg);
system("echo \'$nick sanoo. $msg\' > /tmp/ttv | $saycmd >> $log 2>&1 &");
}
sub message_private {
my ($server, $msg, $nick, $address, $channel) = @_;
$msg = mangle_string($msg);
system("echo \'$nick sanoo. $msg\' > /tmp/ttv | rm $log && touch $log | $saycmd >> $log 2>&1 &");
}
sub message_irc_action {
my ($server, $msg, $nick, $address, $channel) = @_;
my $twin = Irssi::window_find_item($channel);
my $awin = Irssi::active_win();
if (!defined($twin) || $twin->{refnum} ne $awin->{refnum}) {
return;
}
$msg = mangle_string($msg);
system("echo \'$nick $msg\' > /tmp/ttv | $saycmd >> $log 2>&1 &");
}
Irssi::signal_add("message public", "message_public");
Irssi::signal_add("message private", "message_private");
Irssi::signal_add("message irc action", "message_irc_action");
-
Hei
N Volk on tehnyt lavennin nimisen ohjelman, joka auttaa lukijaa lukemaan lyhenteitä yms. oikein. Eli tekemään samaa kuin ketjun lopussa oleva ohjelma. Volkin ohjelma pitäisi kuitenkin lukea luvut ym oikein. Lavennin on tehty perlillä ja antoi minulla joitakin virheilmoituksia (joista minulla ei ole pastettua kopia kun kovalevy hajosi ja tämä on uusi asennus jne.) joista yksi oli että filehandle oli suljettu ennenkuin print yritettiin käyttää.
Ja nyt itse kysymyksiin. Onko joku käyttänyt lavenninta ja saako sen helposti lisättyä osaksi festivalin käyttöä?
Minullakaan ei festivalin asennus tehnyt tiedostoa /etc/festival.scm.
Saako tuon scm:n kopsattua aikaisemmista kubuntu asennuksista?
Miten festivalin saa liitettyä kde:n kttsmgr kanssa toimimaan?
Anteeksi jos näistä joku on jo ukk:ssa.
t Jukka P.
-
:D tosi nastaa!!!
-
Kiitos Samulille wikin korjauksesta. Muutin nyt ne lisä-skriptitkin sinne /usr/local/bin -hakemistoon jonne noi kieltämättä kuuluukin.
Testivaiheessa laiskana sijoitin ne /bin -hakemistoon kun oli lyhyempi kirjoittaa :D Ja valitettavasti wikiin sitten jäi toi väärä paikka..
-J-
-
Kiitos Samulille wikin korjauksesta. Muutin nyt ne lisä-skriptitkin sinne /usr/local/bin -hakemistoon jonne noi kieltämättä kuuluukin.
Testivaiheessa laiskana sijoitin ne /bin -hakemistoon kun oli lyhyempi kirjoittaa :D Ja valitettavasti wikiin sitten jäi toi väärä paikka..
-J-
Toimii wikin ohje Jauntyssakin ilman sen kummempia virityksiä. Onkohan joku saanut nuo mainiot scriptit toimimaan kmouthin kanssa? Tai löytyykö jotakin muuta tapaa saada sekä nais-, että miesääni helposti kmouthiin? Ainakaan skriptin polku "Command for speaking text" -valintaan ei auta..
Tunnin googlaamisella ei auennut minulle..
-
https://help.ubuntu.com/community/TextToSpeech
Itselläni tuo virheilmoitus Linux: can't open /dev/dsp pulseaudion kanssa katosi kun lisäsin pätkän "(Parameter.set 'Audio_Method 'esdaudio)" /etc/festival.scm alkuun.
-
missähän noita ääniä saa muutettua, esim. tuo suopuhenainen hieman enemmän alieniksi
http://www.youtube.com/watch?v=cKyH2aEPM10 vähän tuon tapaiseksi ;)
-
Erinomainen juttu tämä, paljon kiitoksia kaikille tekijöille!
Asentelin wikin ohjeiden mukaan skriptitkin ilman ongelmia, ja kaikki toimii erinomaisesti!
Ympäristönä on MSI Wind 100 ja Ubuntu 9.10.
Tosin koska asennukseni on englanninkielinen, niin terve.bash sanoo tietenkin kuukaudet englanniksi,
mutta pieni käännöstyö on pahaillaan menossa. Ja MSIn äänenlaadussa ei tosiaan ole kehumista,
mutta sitä saa mitä ostaa...
-
Tuli kokeiltua tuota ohjetta pitkästä aikaa ja hyvin näkyy vieläkin toimivan. Ainut huomio on tuossa kun käynnistetään festival uudestaan. Ei nimittäin onnistu enää, eikä näytä olevan tarpeenkaan eli poistanen sen. Voisiko joku muu vielä kokeilla tuota, jotten turhaan hävitä. :)
-
muistaakseni jo karmic:n aikaan poistui tarve osalle komennoista.
siinä vaiheessa ajattelin että pidetään ohje versio-riippumattomana ja jätetään nuo turhat rivit siihen.
kun haittaakaan niistä ei ole.
nyt kuitenkin ollaan jo lucid:n ajassa niin nuo turhat rivit voisi poistaa jos joku haluaa sen tehdä.
Mikäli, Tomin, jaksat muokata sitä ohjetta nykyaikaan, niin me kaikki käyttäjät olisimme kiitollisia :D
mulla ei tässä koneessa ole vielä festivalia ja muuta, joten voisin sitten testata toimiiko ohje kun sitä vähän siistii!
-
nyt kuitenkin ollaan jo lucid:n ajassa niin nuo turhat rivit voisi poistaa jos joku haluaa sen tehdä.
Mikäli, Tomin, jaksat muokata sitä ohjetta nykyaikaan, niin me kaikki käyttäjät olisimme kiitollisia :D
No minäpä muokkasin, koska ei tuota ole vaikea palauttaakkaan (Wiki kun on), jos tulee tarvetta. Samalla pikkuisen viilasin tuota ja poistin nuo rm-komennot koska, kun pääkäyttäjän oikeuksin kopioidaan niin ei se välitä onko siellä alla jotain.
Muokkaus: Ei näytä välittävän muutenkaan.
-
Olen paketeista asentanut festivalin, Ubuntu 11.04. Naisääni on asennettuna, koska se toimii, jos kokeilen
festival
festival> (voice_suo_fi_lj_diphone)
suo_fi_lj_diphone
festival> (SayText "Terve maailma")
Miesäänen saan mp3 tiedostoon komennolla
cat kokeilu.txt | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(language_finnish)' -o - | lame - kokeilu.mp3
Miten tuota komentoa pitäisi muuttaa, jotta saisin tulostettua naisäänen?
P.S.
Tämän tiedoston haluaisin miehen ja naisen vuoropuheluksi (sivun lopussa on linkki festivalia varten muokattuun tekstitiedostoon):
http://kanteletar.suokukko.com/kanteletar/alkulause/0-015-poika-ja-tyttoe
-
Periaatteessa sen pitäisi onnistua, kun vaihdat eval-parametrin:
-eval "(voice_hy_fi_mv_diphone)"
Festivalissa voit katsoa mitä ääniä on asennettuna:
$ festival
Festival Speech Synthesis System 1.96:beta July 2004
Copyright (C) University of Edinburgh, 1996-2004. All rights reserved.
For details type `(festival_warranty)'
festival> (voice_[TAB]
voice_hy_fi_mv_diphone voice_rab_diphone voice_us3_mbrola
voice_kal_diphone voice_reset
voice_ked_diphone voice_us1_mbrola
voice_msu_ru_nsh_clunits voice_us2_mbrola
festival> (voice_
Eval-parametrejä voi antaa myös useampia, esimerkiksi äänen nopeuden muuttamiseksi:
text2wave -eval "(voice_us1_mbrola)" -eval "(Parameter.set 'Duration_Stretch 0.80)" test.txt -o test.wav
-
Periaatteessa sen pitäisi onnistua
Toimii! Kiitos. Tuloksen voi kuunnella edellä olevasta linkistä.
Kiitokset myös tuosta lisäoptiosta "(Parameter.set 'Duration_Stretch 0.80)". Olisikohan sellaista optiota, jolla äänenvoimakkuutta voi säätää; perusasetuksilla nainen puhuu kovemmalla äänellä kuin mies. Samoin naisääni lienee keskeneräinen, koska tuli paljon "UniSyn: using default diphone #-# for n-k" ja vastaavia virheilmoituksia.
Festivaliin on ollut tosi vaikea löytää ymmärrettäviä ohjeita. Olisi mahtavaa jos joku täydentäisi man -sivun ohjelmalle text2wave siten, että kaikki erilaiset optiot ainakin lueteltaisiin.
- Festivalin ja vapaiden äänitiedostojen kehittäminen pitäisi kuulua osaksi tietotekniikan opetusta. Sillä tavalla vapaasti saatavana olevan äänen laatu ja valikoima paranisi vuosi vuodelta. – Eikä se ainakaan huonontaisi suomenkielen asemaa digitaalisessa maailmassa.
Käytin komentoa
cat $i | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_hy_fi_mv_diphone)' -o - | lame - $i.poika.mp3
ja
cat $i | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_suo_fi_lj_diphone)' -o - | lame - $i.tytto.mp3
lopuksi yhdistin äänitiedostot
cat *.mp3 > poika-ja-tytto.mp3
-
tällaisen pikaisesti kehittelin:
terve.bash
#!/bin/bash
kayttaja=`whoami`
viikonpaiva=`date +%A`
kuukausi=`date +%Bta`
pv=`date +%d`
tunti=`date +%k`
minuutti=`date +%M`
vrkaika="yötä"
if [ $tunti -ge 5 ]
then vrkaika="huomenta"
fi
if [ $tunti -ge 11 ]
then vrkaika="päivää"
fi
if [ $tunti -ge 17 ]
then vrkaika="iltaa"
fi
if [ $tunti -ge 22 ]
then vrkaika="yötä"
fi
if [ $pv = "1" ]
then pv="ensimmäinen"
elif [ $pv = "2" ]
then pv="toinen"
elif [ $pv = "3" ]
then pv="kolmas"
elif [ $pv = "4" ]
then pv="neljäs"
elif [ $pv = "5" ]
then pv="viides"
elif [ $pv = "6" ]
then pv="kuudes"
elif [ $pv = "7" ]
then pv="seitsemäs"
elif [ $pv = "8" ]
then pv="kahdeksas"
elif [ $pv = "9" ]
then pv="yhdeksäs"
elif [ $pv = "10" ]
then pv="kymmenes"
elif [ $pv = "11" ]
then pv="yhdestoista"
elif [ $pv = "12" ]
then pv="kahdestoista"
elif [ $pv = "13" ]
then pv="kolmastoista"
elif [ $pv = "14" ]
then pv="neljästoista"
elif [ $pv = "15" ]
then pv="viidestoista"
elif [ $pv = "16" ]
then pv="kuudestoista"
elif [ $pv = "17" ]
then pv="seitsemästoista"
elif [ $pv = "18" ]
then pv="kahdeksastoista"
elif [ $pv = "19" ]
then pv="yhdeksästoista"
elif [ $pv = "20" ]
then pv="kahdeskymmenes"
elif [ $pv = "21" ]
then pv="kahdeskymmenesensimmäinen"
elif [ $pv = "22" ]
then pv="kahdeskymmenestoinen"
elif [ $pv = "23" ]
then pv="kahdeskymmeneskolmas"
elif [ $pv = "24" ]
then pv="kahdeskymmenesneljäs"
elif [ $pv = "25" ]
then pv="kahdeskymmenesviides"
elif [ $pv = "26" ]
then pv="kahdeskymmeneskuudes"
elif [ $pv = "27" ]
then pv="kahdeskymmenesseitsemäs"
elif [ $pv = "28" ]
then pv="kahdeskymmeneskahdeksas"
elif [ $pv = "29" ]
then pv="kahdeskymmenesyhdeksäs"
elif [ $pv = "30" ]
then pv="kolmaskymmenes"
elif [ $pv = "31" ]
then pv="kolmaskymmenesensimmäinen"
fi
lause="hyvää "$vrkaika" "$kayttaja". tänään on "$viikonpaiva" "$pv" päivä "$kuukausi". kello on "$tunti" "$minuutti
echo $lause>/tmp/ttv
iconv -f UTF-8 -t ISO8859-1 /tmp/ttv > /tmp/ttv2
festival --tts /tmp/ttv2 >/dev/null
Millähän kyseisen skriptin pätkän sais molkottomaan englantia? Varmaankin on joku kätevämpi keino kun se minkä itse keksin, että lataa tuon amerikanenglannin version myös ja korvaa siinä olevalla languages.scm tuon suomipuhe festivaalin festival.scm tiedoston. Eli tuo /etc/festival.scm korvataan /usr/share/festival/languages.scm tällä, yksinkertaisesti kopioidaan languages tuonne etc.n sisään ja nimetään festival.scm:ksi. Tuolleinhan sen saa puhumaan englantia mutta nyt ei vehje enään osaakkaan puhua suomea..
Toinen ongelma myös, että saakohan tuota puhumaan tunnit myös kokonaisina lukuina eli nyt kun skripti ilmoittaa esim kellonajan 11.25 niin puhe kuulostaa jotakuinkin tältä "oneone twentyfive" eli olisi hauska saada ymmärtämään, että se on "eleven twentyfive"
-
tällaisen pikaisesti kehittelin:
terve.bash
Itselläni tuo Englanti on oletuksena. Ubuntu 11.04.
Kokeilin skriptiä ja englanniksi puhui. Jos haluan suomeksi niin muutan viimeisen rivin muotoon:
festival --language finnish --tts /tmp/ttv2 >/dev/null
Vastaavasti kokeilisin ensiksi:
festival --language english --tts /tmp/ttv2 >/dev/null
Repositorysta pitää tietenkin olla asennettuna festvox-suopuhe-mv.
Itse muuttaisin skriptiä siten että se ei lausu käyttäjätunnusta vaan käyttäjätunnukseen liitetyn Käyttäjän Nimen.
-
Ei kyllä minulla mene noin yksinkertaisesti. Jos pelkän festivaalin asentaa ja koittaa skriptiä ajaa niin huutelee tämmöstä erroria SIDO ERROR: unbound variable: hy_fi_mv_diphone. Eli kovasti vissiin haluaisi että tuo suomipuhe olisi asennettuna. Suomeksi saan kyllä skriptin tulemaan jos vain asennan sen suomipuheen mutta mutta englantia ei osaa automaattisesti puhua ainakaan minulla.