[ Windows-version käyttöohjeet ]

# MIKROPUHE 5.1 Linux

## SISÄLLYSLUETTELO

1. LISÄYKSET VERSIOON 5.1
2. TUOTTEEN OSAT
3. OHJELMAN ASENTAMINEN
4. OHJELMAN TOIMINTA

1. SYNTEESITEKNIIKKA
2. MIKROPUHE DAEMON/KOMENTO (mplinux)

1. TOIMINTA
2. KOMENNOT
3. SIGNAALIT
4. TIEDOSTOON PUHUMINEN KOMENTORIVILTÄ

3. MIKROPUHE SHARED OBJECT (libmplinux.so)
   1. TOIMINTA
4. ALSA-ÄÄNIAJURISTA
5. SPEECH DISPATCHER/ORCA

1. SPEECH DISPATCHER KOMENNOT

6. DAISY PIPELINE

5. ÄÄNEN SÄÄTÄMINEN
   1. PUHEEN SÄÄTIMET
      1. VOIMAKKUUS
      2. NOPEUS
      3. KORKEUS
      4. RAUHALLISUUS
      5. SATUNNAISVAIHTELU
      6. VENYTYS
      7. SANAVÄLITAUKO
      8. AKUANKKA JA ROBOTTI
      9. PUHEÄÄNI
   2. PARAMETRIT TEKSTIN SISÄLLÄ
   3. LAULAMINEN
      1. LAULUPARAMETRIT
   4. SAPI5-OHJAUSKOODIT
6. TEKSTIN TULKINTA
   1. PERUSLYHENNELISTA
   2. NUMEROIDEN TULKINTA
   3. TULKKAIMEN TOIMINTA
7. MIKROPUHEEN KANSSA TESTATUT OHJELMAT
8. KUN TEET PUHUVAN OHJELMAN...
9. TYÖRYHMÄ 1988-2003

## LISÄYKSET VERSIOON 5.1

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ä

## TUOTTEEN OSAT

### KIINTOLEVYLLE ASENNETTAVAT

1. Syntetisaattori-daemon/komento (mplinux)
2. Syntetisaattori-shared object (libmplinux.so)
3. Perusasetukset (mplinux.ini ja libmplinux.ini)
4. Äänitiedostot (*.pu5)
5. Tulkintalistat (*.tul)
6. Ohjeita (mplinux.txt)
7. Esimerkkitekstit (*.txt)
8. Tulkinnan perusasetukset (mplinux.tfg ja libmplinux.tfg)
9. Lisenssitiedot (mplinux.lis ja libmplinux.lis)
10. Shared object esimerkkiohjelma (libmplinux_test, mpwrfile.h ja libmplinux_testmain.cpp)

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.

Sisällysluetteloon

## OHJELMAN ASENTAMINEN

Mikropuhe asennetaan kovalevylle cd-levyltä, jonka jälkeen cd kannattaa säilyttää varmuuskopiona. Asennus käy seuraavasti:

