Mikropuheeseen on lisätty ALSA-ääniajureiden käyttömahdollisuus ja käynnistysparametri käynnistämään Mikropuheen Speech Dispatcherin ohjaamana syntetisaattorina. Speech Dispatcher-liitäntä mahdollistaa Mikropuheen käyttämisen mm. Orca-ruudunlukijan kanssa. Lisäksi Mikropuheessa on nyt rajapinta Daisy Pipeline-julkaisujärjestelmään.
Lisätietoja ALSA-asetuksista tästä
Lisätietoja Speech Dispatcheristä tästä
Lisätietoja Daisy Pipelinestä tästä
Linux-versio ei sisällä Windows-version puhuvan teksturin kaltaista käyttöliittymää, vaan se on tarkoitettu näkövammaisten ja puhuvien järjestelmien tekijöiden käyttöön. Kaikki puheen säädöt tehdään tekstimuotoisiin tiedostoihin tai annetaan lennossa tekstin sisäisillä parametreilla.
Mikropuhe asennetaan kovalevylle cd-levyltä, jonka jälkeen cd kannattaa säilyttää varmuuskopiona. Asennus käy seuraavasti:
Käynnistä tämän jälkeen Mikropuhe daemon:
cd mp5linux
./mplinux &
Anna sitten Mikropuheelle jotain puhuttavaa:
cat puhu.txt > /tmp/mikropuhe
Äänikorttia käyttävä Mikropuhe-daemon tarvitsee toimiakseen 8- tai 16-bittisen äänikortin ja Open Sound System-ajurin.
Malli ei aina selviä muuten kuin avaamalla kone, etsimällä äänipiiri ja katsomalla, mitä piirin päällä lukee.
Puhe muodostetaan mikrofoneemista synteesitapaa käyttäen aidosta ihmisäänestä otettuja n. 1/100 sekunnin pituisia jaksoja yhdistämällä. Jaksot yhdistetään säännöstön avulla digitaaliseksi signaaliksi, joka viedään käytettävään D/A- muunninkorttiin ja siitä edelleen kaiuttimeen tai audiovahvistimeen. Synteesi rakentuu 16 bittisistä ääninäytteistä, joten paras äänenlaatu saavutetaan luonnollisesti käyttämällä 16 bittistä äänikorttia. Mikropuhe toimii myös 8 bittisillä korteilla, mutta tällöin synteesiä ei voida toistaa täydellisenä.
Komentorivin parametreilla voidaan puhuttaa tekstiä tiedostoon. Jos mplinux käynnistetään ilman parametreja, jää se muistiin seuraavasti:
Mikropuhe luo mplinux.ini -tiedostossa määritetyn nimetyn putken (named pipe). Tähän putkeen kirjoitettu teksti viedään syntetisaattorille. Jos teksti alkaa merkillä <, oletetaan tekstin olevan SAPI5-tagitettyä. Muussa tapauksissa tekstiä pidetään puhtaana askii-tekstinä. Molemmissa tapauksissa tekstin sisällä voi olla myös Mikropuheen omia ohjauskoodeja.
Tekstin sisällä olevat ohjausparametrit jäävät voimaan, paitsi SAPI5-tageilla voi olla voimassaoloaika. Mikäli puhe keskeytetään, ei muutettuja puhearvoja talleteta, vaan syntetisaattori palautuu tilaan, jossa se oli ennen puhumista.
Kaikki tekstin sisällä olevat LF-merkit (ascii 10) muunnetaan välilyönneiksi.
Tekstin tagitystyyppi tutkitaan vasta komentojen jälkeen: Jos komennon jälkeen ensimmäinen merkki on '<', käytetään SAPI5/VoiceXML -tagitystä.
Komennot annetaan kuten puhuttava teksti. Puhuttavasta tekstistä ne erotetaan sisältönsä perusteella. Komennot on annettava ennen puhuttavaa tekstiä.
Käytössä ovat komennot:
Pysäyttää syntetisaattorin välittömästi.
Ei keskeytä tällä hetkellä puhuttavaa tekstiä, vaan laittaa tekstin jonon perään. Oletuksena keskeytetään.
Puhuu tekstin annettuun tiedostoon wav-muodossa. Tiedostoa puhutaan taustaprosessina, eli Mikropuhe palaa heti kuuntelemaan putkea kun prosessi on saatu käyntiin. Tiedostoon puhuminen ei vaikuta mitenkään äänikortin kautta puhumiseen. Puheasetuksina käytetään kutsumishetkellä olevia asetuksia. Puheen valmistumisesta lähetetään haluttaessa signaali. Sticky-bittiä ei käsitellä mitenkään. Käynnissä olevaa puhetta ei keskeytetä. Parametrit ovat:
name
Pakollinen parametri: Mihin tiedostoon puhutaan. Anna aina koko polun nimi.
signal
Jos on annettu, lähettää Mikropuhe signaalin ohjelmalle, kun puhuminen on
valmistunut (joko onnistunut tai epäonnistunut). Jos tiedostoa ei löydy
signaalin tullessa, on tiedostoon puhuminen epäonnistunut. Numeroksi annetaan
prosessin id (getpid()) ja signaalin numero pilkulla erotettuna
kymmenjärjestelmässä.
samplef
Näytteenottotaajuus. Oletuksena käytetään tämänhetkisen puheääneen taajuutta
(22050 tai 44100 Hz).
bits
Monikobittistä signaalia talletetaan 8/16. Oletuksena talletetaan 16-bittistä.
stereo
Talletetaanko stereosignaalina 1 (mplinux.ini-tiedoston asetukset eivät vaikuta
tähän). Oletuksena talletetaan monoa (0).
wavheader
Kirjoitetaanko WAV-tiedostoheader 1 vai ilman headeria 0. Oletuksena
kirjoitetaan
Esimerkiksi SIGUSR1 signaalin lähettävä käsky:
<mpcommand speaktofile name="/tmp/testi.wav"
signal="1234,10"><sapi>Heippa vaan!
Mikropuhe-daemon reagoi seuraaviin signaaleihin:
Keskeyttää puheen ja tekee reset-käskyn, ks <reset/> -tagi.
Poistavat Mikropuheen muistista.
Komentoriviltä voidaan puhuttaa tekstitiedostoja äänitiedostoiksi. Komennon muoto on:
mplinux -out kohdetiedosto [-parametri1 -parametri2 ...]
luettava_tiedosto.txt
Parametrit ovat:
-samplef numero
Näytteenottotaajuus. Oletuksena käytetään tämänhetkisen puheääneen taajuutta
(22050 tai 44100 Hz).
-bits numero
Monikobittistä signaalia talletetaan 8/16. Oletuksena talletetaan 16-bittistä.
-stereo numero
Talletetaanko stereosignaalina 1 (mplinux.ini-tiedoston asetukset eivät vaikuta
tähän). Oletuksena talletetaan monoa (0).
-wavheader numero
Kirjoitetaanko WAV-tiedostoheader 1 vai ilman headeria 0. Oletuksena
kirjoitetaan.
-sapi
Onko luettava tiedosto SAPI5-koodattua 1 vai puhdasta tekstiä 0. Oletuksena
puhdasta tekstiä.
Esimerkiksi:
mplinux -out testi.wav -stereo 1 -sapi 1
luettava_tiedosto_sapi5_koodattuna.txt
Tämä liitäntä on tarkoitettu ohjelmankehittäjille. Liitäntä tukee streaming-tekniikkaa ja useita yhtäaikaisia kanavia.
Katso tarkemmin:
Esimerkkiohjelma libmplinux_testmain.cpp
Liitännän määrittelyt mpwrfile.h
Oletusarvoisesti Mikropuhe 5.1 käyttää ALSA-ääniajuria ensisijaisesti ja jos sen lataaminen epäonnistuu, käytetään vanhaa OSS-ajuria. Jos ALSA-äänikanavan avaaminen epäonnistuu, annetaan siitä virheilmoitus, eikä siirrytä käyttämään OSS-ajuria. ALSA-ajurin nimi säädetään tiedostossa mplinux.ini:
; Mikropuhe 5.1: Myös ALSA-laitetta voi käyttää. ; Jos tämä rivi ei ole kommentoitu pois, luodaan ensin ALSA-soittaja ja jos sen ; luominen epäonnistuu, käytetään vanhaan tapaan OSS-laitetta sounddevicealsa=plughw:0,0
Joissain Linux-jakeluissa voi olla tarve asentaa paketti libasound2-dev ennen kuin ALSA-äänet saadaan toimimaan:
sudo apt-get install libasound2-dev
Tässä käydään läpi kaikki vaiheet Speech Dispatcherin ja Orcan asentamiseksi komentoikkunassa. Käynnistä komentoikkuna ja suorita käskyt järjestelmänvalvojana. Joissain Linux-jakeluissa käytetään jokaisen rivin alussa sudo-käskyä ja joissain vaihdetaan käyttäjäksi root käskyllä su root. Debian-Linuxeissa pystyy komentoikkunan avaamaan suoraan järjestelmänvalvojana, jolloin su root tai sudo-käskyä ei tarvita.
sudo apt-get install speech-dispatcher sudo apt-get install python-speechd
python-speechd tarvitaan, jotta Orca osaisi käyttää Speech Dispatcheriä.
sudo apt-get install gnome-orca
Avaa /etc/speech-dispatcher/speechd.conf ja etsi sieltä tekstiä AddModule. Tiedoston muokkaus vaatii root-tunnusta. Ubuntussa tiedosto aukeaa esimerkiksi näin:
sudo gedit '/etc/speech-dispatcher/speechd.conf'
Kommentoi kaikki muut syntetisaattorit pois #-merkillä, etteivät ne varaisi äänikanavaa. Sitten lisää Mikropuhe omaksi rivikseen. Esimerkissä Mikropuheen asennuspaikka on /usr/bin - korvaa se käyttämälläsi paikalla:
# AddModule loads an output module. # Syntax: AddModule "name" "binary" "configuration" "logfile" # - name is the name under which you can acces this module # - binary is the path to the binary executable of this module, # either relative (to lib/speech-dispatcher-modules/) or absolute # - configuration is the path to the config file of this module, # either relative (to etc/speech-dispatcher/modules/) or absolute #AddModule "espeak" "sd_espeak" "espeak.conf" #AddModule "festival" "sd_festival" "festival.conf" #AddModule "flite" "sd_flite" "flite.conf" AddModule "mikropuhe" "/usr/bin/mplinux_sd" "mikropuhe.conf"
Mikropuhe on listalla viimeinen. Sarakket ovat:
DefaultModule "mikropuhe"Tämän jälkeen Speech Dispatcher käyttää oletusarvoisesti Mikropuhetta.
Kun asetustiedostot ovat kunnossa, testataan Mikropuheen toimivuutta ja käynnistetään Orca:
sudo mkdir /var/run/speech-dispatcher sudo chmod 777 /var/run/speech-dispatcher speech-dispatcher -d spd-say Heippa orca &
Speech Dispatcherin saa käynnistymään automaattisesti käynnistyksen yhteydessä (daemon):
sudo gedit /etc/default/speech-dispatcher
Muokkaa sieltä rivi RUN_SPEECHD=yes. Orca löytää automaattisesti käynnissä olevan Speech Dispatcherin.
Orca pitää vielä säätää käyttämään Speech Dispatceriä, jonka oletussyntetisaattoriksi on aiemmin säädetty Mikropuhe. Asetus löytyy valitsemalla Orcan pääikkunasta toiminto Preferences ja Speech-välilehdeltä kohta Speech System. Tähän kohtaan siis valitaan Speech Dispatcher. Jos Speech Dispatcheriin on liitetty useita syntetisaattoreita, voi syntetisaattoria vaihtaa vielä kohdasta Speech Synthesizer.
Tässä on listattu Mikropuheen tuntemat Speech Dispatcer-komennot:
Alustaa syntetisaattorin. Mikropuhe on alustettu jo valmiiksi, eli tämä komento ei tee mitään.
Lopettaa Mikropuheen Speech Dispatcher-tilasta.
Antaa listan käytössä olevista puheäänistä, esimerkkilistaus:
200-"mikko" fi "nil" MALE 0 200-"petteri" fi "nil" MALE 0 200-"petteri42" fi "nil" MALE 0 200-"riku" fi "nil" MALE 0 200 OK DRIVER LIST SENT
Asettaa puhearvoja. Kerralla voidaan asettaa monta arvoa, asetus päätetään rivillä, jolla on pelkkä piste. Mikropuhe tukee arvoja:
rate=nopeus välillä -100...100. -100 on minimi ja 100 maksimi.
pitch=korkeus välillä -100...100. -100 on minimi ja 100 maksimi.
volume=voimakkuus välillä -100...100. -100 on minimi ja 100 maksimi.
voice=nimi tai synthesis_voice=nimi, vaihtaa puheäänen
Seuraavat ohitetaan: punctuation_mode, spelling_mode, cap_let_recogn, language
Esimerkki:
SET rate=70 .
Ei tuettu, ohitetaan kunnes tulee lopetusmerkki eli piste omalla rivillään.
Käskyn jälkeen annetaan riveittäin puhuttavaa tekstiä. Loppumerkkinä piste omalla rivillään. Teksti käsitellään aina SSML-tagitettynä, eli merkit pienempi kuin, suurempi kuin ja et-merkki pitää antaa xml-entityinä.
Kuten SPEAK, mutta teksti tavataan.
Kuten SPEAK, mutta tällä annetaan puhuttavaksi näppäinten nimiä. Muuntaa esimerkiksi tekstistä control_alt_shift_& kaikki paitsi viimeisen yksittäisen alaviivan väliksi ja tavaa viimeisen merkin, jos se on yksittäinen. Esimerkkiteksti luettaisiin siis "control alt shift et".
Käsitellään kuten SPEAK-käsky.
Keskeyttää puheen.
Keskeyttää puheen väliaikaisesti myöhemmin jatkettavaksi. Sulkee äänikanavan tauon ajaksi.
Avaa äänikanavan uudestaan ja jatkaa edellisellä PAUSE-käskyllä pysäytettyä puhetta. Puhetta jatketaan sen puskurin alusta, joka oli soimassa PAUSE-käskyn aluksi.
Mikropuheelle on lisätty uusi käynnistysparametri -daisy:
mplinux -daisy
Käynnistää Mikropuheen Daisy Pipelinen haluamassa tilassa: lukee ensin stdin:stä utf8-koodattuna kohdetiedoston nimen+LF, sitten puhuttavan tekstin+LF. Jos tiedoston nimi oli tyhjä, lopetetaan Mikropuhe. Generoi tekstin wav-muodossa kohdetiedostoon ja kirjoittaa OK+LF stdout:iin. Jos Mikropuheen kotihakemistossa on tiedosto mplinux_daisy.ini, käytetään sitä mplinux.ini –tiedoston sijaan.
Koneessa on oltava LAME MP3-enkooderi äänitiedostojen tallennusta varten. Ubuntussa LAME asentuu käskyllä:
sudo apt-get install lame
Asennettu Mikropuhe on suositeltavaa kopioida Pipelinen asennushakemistoon omaan mikropuhe-hakemistoonsa. Pipelinen kotihakemistoa kutsutaan jatkossa nimellä {pipeline-koti}. Näin julkaisujen puhuttaminen saadaan täysin muusta käytöstä riippumattomaksi.
Syntetisaattoreiden asetustiedosto löytyy paikasta {pipeline-koti}/transformers/se_tpb_speechgen2/tts/ttsbuilder.xml. Siihen pitää lisätä Mikropuhe. Seuraavassa määritys, jolla kaikki suomenkieliset julkaisut luetaan Mikropuheella (ainoa Linuxiin säädetty syntetisaattori on Mikropuhe). Huomaa esimerkissä oleva Pipelinen kotihakemisto {pipeline-koti}, joka pitää korvata käytössä olevalla hakemistolla:
<!--****************************************************************************** Linux *******************************************************************************--> <os> <property name="os.name" match="[Ll]inux.*" /> <lang lang="fi"> <tts default="true"> <param name="class" value="se_tpb_speechgen2.tts.adapters.LocalStreamTTS"/> <param name="command" value="{pipeline-koti}/mikropuhe/mplinux -daisy"/> <!--param name="regex" value="${transformer_dir}/regex/loquendo-general.xml"/--> <!--param name="ttsProperties" value="${transformer_dir}/conf/mikropuhe.xml"/--> <param name="xslt" value="${transformer_dir}/xslt/transform.xsl"/> <!--param name="year" value="${transformer_dir}/regex/year_en.xml"/--> <param name="characterSubstitutionTables" value="${transformer_dir}/charsubst/character-translation-table.xml"/> </tts> </lang> </os>
Linux-versiossa kaikki säädöt tehdään tekstin sisäisillä parametreilla. Perusasetukset ladataan tiedostoista mplinux.ini ja libmplinux.ini.
Tällä parametrillä määritetään puhesynteesin äänteiden kesto, eli puheen nopeus. Nopein arvo (+12) on lähinnä erikoiskäyttäjiä varten. Puhesyntetisaattoreihin tottumattomalle näin nopeasta puheesta on erittäin vaikea saada selvää. Puheen nopeuden perusasetus (0) on tarkoitettu suhteellisen pitkien lauseiden puhumiseen. Jos syntetisaattoria käytetään vain yhden sanan tai lyhyiden lauseiden puhumiseen, kannattaa nopeus asettaa pienemmäksi.
Raja-arvojen ja perusarvon laskennalliset nopeudet:
-12 = 281 merkkiä minuutissa / n. 5 merkkiä sekunnissa
0 = 583 merkkiä minuutissa / n. 10 merkkiä sekunnissa
12 = 3188 merkkiä minuutissa / n. 53 merkkiä sekunnissa
Puheen korkeuden perusarvolla (0) käytetään ääninäytteiden alkuperäistä äänenkorkeutta. Korkeutta nostettaessa äänen selvyys kärsii hieman, joten säätö kannattaa kompensoida asettamalla "rauhallisuus" -arvo suuremmaksi. Jos korkeusarvo on perusarvoa pienempi, saattaa taajuus pitkissä lauseissa laskea alarajaan (25 Hz) asti. Yksittäisiä sanoja ja lyhyitä lauseita puhuttaessa hieman perusarvoa matalampi puheääni kuulostaa yleensä miellyttävimmältä.
Rauhallisuus-säädin vaikuttaa puheen korkeuden muutoksiin. Mitä suurempi arvo, sen pienemmät korkeuden muutokset. Arvot -12..0..12 on tarkoitettu normaalia puhumista varten. Arvot 13..99 soveltuvat parhaiten laulamiseen. Rauhallisuuden ollessa arvossa 99 puhe on täysin monotonista.
Tällä säädöllä määritellään paljonko puhuttavassa tekstissä käytetään satunnaisia sanapainotuksia. Oletusarvo on ±0% vaihtelu äänentaajuuteen, jolloin puheessa ei esiinny satunnaisvaihtelua lainkaan. Maksimiarvolla vaihtelua on ±50%. Satunnainen korkeuden vaihtelu tekee puheen "ennalta arvaamattomaksi", ja suurempia arvoja käyttämällä Mikropuhe ei, kuten ei ihminenkään, koskaan sano samaa lausetta täsmälleen samalla tavalla uudelleen. On kuitenkin syytä muistaa, että painotusten satunnaisuus saattaa tehdä puheesta häiritsevän tempoilevaa, ja lisätä puheeseen ei-toivottuja sivumerkityksiä.
Venytys-säädin vaikuttaa äänen väriin. Negatiiviset arvot "tiivistävät" ääntä niin, että loppujen lopuksi puhe kuulostaa Aku Ankalta. Arvolla -20 miehen ääni muuttuu naisen äänen tyyppiseksi. Positiiviset arvot madaltavat ääntä niin, että äänestä tulee ensin pehmeämpi ja sitten möreämpi.
Tällä säätimellä voit säätää äänen voimakkuutta. Säätimellä vaimennetaan syntetisaattorin signaalia digitaalisesti. Arvo 100 on normaali vaimentamaton, 50 puolittaa signaalin voimakkuuden (-6 dB), 25 vaimentaa neljännekseen (-12 dB) jne.
Sanavälitauko määrittää nimensä mukaisesti sanojen välillä pidettävän tauon pituuden. Oletusasetuksena on arvo 0, koska normaalisti puhuttaessa ei sanojen välissä ole lainkaan taukoa. Arvolla 1 katkaistaan edellisen sanan lopun vaikutus seuraavan sanan alkuun ilman varsinaista taukoa. Tämän jälkeen lisätään sanojen välille taukoa siten, että maksimiarvolla 24 tauko kestää sekunnin, mikäli puhenopeus on 0. Taukosäädön vaikutus on aina suhteessa puheen nopeuteen.
Asetukset vaikuttavat puheeseen nimensä mukaisesti. Ensin mainittu saa Mikropuheen kuulostamaan tutulta kääkättäjältä, ja jälkimmäisellä imitoidaan puhuvaa konetta (?!?) ...siis kahden vuosikymmenen takaista sellaista. Asetukset voivat olla päällä yhtäaikaisesti tai erikseen, eivätkä ne sulje pois muita säätimillä tehtyjä asetuksia, vaan toimivat ikään kuin äänen "sävyttäjinä".
Mikropuhe 5.0:n mukana toimitetaan neljä puheääntä: Riku, Mikko, Petteri ja Saga. Kaikista on saatavilla myös puhelinkäyttöön soveltuvat pienemmällä 8 kHz:n taajuudella puhuvat äänet. Puhelinäänet ovat käytössä vain tiedostoon puhuttaessa, kun näytteenottotaajuudeksi on asetettu 8 kHz.
Synteesiparametrejä voidaan kirjoittaa myös puhuttavan tekstin sekaan. Käytettävissä ovat sekä alla listatut Mikropuheen omat parametrit, että valikoima Sapi5-tageja joista lisää kohdassa Sapi5-ohjauskoodit.
Parametri | Vaikutus | Arvo |
---|---|---|
-NOP | Puheen nopeus | -12..0..12 |
-KOR | Puheäänen korkeus | -12..0..12 |
-RAU | Puheen rauhallisuus | -12..0..12 |
-SAT | Korkeuden satunnaisvaihtelu | 0..100 |
-SVT | Sanavälitauko | 0..24 |
-LYH | Käytetään lyhennelistoja | 0/1 |
-AKU | Ankan ääni | 0/1 |
-ROB | Robotin ääni | 0/1/2 |
-NUO(,) | Äänen korkeus (nuotti,oktaavi) | |
-VEN | Äänen venytys | -50..0..50 |
-PAI | Painotus | 0/1 |
malli.txt
-LYH -RAU2
-NOP0 Käytän lyhennelistaa ja puhun rauhallisesti.
-SAT25 Nyt lisään satunnaisvaihtelua ja nopeutan
-NOP8 puhetta -NOP10 reilusti.
-KOR8 Puhun hetken korkealta, ennenkuin lasken
-KOR-8 äänen korkeutta jyrkästi.
-RAU99 -NUO(A,3) Moik -NUO(E,2) ka -NUO(G,2) vaan.
Tekstin sisäiset parametrit vaikuttavat puheääneen sillä hetkellä kun teksti, johon ne sisältyvät, puhutaan. Ne eivät vaikuta säätimien tai tekstintulkinnan asetuksiin. Parametrejä voidaan välittää Mikropuheelle myös ohjelmaliitynnän kautta. Rauhallisuussäätö jatkuu arvoon 99 asti. Yli 12 arvoja käytetään laulamiseen.
Mikropuheen versiosta 4.1.1 lähtien mukana on ollut laulumahdollisuus. Laulu toteutetaan tekstinsisäisillä parametreilla ja esimerkkilauluja on asennushakemiston alahakemistossa "LAULUT".
Rauhallisuus-säätimeen on lisätty uudet arvot 13..99 jotka tekevät puheesta riittävän rauhallisen laulukäyttöä ajatellen. Jo säätimen arvolla 13 jätetään kaikki lauseen, sanan ja tavun korkeusmuutokset tekemättä. Rauhallisuuden arvolla 99 puhe on täysin monotonista. MikroPuheen graafinen säädin tukee edelleen vain arvoja -12..0..+12, joten rauhallisuuden arvot 13..99 voidaan asettaa ainoastaan tekstin sisäisillä parametreilla esim. "-RAU99 Puhun nyt aivan monotonisesti".
Laulua varten on kehitetty uusi tekstin sisäinen parametri "-NUO", jolla voidaan asettaa puheenkorkeus vastaamaan tiettyä sävelkorkeutta. Parametrin yhteydessä ilmoitetaan haluttu nuotti ja oktaavinumero 0-5, esim: "-NUO(C,2)", "-NUO(G#)" tai "NUO(H,3)". Jos oktaavinumero jätetään pois, nuotti valitaan 0-oktaavista.
Sävelkorkeuteen vaikuttaa myös Korkeus-säädin, joka siirtää (=transponoi) kaikkia nuotteja osoittamansa lukuarvon verran puolisävelaskeleita ylös- tai alaspäin. Esimerkiksi Korkeus-arvo +12 siirtää kaikkia nuotteja oktaavin ylöspäin.
Esimerkki duuriskaalasta:
-RAU99 -NUO(C,1) doo -NUO(D,1) ree -NUO(E,1) mii -NUO(F,1) faa -NUO(G,1) soo
-NUO(A,1) laa -NUO(H,1) tii -NUO(C,2) doo
Mikropuhe 5 Linuxia on mahdollista ohjata myös Sapi5-tageilla. XML:n mukaisesti tekstissä ei voi käyttää tiettyjä merkkejä, vaan ne on korvattava XML-entityillä:
& | & |
\ | ' |
> | > |
< | < |
" | "e; |
Erikoismerkit åäöÅÄÖ voidaan antaa suoraan tai XML-entityinä: &#numero;. Esimerkiksi:
1<2 | (1<2) |
ä | (ä) |
XML-määrityksen mukaisesti tagien kirjainkoko on merkitsevä. Mikropuhe tosin hyväksyy sekä ISOT että pienet tagit.
Tageja voidaan antaa joko vaikuttamaan paikastaan eteenpäin (tyhjä XML-tagi) tai tietylle välille (alku- ja lopputagit).
Esimerkiksi kuvitteelliset tagit:
<huuda/>Huudan tästä loppuun asti
<huuda/>Huudan tästä <kuiskaa>kuiskaan välillä</kuiskaa>
loppuun asti
XML-määritysten mukaan jokaiselle alkutagille pitää löytyä lopputagi siten että
se täsmää edellisen alkutagin kanssa.
Esimerkiksi:
Virheellinen teksti:
<huuda>huudan <kuiskaa>kuiskaan </huuda></kuiskaa>
Pitäisi olla:
<huuda>huudan </huuda><kuiskaa>kuiskaan </kuiskaa>
Ajaa asetustiedostossa olevan asetus=xxx -rivin. Palauttaa synteesin käynnistyksen jälkeiseen tilaan. Lisäksi poistaa valmiiksi muistiin ladatut tulkintatiedostot. Eli tulkintatiedoston muokkaamisen ja uudelleen latauksen välillä on annettava tämä <reset/> -tagi.
Ei lopputagia. Pitää tauon, jonka pituus riippuu puhenopeudesta. Attribuutilla time="xxx" voi olla arvot:
<break time="none"/>
Ei pidä taukoa, mutta katkaisee synteesin jatkuvuuden.
<break time="x-small"/>
Erittäin lyhyt tauko, 1/5 lausetauosta.
<break time="small"/>
Lyhyt tauko, puolet lausetauosta.
<break time="medium"/>
Keskimittainen tauko, vastaa lausetaukoa.
<break time="large"/>
Pitkä tauko, kaksi kertaa lausetauko.
<break time="x-large"/>
Erittäin pitkä tauko, nelinkertainen lausetaukoon.
Jokainen <break>-tagi katkaisee synteesin jatkuvuuden, eli käytännössä korostaa seuraavaa sanaa. Jos time-attribuuttia ei ole annettu tai sen arvo on tuntematon, käytetään medium-arvoa. Taukojen pituudet eivät ole tarkkkoja. Mikropuhe ei tue VoiceXML/SSML -määrityksen numeerista arvoa.
Soittaa annetun wav-muotoisen tiedoston puheen seassa. Koska eri puheäänillä voi olla eri näytetaajudet, älä käytä muita kuin wav-tiedostoja, sillä osaa Mikropuhe muuntaa lennossa niiden bittimäärän, taajuuden ja kanavamäärän äänikanavalle ja puheääneen sopivaksi. Jos tagi ei ole tyhjä (<audio src="xxx">teksti</audio>), puhutaan tiedoston soiton epäonnistuessa teksti audio-tagien välissä. Jos soittaminen onnistuu, siirrytään </audio>-lopputagin jälkeiseen tekstiin. Jos tiedoston nimessä ei ole hakemistomerkkejä (/\), ladataan tiedosto Mikropuheen hakemistosta.
Lisää piippauksen puheen sekaan. Taajuus ilmoitetaan Herzeissä, pituus millisekunneissa ja voimakkuus suhteessa syntetisaattoriin (100%=ilman vaimennusta). Huomaa, että tämä on tyhjä tagi, eli lisää loppuun aina kauttaviiva. Puuttuvien parametrien kohdalla käytetään oletuksia: freq="100" length="1000" volume="100".
Alku- ja lopputagit. Painottaa tagien sisällä olevia sanoja.
Ei lopputagia. Kirjanmerkki - ei käytössä Linux-versiossa.
Ei lopputagia. Lisää annetun verran (millisekunnit) hiljaisuutta puheeseen.
Lopputagilla tai ilman. Asettaa puheen korkeuden suhteessa puheäänen peruskorkeuteen. Arvo välillä -10..0..10.
Lopputagilla tai ilman. Asettaa puheen korkeuden suhteessa tämänhetkiseen äänen korkeuteen. Kätevä jos halutaan <pitch middle="3">nostaa</pitch> korkeutta hetkeksi. Arvo välillä -10..0..10.
Lopputagilla tai ilman. Asettaa puheen nopeuden suhteessa puheäänen perusnopeuteen. Arvo välillä -10..0..10.
Lopputagilla tai ilman. Asettaa puheen nopeuden suhteessa tämänhetkiseen nopeuteen. Kätevä jos halutaan <rate speed="-2">laskea</pitch> nopeutta hetkeksi. Arvo välillä -10..0..10.
Alku- ja lopputagit. Tavaa kaiken <spell>- ja </spell> -tagien välissä olevan tekstin tiedostosta mplinux.tfg löytyvän tavauslistan mukaan. Esimerkiksi:
Aakkoset ovat: <spell>abcdefg jne.</spell>
Lopputagilla tai ilman. Asettaa puheen voimakkuudeen prosenteissa. Arvo 100 on maksimi (oletus) ja nolla minimi. Voimakkuusasetus ei vaikuta äänenvoimakkuussäätimeen, vaan sen mukaan ainoastaan vaimennetaan puhesignaalia digitaalisesti ennen äänikortille viemistä.
Lopputagilla tai ilman. Vaihtaa puheäänen. Nimi on jokin Mikropuheen hakemistosta löytyvistä puheäänistä. Linux-versio pitää muistissaan kahta viimeksi käytettyä ääntä. Näin äänen vaihto ei aiheuta ensimmäisen latauksen jälkeen viiveitä. Esimerkiksi:
<voice name="petteri">Petterin ääni </voice><voice
name="saga">Sagan ääni </voice>
<voice name="petteri"/>Petterin ääni asetettu oletukseksi.
Ei lopputagia. Asettaa sanavälitauon kuten Mikropuheen parametri -SVT. Arvo välillä 0..24
Ei lopputagia. Asettaa puheen rauhallisuuden kuten Mikropuheen parametri -RAU. Arvo välillä -12..0..12.
Ei lopputagia. Asettaa puheen venytysarvon kuten Mikropuheen parametri -VEN. Arvo välillä -50..0..50.
Ei lopputagia. Asettaa puheen korkeuden satunnaisvaihtelun kuten Mikropuheen parametri -SAT. Arvo välillä 0..100.
Ei lopputagia. Asettaa Aku Ankka-efektin kuten Mikropuheen parametri -AKU. Arvo välillä 0..1.
Ei lopputagia. Asettaa Robottiefektin kuten Mikropuheen parametri -ROB. Arvo välillä 0..2.
Lopputagilla tai ilman. Vaihtaa tulkintatiedoston. Jos nimi on tyhjä, poistetaan tulkintatiedosto kokonaan käytöstä. Jos nimessä ei ole hakemistoa, ladataan tiedostoa ohjelman hakemistosta. Anna tiedoston nimi ilman päätettä. Esimerkiksi:
<mikropuhe tul="normaali"/>
<mikropuhe tul=""/>
Lopputagilla tai ilman. Stereomoodin vaihto kuten mplinux.ini-tiedoston soundstereomode=x: 0=Tuplamono, 1=Vasen, 2=Oikea, 3=Tuplamono toinen kanava eri vaiheessa.
Tässä on käytetty sapi-alkutagia. Sillä ei ole muuta merkitystä kuin tekstin tunnistaminen sapi5-tagitetyksi:
<sapi>Hei!
<mpstereo pan="0">Puhun keskellä.</mpstereo>
<mpstereo pan="1">Vasemmalta.</mpstereo>
<mpstereo pan="2">Oikealta.</mpstereo>
<mpstereo pan="3">Ja toinen kanava eri vaiheessa.</mpstereo>
Esittelen nyt tulkinnan parametreja. Oletustulkinta: A, b, c, <mikropuhetul
name="">Ei tulkintaa: A, b, c, </mikropuhetul>Paluu oletukseen: a, b,
c, <mikropuhetul name="sanokaik.tul"/>Sanokaik.tul: A, b, c,
<reset/>reset tuli: A, b, c.
Sitten uusi break-parametri <break time="small"/>lyhyt ja <break
time="x-large"> pitkä.
<beep freq="400" length="100" volume="100"/><beep freq="423"
length="100" volume="85"/><beep freq="449" length="100"
volume="70"/><beep freq="476" length="100" volume="55"/><beep
freq="504" length="100" volume="40"/><beep freq="534" length="100"
volume="25"/><beep freq="566" length="100" volume="10"/><beep
freq="599" length="100" volume="25"/><beep freq="635" length="100"
volume="40"/><beep freq="673" length="100" volume="55"/><beep
freq="713" length="100" volume="75"/><beep freq="755" length="100"
volume="85"/><beep freq="800" length="100" volume="100"/>
Osaan piipityksen lisäksi myös soittaa wav-tiedostoja.
Tässä stereoääni. <audio src="esimerkki.wav">Yritin juuri soittaa
esimerkki.wav</audio>
Seuraava <emph>painotus on jo kuuluva</emph>. Pidän sekunnin
paussin <silence msec="1000"/> juuri äsken ja lyhyen <break
time="small"/> äsken. Asetan <pitch absmiddle="5">korkeuden arvoon 5.
</pitch> Palasin hetkeksi peruskorkeuteen, jonka <pitch
middle="-4">pudotin</pitch> hetkeksi neljä pykälää alaspäin. Nyt
esittelen nopeuteni<rate absspeed="10">tämä on aivan sairaan nopeaa
puhetta, 123 123 <rate absspeed="-10"> ja tämä taas todella
hidasta.</rate></rate> Äsken käytettiin sisäkkäisiä nopeustageja ja
nyt puhun taas perusnopeudella. Tavaan joutessani vähän aakkosten alkua,
<spell>abcdef</spell>, jonka jälkeen voisinkin olla <volume
level="25">hetken varsin hiljaa.</volume> Niin ja puheääniä löytyy:
<voice name="mikko">Mikko, </voice><voice
name="petteri">Petteri, </voice><voice name="saga"> ja
Saga.</voice> <mikropuhe svt="20">Näin lopuksi lisätään
sanavälitaukoa<mikropuhe svt="0"><mikropuhe rau="99"> ja asetetaan
synteesi monotoniseksi. <mikropuhe rau="0">Näille Mikropuheen omille
säädöille voidaan myös rakentaa lopputagit, jos tarvetta on.
Venytyssäädöllä voi saada miellyttävämmän puheäänen. Esittelen tekijöiden
suosikkiäänen:
<voice name="riku">
<mikropuhe ven="15"/>
<mikropuhe rau="-8">
<pitch absmiddle="-3">
Tässä on venytys arvossa 15, rauhallisuutta on -8, eli korkeus vaihtelee
runsaasti ja peruskorkeus on arvossa -3.
</pitch>
</voice>
<mikropuhe ven="0"/>
<mikropuhe rau="0">
<voice name="saga">Kiitos kuuntelemisesta <voice
name="petteri">minunkin puolestani.</voice></voice>
Tulkintajärjestelmän avulla voidaan tekstissä esiintyvät lyhenteet, välimerkit ja numerosarjat puhua halutulla tavalla. Tulkinnan säädöt tehdään tekstimuotoisiin .tul-päätteisiin tiedostoihin.
Lyhennelistat sisältävät tekstistä etsittävät lyhenteet ja välimerkit sekä niiden puhuttaessa käytettävät korvaavat sanat. Lyhennelistan ollessa käytössä etsitään jokaista puhuttavaa sanaa tai irrallista välimerkkiä lyhennelistasta. Ohjelmiston mukana toimitetaan eri käyttötarkoituksiin soveltuvia lyhennelistatiedostoja, joita voidaan avata "Tulkinta" -valikon "Avaa" tai "Avaa omat lyhenteet" -valinnoilla.
Versiossa 4.2 oli mahdollista muokata yksittäisten kirjainten ja lyhenteiden tulkintaa Mikropuheen dialogeilla. Versiossa 5.0 tätä mahdollisuutta ei enää ole johtuen tulkintaan tulleista mittavista laajennuksista. Omat ja perustulkintalistat ovat tekstimuotoisia ja niitä voi muokata millä tahansa tekstieditorilla. Version 4.2 tulkintalistat käyvät myös versiolle 5.0.
Peruslyhennelista määrittää tulkinnan yksittäisille merkeille ja korvaavan tekstin lyhenteille. Peruslyhennelistan yläpuolella näkyy lyhennelistan tiedostonimi ja sitä osoittamalla voidaan peruslyhennelista väliaikaisesti poistaa käytöstä. Peruslyhennelista voidaan avata ja tallettaa Tulkinta-valikon valinnoilla. Valmiita tulkintalistoja ovat:
Numeroiden tulkintaa ohjaavat tulkintatiedoston alussa olevat määritykset.
Tekstissä olevat numeeriset päivämäärät tulkitaan selväkieliseksi jos tämä asetus on päällä.
Esimerkki:
Numero: 2.3.93
Tulkinta: toinen kolmatta yhdeksänkymmentäkolme
Ilman tulkintaa: kaksi piste kolme piste yhdeksänkymmentäkolme
"Tarkista järjestysnumerot" määrittää millä tavalla järjestysnumerot puhutaan. Järjestysnumeroiksi tulkitaan luvut joiden jälkeen on piste ja välilyönti.
Esimerkki:
Teksti : 1. palkinto
Tulkinta: ensimmäinen palkinto
Ilman tulkintaa: yksi piste palkinto
Tämä valinta määrittää, puhutaanko numerot yksi kerrallaan vai lukuna.
Numero: 123
Tulkinta: satakaksikymmentäkolme
Ilman tulkintaa: yksi kaksi kolme
Tämä valinta määrittää, puhutaanko välilyönnillä erotellut luvut yhtenä lukuna vai erikseen.
1 000 000,23
1.000.000,23
1,000,000.23
"Kuinka pitkät jaotellut luvut tavataan" määrittää, montako numeroa jaotellun luvun kokonaisosassa pitää olla jotta luku puhuttaisiin merkki kerrallaan.
"Kuinka pitkät normaaliluvut tavataan" määrittää, kuinka monta merkkiä pitkät lukujonot puhutaan numero kerrallaan. Tällä asetuksella on erityisen suuri merkitys, jos teksti sisältää puhelinnumeroja.
"Pienin vuosi kaksinumeroisissa" määrittää pienimmän kaksinumeroisen vuosiluvun joka hyväksytään päivämääräksi.
"Päivämäärän maksimivuosi" määrittää, kuinka suuri vuosiluku päivämääräksi tulkittavassa luvussa saa olla. Päivämääräksi hyväksytään kolme pisteellä tai kauttaviivalla erotettua lukua, joista ensimmäinen on välillä 1-31, toinen välillä 1-12, ja kolmas on pienempi kuin määritelty maksimivuosi.
Haettavaa lyhennettä verrataan tulkittavaan tekstiin. Lyhenteet on järjestetty alkukirjaimen mukaan pituusjärjestykseen. Näin pisimpiä lyhenteitä verrataan ensin ja hakua jatketaan kunnes korvaus löytyy. Jos korvausta ei löydy, ohitetaan kirjain tulkittavasta tekstistä ja aloitetaan haku seuraavan kirjaimen kohdalta.
Esimerkiksi: Tulkittava teksti alkaa "vrt. kissa" ja v-kirjaimen alussa lyhennelista on:
valtiotiet valtiotieteellinen (pisteellinen) vrk vuorokausi (pisteellinen) vrt vertaa (pisteellinen) vr valtion rautatiet v v
Lyhennelistasta löytyy neljän merkin mittainen osuma pisteelliseen lyhenteeseen "vrt". Tämän korvaava teksti viedään puhuttavaksi ja sitten siirytään sanan kissa edessä olevaan välilyöntiin.
Haettavassa ja korvaavassa tekstissä voidaan käyttää kenoviivalla alkavia erikoismerkkejä:
\t TAB-merkki (ASCII #9)
\n Kappalejako, LF (ASCII #10)
\r Kappalejako, CR (ASCII #13)
\\ Kenoviiva (ASCII #92)
\xnn Merkki heksadesimaalijärjestelmässä
Korvaavan tekstin lisäksi määritetään lyhenteen ympäristö ja mahdollisesti useita eri tulkintatapoja riippuen ympäröivästä tekstistä. Ympäristöt ennen ja jälkeen lyhennettä määritetään Mikropuheeseen sisäänrakennettujen merkkiluokkien avulla.
Pienet kirjaimet:
p abcdefghijklmnopqrstuvwxyzšœàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
Isot kirjaimet:
i ABCDEFGHIJKLMNOPQRSTUVWXYZŠŒŸ¥ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß
Numerot:
n 0123456789
Sanavälit:
s \r\n\t
Erikoismerkit:
e #$%&'()*+-/<>=@[\]^_`{|}~‚ƒ†‡ˆ‰‹''""•–—˜™›¡¢£¤¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×÷
Välimerkit:
v !\",.:;?…
Tekstin loppu:
t
Suomalaiset vokaalit:
w aeiouyäöAEIOUYÄÖ
Suomalaiset konsonantit:
k bcdfghjklmnprstvBCDFGHJKLMNPRSTV
Luokat on määritetty tekstimuotoisessa tiedostossa mp5sapi.tfg.
Haettavan lyhenteen lisäksi tulkinnassa määritetään tekstiympäristöt, joissa tiettyä korvaavaa tekstiä käytetään. Esimerkiksi tekstin mm määritys tul-tiedostossa (rivien aluissa olevat numerot sulkeissa ovat vain ohjeistusta varten):
< (1) "", "mm", (2) "n+(sevt)", "(sevt)", "+millimetriä", (3) "(sevt)", "(sevt)", "+muun muassa" >
Yhden lyhenteen määritys alkaa merkillä <. Määritys päättyy merkkiin >. Kaikki lyhenteet alkavat kuten esimerkki. Rivin yksi osat ovat:
””
Tässä voidaan antaa määritykset i ja p. Pieni i tarkoittaa, että lyhenne kelpaa
sekä ISOILLA että pienillä kirjaimilla kirjoitettuna. Pieni p tarkoittaa, että
lyhenteen perässä voi olla piste tai kaksoispiste. Pistettä ja kaksoispistettä
pidetään kuitenkin lauseen loppumerkkinä, jos pisteen tai kaksoispisteen
jälkeen tulee sanaväli ja sen jälkeen iso alkukirjain tai numero.
P-määritysessä piste ei kuitenkaan ole pakollinen. Esimerkissä ei ole mitään
määrityksiä, joten tekstiä mm haetaan vain pieninä kirjaimina, eikä sen perästä
tutkita pisteen olemassaoloa.
”mm”
Haettava teksti.
Riviltä kaksi alkavat lyhenteen ympäristömääritykset. Ympäristöjä tutkitaan annetussa järjestyksessä ja jos täsmäävää ympäristöä ei löydy, siirrytään seuraavaan lyhenteeseen. Esimerkin tulkinnat sopivat vain, jos tekstin mm molemmilla puolilla on sanaväliin rinnastettava merkki. Näistä enemmän seuraavassa osiossa.
Ympäristöehtoon annettu yksittäinen kirjainluokka tarkoittaa, että tulkattavasta tekstin ympäristöehdon vertauskohdasta on löydyttävä annetun luokan merkki. Useampia kelpaavia kirjainluokkia annetaan ympäröimällä kelpaavat kirjainluokat suluilla. Ennen kirjanluokkaa tai kirjainluokkia voi antaa ohjausmerkit + (kirjainluokkaa on löydyttävä 1...n kappaletta) tai * (kirjainluokkaa on löydyttävä 0...n kappaletta).
Esimerkiksi lyhenteen mm rivi 2:
"n+(sevt)"
Määrittää ennen lyhennettä olevan ympäristön. Ensin odotetaan yhtä tai useampaa
luokkiin s, v, e tai t kuuluvia merkkejä (s=sanaväli, v=välimerkki,
e=erikoismerkki, t=tekstin loppu). Sen jälkeen pitää olla numero. Esimerkiksi
tekstissä ”5 mm” nämä ehdot täyttyvät.
”(sevt)”
Määrittää, että lyhenteen jälkeen pitää olla jokin annettuihin luokkiin
kuuluvista merkeistä.
Jos ympäristö ei täsmää, siirrytään seuraavaan ympäristömääritykseen (rivi 3). Jos yksikään lyhenteen ympäristö ei täsmää, siirrytään seuraavaan mahdollisesti lyhyempään lyhenteeseen. Lyhenteen mm kohdalla se olisi kirjain m.
Merkkiluokkien lisäksi ympäristöksi voidaan antaa joko vaadittava teksti sellaisenaan tai lista kelpaavista merkeistä:
’=abc’ Ehdon kohdasta on löydyttävä teksti abc
’+abc’ Ehdon kohdasta on löydyttävä jokin merkeistä a, b tai c
Huomaa yksinkertainen hipsu! Näitä ehtoja voidaan käyttää kuten kirjainluokkaehtoja, esimerkiksi uusi rivi lyhenteen mm tulkintaan:
"(sevt)", "*(ev)’=kisat’", "+maailmanmestaruus"
Tämän rivin ympäristö täsmää tekstiin mm-kisat pidettiin Lahdessa.
Korvaavan tekstin alkuun voi antaa ohjausmerkit:
+ Lisää välilyönnin korvaavan tekstin alkuun ellei sitä jo ole.
* Poistaa välilyönnin ennen korvaavaa tekstiä jos on.
Ja korvaavassa tekstissä mihin vain ohjausmerkit:
# Katkaisee synteesin jatkuvuuden.
= Pitää tauon pituudeltaan noin 1/10 lauseiden välisestä tauosta.
Korvaavassa tekstissä oleva piste lopettaa lauseen virkkeen loppuun (äänen korkeus tippuu ja tauko on aika pitkä) ja pilkku lauseen loppuun (äänen korkeus tippuu vähemmän).
Korvaavassa tekstissä voidaan käyttää kaikkia Mikropuheen ymmärtämiä ohjauskoodeja (Mikropuheen omat –NOP5, SAPI4 \rspd=150\ ja SAPI5 <rate abspeed=”4”/>.
Korvaavaan tekstiin voidaan antaa myös lyhenteen monikkomuoto, jota käytetään, jos haettavaa merkkiä (tai lyhennettä) on peräkkäin viisi tai useampi. Esimerkiksi alaviivan määritys:
< "", "_", "?", "?", "+alaviiva/+alaviivaa" >
Lyhyenkin tekstin puhuminen saattaa kestää melko kauan, joten anna käyttäjälle mahdollisuus tarvittaessa keskeyttää puhe.
Jos puhuminen ei ole välttämätön elementti ohjelman toiminnassa, liityntä kannattaa tehdä siten että puhumiseen liittyvät valinnat ovat kätkettyinä mikäli Mikropuhetta ei löydy. Näin vältytään virheilmoituksilta laitteistoissa joihin ei ole asennettu puhesyntetisaattoria. Maininta käyttöohjeissa tai lisätietoja -ikkunassa kertoo käyttäjälle ohjelman puheominaisuudesta.
Kun puhuva ohjelmasi on valmis ja haluat aloittaa sen levityksen muille osapuolille, muista että puhesyntetisaattorin tai sen osioiden toimittaminen ohjelmasi mukana edellyttää aina erillistä jälleenmyyntisopimusta.
Lisätietoja sopimusasioista ja Mikropuheen liittämisestä ohjelmiisi saat yksinkertaisimmin soittamalla Timehouseen, puh. (09) 5868 520 / tekninen tuki.
Katso myös internet kotisivumme... http://www.mikropuhe.com
Kristian Töyrä:
Puhesyntetisaattorin suunnittelu ja ohjelmointi.
Petteri Heiskari:
Käyttöliittymien ohjelmointi.
Riku Kangas:
Tuotteen ulkoasu.
Saga Lindholm:
Ääninäytteet.
Riku Kangas:
Ääninäytteet.
Mikko Jokinen:
Ääninäytteet.
Lauri Lehtinen:
Puhesyntetisaattorin menetelmätason suunnittelu.
Severi Virolainen, M.A.D. Oy:
Tuotteistuksen organisointi ja markkinointi: MacinPuhe
Janne Suvanto:
Tuotteistuksen suunnittelu ja organisointi: Mikropuhe 1.0-4.0
Matti Karjalainen, TKK akustiikan laboratorio:
Menetelmätason konsultointi.
Näkövammaisten keskusliitto Ry:
Palaute ja testaus.
Burmanin tietokone ja koulutus Oy:
Palaute ja testaus.