1. Mounttaa cd-levy.
2. Siirry hakemistoon, jonka alle seuraava tar-käsky luo hakemiston mp5linux.
3. Anna käsky tar -pxzvf /mnt/cdrom/linux/mp5linux.tar.gz
4. Kopioi cd-romin linux-hakemistosta myös lisenssitiedostot mplinux.lis ja libmplinux.lis kohdehakemistoon käskyllä cp /mnt/cdrom/linux/*.lis mp5linux

Käynnistä tämän jälkeen Mikropuhe daemon:

`cd mp5linux
./mplinux &
`

Anna sitten Mikropuheelle jotain puhuttavaa:

`cat puhu.txt > /tmp/mikropuhe`

## ÄÄNIKORTISTA

Ää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.

Sisällysluetteloon

## OHJELMAN TOIMINTA

### SYNTEESITEKNIIKKA

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ä.

Sisällysluetteloon

## MIKROPUHE DAEMON/KOMENTO (mplinux)

### TOIMINTA

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

Komennot annetaan kuten puhuttava teksti. Puhuttavasta tekstistä ne erotetaan sisältönsä perusteella. Komennot on annettava ennen puhuttavaa tekstiä.

Käytössä ovat komennot:

#### <mpcommand stop>

Pysäyttää syntetisaattorin välittömästi.

#### <mpcommand queue>

Ei keskeytä tällä hetkellä puhuttavaa tekstiä, vaan laittaa tekstin jonon perään. Oletuksena keskeytetään.

#### <mpcommand speaktofile name="n" signal="n" samplef="f" bits="b" stereo="s" wavheader="x">

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!`

### SIGNAALIT

Mikropuhe-daemon reagoi seuraaviin signaaleihin:

#### SIGHUP

Keskeyttää puheen ja tekee reset-käskyn, ks <reset/> -tagi.

#### SIGINT, SIGTERM, SIGQUIT

Poistavat Mikropuheen muistista.

Sisällysluetteloon

### TIEDOSTOON PUHUMINEN KOMENTORIVILTÄ

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`

## MIKROPUHE SHARED OBJECT (libmplinux)

### TOIMINTA

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

Sisällysluetteloon

## ALSA-ÄÄNIAJURI

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

## SPEECH DISPATCHER/ORCA

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.

### Speech dispatcher asennus

    sudo apt-get install speech-dispatcher
    sudo apt-get install python-speechd

python-speechd tarvitaan, jotta Orca osaisi käyttää Speech Dispatcheriä.

### Orca asennus

    sudo apt-get install gnome-orca

### Mikropuhe Speech Dispatcheriin

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:

1. Millä nimellä Speech Dispatcher tunnistaa Mikropuheen
2. Mikropuheen ajurin nimi (mplinux_sd). Vaihda polku käyttämääsi Mikropuheen asennushakemistoon.
3. Asetustiedoston nimi, Mikropuhe ei käytä tätä, vaan ainoastaan kotihakemistonsa mplinux.ini –tiedostoa. Tiedostoa ei tarvitse olla olemassa.

Hae alempaa tekstiä DefaultModule ja muuta se tällaiseksi:

    DefaultModule "mikropuhe"

Tämän jälkeen Speech Dispatcher käyttää oletusarvoisesti Mikropuhetta.

### Speech Dispatcherin testaus

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.

### Orcan asetukset

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.

### SPEECH DISPATCHER KOMENNOT

Tässä on listattu Mikropuheen tuntemat Speech Dispatcer-komennot:

#### INIT

Alustaa syntetisaattorin. Mikropuhe on alustettu jo valmiiksi, eli tämä komento ei tee mitään.

#### QUIT

Lopettaa Mikropuheen Speech Dispatcher-tilasta.

#### LIST VOICES

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

#### SET

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
    .

#### AUDIO

Ei tuettu, ohitetaan kunnes tulee lopetusmerkki eli piste omalla rivillään.

#### SPEAK

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ä.

#### CHAR

Kuten SPEAK, mutta teksti tavataan.

#### KEY

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".

#### SOUND_ICON

Käsitellään kuten SPEAK-käsky.

#### STOP

Keskeyttää puheen.

#### PAUSE

Keskeyttää puheen väliaikaisesti myöhemmin jatkettavaksi. Sulkee äänikanavan tauon ajaksi.

#### RESUME

Avaa äänikanavan uudestaan ja jatkaa edellisellä PAUSE-käskyllä pysäytettyä puhetta. Puhetta jatketaan sen puskurin alusta, joka oli soimassa PAUSE-käskyn aluksi.

## DAISY PIPELINE

### Mikropuheen lisäykset

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.

### Daisy Pipeline asetukset

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.

### Asetustiedosto ttsbuilder.xml

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>

## ÄÄNEN SÄÄTÄMINEN

### PUHEEN SÄÄTIMET

Linux-versiossa kaikki säädöt tehdään tekstin sisäisillä parametreilla. Perusasetukset ladataan tiedostoista mplinux.ini ja libmplinux.ini.

#### Nopeus (-12..0..12)

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

#### Korkeus (-12..0..12)

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 (-12..0..12 / 13..99)

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.

#### Satunnaisvaihtelu (0..100)

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 (-50..0..50)

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.

#### Voimakkuus (0..100)

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 (0..24)

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.

#### Aku Ankka ja Robotti

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ä".

#### Puheääni

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.

Sisällysluetteloon

### PARAMETRIT TEKSTIN SISÄLLÄ

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.

Sisällysluetteloon

### LAULAMINEN

Mikropuheen versiosta 4.1.1 lähtien mukana on ollut laulumahdollisuus. Laulu toteutetaan tekstinsisäisillä parametreilla ja esimerkkilauluja on asennushakemiston alahakemistossa "LAULUT".

#### Lauluparametrit

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`

Sisällysluetteloon

### SAPI5-OHJAUSKOODIT

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ä:

& | &amp;
\ | &apos;
> | &gt;
< | &lt;
" | &quote;

Erikoismerkit åäöÅÄÖ voidaan antaa suoraan tai XML-entityinä: &#numero;. Esimerkiksi:

1&lt;2 | (1<2)
&#228; | (ä)

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>`

#### Tuettuja tageja ovat:

#### <reset/>

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.

#### <break time="xxx"/>

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.

#### <audio src="tiedosto.wav"/>
<audio src="tiedosto.wav">Teksti joka puhutaan jos tiedostoa ei löydy</audio>

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.

#### <beep freq="taajuus" length="millisekunnit" volume="prosentti"/>

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".

#### <emph>painotettavia sanoja</emph>

Alku- ja lopputagit. Painottaa tagien sisällä olevia sanoja.

#### <bookmark mark="numero"/>

Ei lopputagia. Kirjanmerkki - ei käytössä Linux-versiossa.

#### <silence msec="500"/>

Ei lopputagia. Lisää annetun verran (millisekunnit) hiljaisuutta puheeseen.

#### <pitch absmiddle="arvo">

Lopputagilla tai ilman. Asettaa puheen korkeuden suhteessa puheäänen peruskorkeuteen. Arvo välillä -10..0..10.

#### <pitch middle="arvo">

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.

#### <rate absspeed="arvo">

Lopputagilla tai ilman. Asettaa puheen nopeuden suhteessa puheäänen perusnopeuteen. Arvo välillä -10..0..10.

#### <rate speed="arvo">

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.

#### <spell>

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>`

#### <volume level="arvo">

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ä.

#### <voice name="nimi">

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.`

#### <mikropuhe svt="arvo"/>

Ei lopputagia. Asettaa sanavälitauon kuten Mikropuheen parametri -SVT. Arvo välillä 0..24

#### <mikropuhe rau="arvo"/>

Ei lopputagia. Asettaa puheen rauhallisuuden kuten Mikropuheen parametri -RAU. Arvo välillä -12..0..12.

#### <mikropuhe ven="arvo"/>

Ei lopputagia. Asettaa puheen venytysarvon kuten Mikropuheen parametri -VEN. Arvo välillä -50..0..50.

#### <mikropuhe sat="arvo"/>

Ei lopputagia. Asettaa puheen korkeuden satunnaisvaihtelun kuten Mikropuheen parametri -SAT. Arvo välillä 0..100.

#### <mikropuhe aku="arvo"/>

Ei lopputagia. Asettaa Aku Ankka-efektin kuten Mikropuheen parametri -AKU. Arvo välillä 0..1.

#### <mikropuhe rob="arvo"/>

Ei lopputagia. Asettaa Robottiefektin kuten Mikropuheen parametri -ROB. Arvo välillä 0..2.

#### <mikropuhetul name="nimi">

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=""/>`

#### <mpstereo pan="arvo">

Lopputagilla tai ilman. Stereomoodin vaihto kuten mplinux.ini-tiedoston soundstereomode=x: 0=Tuplamono, 1=Vasen, 2=Oikea, 3=Tuplamono toinen kanava eri vaiheessa.

### SAPI5/VOICEXML-KOODATTU ESIMERKKITEKSTI

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>`

Sisällysluetteloon

## TEKSTIN TULKINTA

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

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:

NORMAALI.TUL
Sisältää yleisimmät lyhenteet, mutta ei puhu irrallisia välimerkkejä. Tämä on hyvä normaaliin käyttöön.

LAUSETAUKO.TUL
Vastaava kuin NORMAALI.TUL, mutta lauseiden välillä on pidempi tauko.

OIKOLUKU.TUL
Sisältää yleisimmät lyhenteet ja puhuu irrallisia välimerkkejä. Irrallisten välimerkkien ja kaikkien erikoismerkkien puhuminen on rasittavaa, ellei tarkoituksena ole kuunnella tekstiä mahdollisimman tarkkaan.

SANOKAIK.TUL
Ei sisällä yhtään lyhenteitä ja puhuu irrallisia välimerkkejä. Käytetään, kun halutaan kuunnella tekstiä vielä oikoluku.tul -tulkintaa tarkemmin.

FACTA_.TUL
WSOY:n CD-Facta 96, 97, 98, 2002, 2003 ja 2004 elektronista tietosanakirjaa varten tehty tulkintalista. Tulkintalista sisältää CD-Factassa paljon käytettyjä lyhenteitä.

JFW_.TUL
Jaws for Windows -ruunlukuohjelman kanssa käytettävä tulkintalista. Ei sisällä lyhenteitä.

Sisällysluetteloon

### NUMEROIDEN TULKINTA

Numeroiden tulkintaa ohjaavat tulkintatiedoston alussa olevat määritykset.

#### Tarkista päivämäärät (NumTarkPvm)

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 (NumJarjNum)

"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

#### Tarkista normaalit luvut (NumTarkNorm)

Tämä valinta määrittää, puhutaanko numerot yksi kerrallaan vai lukuna.

Numero: 123
Tulkinta: satakaksikymmentäkolme
Ilman tulkintaa: yksi kaksi kolme

#### Tarkista jaotellut luvut (NumTarkJako)

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 (NumJakoMax)

"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 (NumNormMax)

"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 (NumMaxVuosiLyh)

"Pienin vuosi kaksinumeroisissa" määrittää pienimmän kaksinumeroisen vuosiluvun joka hyväksytään päivämääräksi.

#### Päivämäärän maksimivuosi (NumMaxVuosi)

"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.

Sisällysluetteloon

### TULKKAIMEN TOIMINTA

#### Toimintaperiaate

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.

#### Merkkiluokat

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.

#### Lyhenteen muoto tul-tiedostossa

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.

#### Lyhenteen ympäristöt

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.

#### Korvaava teksti

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"
    >

Sisällysluetteloon

## Mikropuheen kanssa testatut ohjelmat

- Ari Moision kehittämä Merlo-ruudunlukuohjelma
- BRLTTY-ruudunlukija

Sisällysluetteloon

## Kun teet puhuvan ohjelman...

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

Sisällysluetteloon

## TYÖRYHMÄ 1988-2003

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.

## KIITOKSET

Näkövammaisten keskusliitto Ry:

Palaute ja testaus.

Burmanin tietokone ja koulutus Oy:

Palaute ja testaus.

Sisällysluetteloon