• No results found

Analyse en verwerking van gegevens in de intonatiemeter

N/A
N/A
Protected

Academic year: 2021

Share "Analyse en verwerking van gegevens in de intonatiemeter"

Copied!
100
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Analyse en verwerking van gegevens in de intonatiemeter

Citation for published version (APA):

Hautus, E. H. (1992). Analyse en verwerking van gegevens in de intonatiemeter. (IPO-Rapport; Vol. 848). Instituut voor Perceptie Onderzoek (IPO).

Document status and date: Gepubliceerd: 03/04/1992

Document Version:

Uitgevers PDF, ook bekend als Version of Record

Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.

• The final author version and the galley proof are versions of the publication after peer review.

• The final published version features the final layout of the paper including the volume, issue and page numbers.

Link to publication

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

• You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:

www.tue.nl/taverne

Take down policy

If you believe that this document breaches copyright please contact us at:

openaccess@tue.nl

providing details and we will investigate your claim.

(2)

Postbus 513, 5600 MB Eindhoven

Rapport no. 848

Analyse en verwerkin~

van gegevens in de

Intonatiemeter

E.H. Hautus

(3)

Analyse en vef\Verking

van gegevens

in

.efiletef

tf:lt:J

/J1t0:r-'

tfe

door

Edwin Hautus

(4)

in

de

lntonatiemeter

(5)

Voorwoord

Dit verslag vormt de afsluiting van een stage die ik vanuit de faculteit Wiskunde &

Informatica van de Technische Universiteit Eindhoven heb gelopen bij het Instituut voor

Perceptie Onderzoek te Eindhoven.

Mijn stagebegeleider G. Spaai

wil ik

graag bedanken voor de ondersteuning en begeleiding.

Daamaast

wil ik

F.

Maas

bedanken voor de tijd die

hij

besteed heeft aan het toelichten van

de door hem geschreven programmatuur. Tot slot dank

ik

E .Gigi voor zijn geduld bij het

beantwoorden van mijn vragen over het Borland C++ pakket.

(6)

1

Inleiding

1

2

Beschrijving van

de

stage

3

2.1

Omgevingsanalyse

3

2.2

Deopdracht

5

2.3

Aanpassingen

5

3

Gebndkershandleiding

11

3.1

Het installeren

11

3.2

Het opstarten

11

3.3

Het hoofdmenu

11

3.4

Geheugengrenzen

14

3.5

Berekening van het gemiddelde en de

spreiding van de toonhoogte

15

3.6

Voorbeelden

16

4

Software documentatie

25

4.1

Algemeen overzicht van de filestructuur

25

4.2

Overzicht van datafile-fonnaten

26

4.3

Kort overzicht van de programma's

28

4.4

Pupils

29

4.5

Sort

30

4.6

Stmod

31

4.7

Pitch

31

4.8

Statl

32

4.9

Stat2

32

4.10

Tabel

32

4.11

Conlim

33

4.12

Conlim2

33

4.13

Load

33

s

Verheteringen voor

de

toekoimt

35

Bijlage

Code van

de

programmatuur

(7)

Hoofdstukl

Inleiding

Prelinguaal-dove sprekers ondervinden vaak problemen met bet reguleren van de

spraaktoonhoogte. De gemiddelde spraaktoonhoogte

is

veelvuldig te hoog of te laag.

Bovendien kenmerkt de spraak van prelinguaal-clove sprekers zich frequent door

af-wezigheid van toonhoogtevariaties tijdens het spreken, hetgeen resulteert in

toonhoogte-contouren die als vlak of melodieloos worden ervaren en die een monotone stem

weerspiegelen. Deze onnatuurlijke intonatie

kan

bijdragen tot een verslechtering van de

verst.aanbaarheid van de spraak van prelinguaal-clove sprekers. Bovendien wordt de

stemkwaliteit vaak negatief beinvloed. Een van de problemen in het intonatieonderwijs aan

dove sprekers is de dove leerling inzichtelijke infonnatie

te

verschaff en over de wijze

waarop men kan komen tot een natuurlijker toonh00gteverloop. VISUele afbeelding van de

toonhoogte

is

daartoe een van de mogelijkheden. Deze visuele infonnatie kan

dan

gebruikt

worden om het spreekproces te corrigeren.

In

bet verleden is gepoogd dove sprekers te leren intoneren door visuele afbeelding van de

ruw gemeten toonhoogtecontour. Dit stuitte echter op verschillende problemen.

In

de

eerste plaats verstoren de stemloze delen van het signaal het beeld van de continu

gepercipieerde toonhoogtecontour. In de tweede plaats warden er in natuurlijke spraak

ve)e onwillekeurige toonhoogtebewegingen gemaakt die voor de perceptie van intonatie

irrelevant zijn, de zogenaamde micro-intonatie. Micro-intonatie treedt met name op bij

overgangen tussen consonanten en vocalen. Door beide factoren is de ruw gemeten

toonhoogtecontour niet erg geschikt te dienen als visuele terugmelding van de

gerealiseerde toonhoogtecontour.

Orn

deze problemen op

te

lossen heeft het Instituut voor Perceptie Onderzoek

te

Eindhoven in nauwe samenwerking met het Instituut voor Doven te Sint-Michielsgestel een

systeem ontwikkeld dat visue)e terugmelding verstrekt over

de

gerealiseerde

toonhoogte-contour op het beeldschenn van een computer. Oat gebeurt in de vorm van een uit

aaneengesloten lijnstukken bestaande toonhoogtecontour waarin de voor waameming

irrelevance toonhoogtevariaties zi.jn weggewerkt, de zogenaamde gestileerde

toonhoogte-contour. Bovendien worden de klinkerinzenen gemeten en weergegeven. Dit laatste

gebeurt omdat het van belang

is

dat de toonhoogtebeweging juist gepositioneerd wordt in

de

lettergreep. De klinkerinzet

is

bier meestal het moment ten opzichte waarvan de

toonhoogtebeweging geplaatst client te warden.

Het ontwikkelsysteem moet dienen als basis voor een te ontwikkelen interactief

leerprogramma ter ondersteuning van het intonatieonderwijs aan doven. Hiertoe

zal

gebruikt warden gemaakt van de gebruikersomgeving

Microsoft-Wi~.

(8)

Momenteel wordt het systeem in een eerste proef getest op zijn bruikbaarheid voor het

intonatieondeIWijs aan doven. Een en ander betekent dat een door de leraar voorgesproken

en afgebeelde intonatiecontour door de leerling geimiteerd wordt. Hierbij krijgt de leerling

visuele terugkoppeling. 1ijdens het werken met het systeem worden een aantal

meet-resultaten opgeslagen. Voor elke imitatie worden een aantal waarden voor de toonhoogte,

klinkersterkte en amplirude opgeslagen. Verder wordt door de leraar voor elke irnitatie een

cijfer van 1 tot 5 gegeven, waarbij 5 de maximale en 1 de minimale score is. Een irnitatie

za1

verder in dit verslag ook wel trial genoemd worden. Momenteel wordt er gewerkt aan een

programma waannee deze meetgegevens kunnen worden bewerkt.

Het verslag is als volgt opgebouwd.

In

hoofdstuk 2 wordt de stageopdracht beschreven.

Verder geef ik een analyse van de siruatie aan het begin van de stage en behandel ik de door

mij ingevoerde veranderingen. Hoofdsruk 3 is een handleiding van het programma voor de

gebruiker en hoofdstuk 4 bevat de software-documentatie.

In

hoofdstuk 5 beschrijf ik een

aantal suggesties ter verbetering van het programma. Ten slotte is in de bijlage een listing van

de programmatuur te vinden. De hoofdsrukken zijn goed afzonderlijk te lezen zodat de lezer

alleen het voor hem relevante deel kan doomemen.

(9)

Hoofdstuk2

Beschrijving van

de

stage

2.1

Omgevingsanalyse

3

De

programmatuur bij het intonatiemeterproject

is

op te splitsen in de volgende twee delen:

1. De

leerlingmodule:

Dit deel

is

voor de leerling gemaakt. Het best.a.at uit de software die

de werking van de intonatiemeter en de representatie van de toonhoogtecontour op het

beeldschenn verzorgt. Met behulp van de leerlingmodule worden van elke imitatie (of

trial)

een aantal gegevens opgeslagen in een zogenaamde

ANA-ftle

[1].

2.

De

leraamwdule:

Dit deel is voor de leraar of onderzoeker gemaakt. Het best.a.at uit

software die

ANA

-files omzet in een aantal statistische overzichten en grafiekjes•.

De

belangrijkste

inf

onnatiestromen die een rol spelen bij bet lesgeven met de computer zijn

weergegeven in Figuur 2.1.

leerll·ng

B-_.,..-

'module

leerling

leerling C leerlin.9

---module

r

invoer via stem )

leroar invoervia

toetsenbord

diskettes met

ANA-files

leraarmodule

statistische software sort files • statl

files

stat2

files

pitch files

plot files

leraar/

onderzoeker

Figuur 2.1:

De

belangrijkste

lnformatiestromen

in het fntonatiemeterpmject

[1] Gigi E.(1991), Onlwe,p

van een

Untversele Tekst -VO Module, Afstudeerverslag

ms.

• f.r zijn plannen om het lnvoerformaat voor de leraannodule te vcranderen. Aan het begin van mijn stage was dit echrer nag niet bekend.

(10)

Naam*

Hoofd_Naam *

Volgnummer*

Datum

Tijd

Geluisterd*

Beoordeling (

cijfer tussen 1

en

5}

verder voor een bepaald aantal stappen:

Commentaar (

de spraaktekst

en

het type)

Leraar*

Amplitude

Toonhoogte

Klinkerwaarde

Leerling

Oefentijd*

Tabel 2.1:

Inhoud van een

ANA-file

De

infonnatie die in een

ANA-file

staat is te zien in Tabel 2.1. De

beoordeling

is een cijfer

van een tot vijf dat de leraar geeft voor de imitatie van de leerling. Met spraaktekst wordt

bedoeld de tekst die de spraakuiting weergeeft en met spraaktypewordt bedoeld het soort

toonhoogtebeweging (bijvoorbeeld sterk dalend of een punthoed beweging) dat geoefend

is.

De

infonnatie met sterretjes wordt bij de verdere verwerking van de gegevens door de

leraarmodule momenteel niet gebruikt. De vorm van de overzichten

za.l

nader warden

toegelicht in hoofdstuk 3. Als voorbeeld is hier een pitcb-overzicht gegeven:

••• Pitch···

Pupil, Jimi

period: frOlll 16-1-1990 to 18·1·1992

sentence label trialnr mean deviation

e ad u ls u ad u ad u ad u 88 aa la aa la aa ad aa ad

category trialnr mean deviation vowel 1 273.77 114 .07

vowel 2 212.20 14. 57

vowel 3 265.47 0.00

category mean deviation

vowel 250.48 27.28 l l l 2 3 l l 2 l 2 454.82 107.31 302 .14 203.22 265.47 176.36 247.11 232.75 354.86 200.64 30.20 14.31 20.12 12.31 16.55 13.07 34.22 94.23 27.55 91.09

(11)

2.2

De

opdracht

Voordat ik mijn stage began was er al software geschreven die de overzichten kon

produceren. Mijn opdracht bestond uit:

1. Het oplossen van de geheugenproblemen bij de opslag van de AM-4-files.

2. Het oplossen van de geheugenproblemen binnen de programma's die de overzichten

moesten produceren.

3. Het user-interface gebruikersvriendelijker maken.

4. Het uitbreiden van de overzichten met spraaktypegegevens.

5. Het inbouwen van een mogelijkheid om typefouten in de spraaktekst te kunnen

verbeteren.

2.3

Aanpassingen

1.

Geheugenproblemen bij de opslag van

de

gegevens

Aan het begin van mijn stage werkte het lerarensysteem uitsluitend met de in te geven

ANA--files. Elke AM-4-ftle kost ongecompri.meerd ongeveer 5 Kb aan geheugen. Aangezien een

leerling per sessie gemiddeld ruim 30 imitaties doet en er dus ook per sessie ruim 30

ANA-files gemaakt warden is het al snel niet meer mogelijk om de AM-4-ANA-files van alle leerlingen

op

te slaan op een harde

schijf.

Een andere mogelijkheid zou zijn om steeds weer alle leerlingdiskettes in te voeren als een

overzicht geproduceerd moet warden. Dit

is

echter erg omslachtig, vooral als bijvoorbeeld

elke twee weken een overzicht over de hele periode tot

clan

toe gevraagd is. In de door mij

voorgestelde oplossing warden de ANA-files op floppydisks bewaard, maar hoeven de

gegevens slechts een keer in de leraarmodule ingeladen te warden (mogelijk verspreid over

meerdere inlaadsessies).

Ik heb onderzocht wat de minimale informatie is die binnen de leraannodule momenteel

nodig is voor het maken van de overzichten. Hierbij heb ik gebruik gemaakt van een

methode uit

(21 :

de informatie waar bet om gaat is weergegeven in een

sttUctuurdiagram

(zie Figuur 2.2). Elke

trial

wordt uniek geidentiflceerd door het tijdstip, de datum en de

leerling die de

trial

doet. Elke leerling

kan

immers maar

een

trial

tegelijk doen. Verder moet

van elke trial de beoordeling, gemiddelde toonhoogte, de deviatie van de toonhoogte en

natuurlijk bet oefenmateriaal bijgehouden warden.

[2] A.T .M. Aens, G. Albas, K.M. van Hee, Conceptueel Modelleren van Systemen, lien leidraad voor

systeemontwikkellng, Beperkte Uitgave 19<)1.

(12)

I- - - - -1 I

t··d

I I 1

1

"-I I '

---J ',

'

·---,

I I

: s.d. toonhoogte

~

- __

I---'

,---,

I I __

: gem. toonhoogte :

-L _____________ I ,I - - - ✓ I I ,

• beoordeling ~,,

I I

'

'

' '

leerling

,

---i

'

'

spraak

'

~---f

1-,1"'--- - - - -•

naam

:

~

~---J

sess1e

r

i- - - -,

---~ datum :

L - - - _1

,---1 I

__ -: spraaktekst

:

---'

L - - - _1

materiaal

---,

- - I

- -: spraaktype

I

Toelichting bii de notatie

L---'

1 object A----•--- B A---8 A r---8

c;2r--B

C ___________ ,, I I : eigenschop :

L---•

Een eigenschop heert geen uitgoande pijlen

bij elke A hoort wellicht een B bij elke A hoort minstens

een

B bij elke A hoort precies een B A is uniek bepoold door B en C

Figuur 2.2: Structuurdiagram bij

de

lerarenmodule

A.an

de hand van Figuur 2.2 heb

i,!{

besloten om enkele nieuwe filetypen in te voeren die

werken als een inteme store voor de lerarenmodule. Hiennee

krijgt

bet lerarensysteem uit

Figuur 2.1 dus een intern geheugen. Dit

is

schematisch weergegeven in Figuur 2.3. De

geheugenkosten van de opslag van elke

trial

zullen uiteindelijk worden gereduceerd tot

ongeveer 28 bytes per trial. De nieuwe manier van opslag heeft de volgende voordelen:

De geheugenproblemen op de harde

schijf

zijn (vrijwel geheel) opgelost.

Het

is

niet meer nodig om elke keer alle diskettes in te voeren: alleen de nieuwe

diskettes moeten nog ingevoerd te worden.

(13)

leroormodule

..

stotistische software

p

diskettes

I I

...

I

met ANA-files

I I I I I I 'f'

.

inteme store

nomes.txt file

sents.txt file

store files

stst files

..

..

sort<nr>.txt

stot

1

<nr>.txt

stot2<nr>.txt

pitch<nr>. txt

plot<nr>.txt ·

leroor/

onderzoeker

Flguur 2.3: Nieuwe opzet voor

de

lerarenmodule

De statistische verwerking gaat sneller omdat binair weggeschreven en gelezen wordt.

Het wordt mogelijk de gebruiker te wijzen op bepaalde spelfouten aan de hand van

reeds

eerder ingevoerde uitingen/leerlingnamen en labels.

In de store zullen de volgende files bijgehouden worden:

1.

nam.es.tx:t:

Het aantal leerlingen gevolgd door de lijst met alle leerlingnamen van

de

leerlingen die meedoen. De plaats waar een leerling in deze file staat, noem ik het

leerlingnummer.

Deze wordt bijgehouden met behulp van de leerling-informatie uit de

ANA -files die ingevoerd warden.

2.

sents.tx:t :

Het ,aantal zinnen gevolgd door de lijst met alle zinnen die in de periode

gebruikt worden. Het woord 'zin' wordt hier gebruikt in de betekenis van 'spraaktekst',

er

kan

dus ook sprake zijn van alleen maar een klank.

De

plaats waar een zin in deze file

staat noem ik het

sentencenummer.

3.

labeltx:t :

Het aantal labels gevolgd door de lijst met alle labels die in

de

pericxle

gebruikt worden. Labels geven het type van het spraakmateriaal aan.

De

plaats waar het

label in deze file staat noem ik het

labelnummer.

Verder zullen voor elke leerling uit de file

names.txt

met leerlingnummer

k

de

volgende

files bijgehouden warden:

4.

store<k>, stst<k> :

de trial gegevens voor elke trial. De files bestaat uit een integer

n,

bet aantal trials dat voor de leerling

is

opgeslagen, en

n

weggeschreven variabelen van

het type struct trial:

(14)

struct trial

{

}

time_t time;

int snr;

char label;

char judge;

float avp;

unsigned int devp;

betekenis

als gedefinieerd in time.h

het nummer van de zin

het nummer van het label

judgement '0' ••. '5'

average pitch

1

00 x deviation pitch

kosten in bytes

4

2

l

l

4

2

+

14

In

de

store

files zijn de trials gesorteerd op tijd en in de

stst

files zijn ze gesorteerd op

zin

en

per

zin

weer op tijd. Deze dubbele opslag is nodig omdat er oak binnen de programma's

geheugenproblemen zijn. De problemen binnen de programma's zijn op dit moment

bepalend voar de hoeveeldheid trials die het systeem aankan.

2.

Geheugenproblemen binnen

de

programmatuur

De problemen binnen de programma's heb

ik

slechts gedeeltelijk kunnen oplossen. Voar

mijn stage was 660 een bovengrens voar het aantal trials dat per leerling verwerkt kon

warden. Dit probleem is nu opgelost.

Er

kunnen nu ruim 10.000 trials per leerling verwekt

worden per 'inlaadsessie'. Door meerdere keren in te laden kunnen in prindpe willekeurig

veel trials opgeslagen warden, zolang er nag ruimte op de harde schijf is.

Er

zijn echter in de programmatuur voor het maken van de overzichten wel nag problemen.

In

deze programma's zijn er bovengrenzen voar het aantal zinnen, het aantal trials per

zin

per leerling en het aantal sessies per leerling. Ik heb deze bovengrenzen behoarlijk kunnen

verhogen. Het blijkt,echter dat de grenzen in de praktijk nag te krap zijn. Dit betekent dat de

software grotendeels herschreven moet warden.

1k

heb geen tijd gehad am de software voor alle overzichten te herschrijven. Wel heb

ik

als

voarbeeld een module geschreven waarmee zes tabellen gemaakt warden zonder dat er

geheugenproblemen aptreden. De inhaud van de tabellen

zal

beschreven warden in

hoafdsruk 3. 1k heb de geheugenproblemen kunnen vermijden door de gemiddelden en

deviaties

on the fly

te berekenen: tijdens het doorlopen van de data warden gemiddelden en

deviaties bijgehauden en weggeschreven. Hierdoor hoeft er voor de elementen van de

tabellen geen geheugen gereserveerd te warden. Dit

is

alleen mogelijk als de data op een

bepaalde manier gesorteerd

is.

Voar het berekenen van een tabel wordt de infonnatie die

nodig

is

dan

oak gesorteerd in een voar die tabel geschikte volgorde.

Omdat het sorteren in het geheugen plaatsvindt, is er nog wel een bovengrens voar het

aantal trials dat per leerling verwerkt

kan

warden.

Er

kunnen echter zeker 25.000 trials per

(15)

leerling veiwerkt worden. Wanneer men zeker wil zijn dat de uiteindelijke versie CXlk

tabellen over meerdere jaren van intensief gebruik aankan,

zal

het sorteeralgoritme zo

aangepast moeten worden dat het gebruik maakt van achtergrondgeheugen, bijvCXlrbeeld

de

harde schijf. De tabellen zullen dan CXlk aangepast moeten worden omdat ze anders

onoverzichtelijk worden.

1k heb vCXlr het maken van

de

zes tabellen een procedure geschreven waarmee als

parameter meegegeven wordt water in de tabel bij elkaar moet komen te

staan:

de

zinnen,

labels of sessies. Hiervan kunnen er twee gekozen worden zodat bijvCXlrbeeld een

overzicht per sessie per zin of per label per sessie gevraagd

kan

worden.

Zo

onstaan dus 3

x 2 • 6 tabellen. Deze aanpak bespaart een heleboel ccxle. Bovendien heeft dit het vCXlrdeel

dat alle tabellen er hetzelfde uitzien en dat veranderingen automatisch in alle tabellen

tegelijk veranderd worden {bijvCXlrbeeld een extra gemiddelde). Het is CXlk gunstig

VCXlf

toekomstige uitbreidingen: als bijvCXlrbeeld een extra opsplitsing van de trials nodig is,

krijgt men 4 x 3 - 12 - 6 • 6 tabellen in

een

keer er bij.

3.

Het

user

interface

Het user interface biedt nu meer flexibiliteit in de vorm van een menu. Er kunnen gegevens

geproduceerd worden zonder nieuwe data in te laden en er kunnen gegevens ingeladen

worden zonder overzichten te produceren.

Zo

kan

nu bijvCXlrbeeld achteraf besloten

worden informatie over een bepaalde periode op te vragen.

Er

zijn CXlk enkele faciliteiten

ingebouwd om gegevens uit te wissen. Het user interface

zal

uitgebreid worden beschreven

in hCXlfdsruk 3.

4.

Spraak-typegegevens

De spraak-typegegevens worden nu in de vorm van labelnummers opgeslagen in

de

store-en stst-files.

In het pitcb-overzicht wordt nu onderscheid gemaakt russen zinnen met

verschillende labels. Bovendien zijn er spraak-typegegevens te vinden

in

vier van de zes

tabellen die met de nieuwe module

tabel

te maken zijn.

s.

Correctie van tikfouten

/

Als het systeem een nieuwe zin, label of leerlingnaam in een AM4-file tegenkomt wordt aan

de gebruiker gevraagd of er sprake is van een tikfout.

Er

bestaat dan de mogelijkheid om de

zin, label of naam opnieuw

in

te voeren. Pas

a1s

een zin, label of naam goedgekeurd

is

wordt de lijst met zinnen, labels of names aangepast.

Naast deze aanpassingen heb ik bovendien een installeerprogramma geschreven zodat het

installeren van de programmaruur nu zeer eenvoudig is.

(16)

Hoofdstuk3

Gebruikershandleiding

Met de lerarenmodule kunnen uit

ANA

-files een aantal (statistische) overzichten gemaakt

worden.

In

deze handleiding zal eerst het installeren van

de

programmatuur op harde schijf

behandeld worden. Vervolgens zullen de verschillende functionele mogelijkheden en de

vorm van de verschillende overzichten beschreven worden.

Er

zal ook nog iets gezegd

worden over mogelijke problemen die tijdens het gebruik kunnen ontstaan. Ten slotte zal

ter

verduidelijking van elk overzicht een voorbeeld gegeven worden.

3.1

Het

installeren

U installeert het systeem door het programma

install

van de installeerschijf aan te roepen.

Hiermee worden automatisch de benodigde directories en files geopend. De

programmatuur zal neergezet worden in de directory stmod.

3.2

Het

opstarten

Het opstarten van het programrna gaat als volgt:

• kies directory stmod door

11

cd stmod\

11

in te typen. Alie overzichten worden naar deze

directory geshreven

• tik

"stmod" in, waarmee het programma geactiveerd wordt.

3.3

Het

hoofdmenu

Als het programma ingeladen

is,

verschijnt het hoofdmenu.

In

het hoofdmenu heeft u de

volgende keuzes :

l. load nieuwe data in

2. Produceer de statl files

3. Produceer de stat2 files

4. Produceer de pitch files

5. Produceer de tabel files

6. Moak een lijst van zinnen

7. Verwijder de data van een leerling

8. Verwijder de data van alle leerlingen

9. Verwijder de data van alle leerlingen en alle zinnen

l 0. Stoppen

(17)

Ad 1

Als u keuze

1

rnaakt in het hoofdmenu wordt gevraagd van welke pad u de data wilt

lezen. Als u bijvoorbeeld van drive

A wilt

lezen,

tik

clan

"a:" in.

Als het programrna

tijdens het inlezen een nieuwe leerlingnaam, zin of label ziet, zal gevraagd worden of

dit inderdaad een nieuwe naam

is

of dat er sprake

is

van een tikfout.

In

dit laatste geval

kunt u de fout verbeteren. Na het inlezen moeten

de

ingelezen trials gesorteerd

worden. Dit

kan

enige tijd in beslag nemen.

Ad

2

Door optie

2

te kiezen krijgt u van elke leerling met nummer n een file met naam

statl<n>.txt. Hierin

staan

de volgende overzichten:

1. sessievolgnr I zin (=spraaktekst) I trialnr I beoordeling

a/le trialbeoordelingen op chronologische volgorde

2. sessievolgnr I zinnr I zin I aantal keer dot beoordeling 1,2,3,4 en

5

is

gegeven

overzicht van de verdeling van de beoordelingen per zin voor elke sessie

3. sessievolgnr I zinnr I zin I absoluut en relatief aantal keer dot een beoordeling

uit de categorieen

l

+2,3 en

4+5

is

gevallen

overzicht van de verdeling van de beoordelingen per zin voor elke sessie in drie

categorieen

4.

zinnr I zin I gemiddelde beoordeling I deviatie van de beoordeling

I aantal beoordelingen bij de zin

overzicht van gemiddelde

en

deviatie over de beoordelingen per zin

Ad 3

Door optie 3 te kiezen krijgt u van elke leerling met nummer n een file met naam

l.

zinnr I lijst van beoordelingen in chronologische volgorde I gemiddelde

beoordeling

1

deviatie van de beoordeling

lijst van beoordelingen in chronologische volgorde met gemiddelde beoordeling

en

deviatie van de beoordeling per zin

2. trialvolgnr I gemiddelde beoordeling I deviatie beoordeling I aantal

beoorclelingen met dot trialvolgnr

gemiddelde

en

deviatie van de beoordeling per trialvolgnr (a/le zinnen samen).

/

stat2<n>.txt. Hierin staan de volgende overzichten:

Verder kunt u, indien gewenst, grafiekjes laten maken in de file

plot2<n>.txt.

Er

kan

van elke zin een grafiek gemaakt worden of er kunnen zinnen of periodes vergeleken

worden in grafiekjes.

In

de grafiekjes

is

steeds de tijd uitgezet tegenover de

beoordeling.

(18)

Ad 4

Door optie

4

te kiezen krijgt u van elke leerling met nummer

n

een file met naam

pi,tcb<n>.txt. Hierin staan de volgende overzichten:

1.

zin I labelnr (=zinstype) I trailvolgnr I gemiddelde toonhoogte I deviatie van

de toon hoogte

lijst van a/le gemiddeldes

en

deviaties van de toonhoogte per zin per labelnr

per trialvolgnr.

2.

zinscategorie I trialvolgnr I gemiddelde toonhoogte I deviatie van de

toonhoogte

lijst van a/le gemiddeldes

en

deviaties van de toonhoogtes per zinscategorie per

trialvolgnr (a/le zinnen van

een

categorie samen).

3.

zinscategorie

I

gemiddelde toonhoogte

I

deviatie van de toonhoogte

overzicht van de gemiddelde toonhoogte

en

de deviatie van de toonhoogte per

zi nscategorie

Ad.S

Met optie

S

kunt u een zestal tabellen maken die weggeschreven worden naar de

directorie tabel .

De

tabellen hebben allen de volgende vorm:

A

B

judgements

lijst van judgements met A a 1 en B b1 1

[ gemiddelde en deviatie van de lijst

1

lijst van judgements met A a 1 en B b 1

2

[ gemiddelde en deviatie van de lijst

1

..

[ gemiddelde en deviatie van de lijst van judgements van ad

etc.

Hierbij zijn A, B steeds 'sentence','label' of 'session',~ de i-de

zin,

label of sessie en bii de

j-de

zin,

label of sessie bij

~-Ad 6

Met optie

6

kunt u een lijst met zinnummers en de bijbehorende zinnen produceren.

Dit

is

nodig om de overzichten die gebruik maken van zinnummers te begrijpen. De

zinnen worden weggeschreven naar de file

sentence.txt.

(19)

Ad 7 Door aptie 7 te kiezen kunt u de gegevens van een leerling uitwissen. De gegevens

kunnen niet meer terug gehaald warden, zcxlat alle data met behulp van ANA-files

apnieuw moet warden ingelezen.

Ad

8

Als u optie

8

kiest, warden alle leerlinggegevens uitgewist, zcxlat bijvoorbeeld aan het

eind van een periode helemaal apnieuw begonnen

kan

warden.

Ad

9

Als u aptie

9

kiest, worden alle leerlinggegevens uitgewist. Bovendien warden alle

zinnen verwijderd. Als men in een nieuwe periode weinig aude zinnen verwacht, is het

vertstandig deze aptie in plaats van aptie

6

te maken.

Ad 10 Als u het programma wilt

ftrlaten, moet u keuze 10 maken.

3.4

Geheugengrenzen

Er

zijn grenzen aan de hoeveelheid gegevens die het systeem aankan.

Voor de overzichten

pitch, st.atl, stat2:

Maximaal aantal zinnen :

l

00

Maximaal aantal trials per zin per leerling : 250

Maximaal aantal sessies per leerling : 100

Maximaol aantal trials dot in een keer ingeladen kan worden : 10000

Voor de

tabel

overzichten:

Maximaal aantal zinnen : 1000

Maximaal aantal s.essies per leerling : 500

Maximaal aantal trials per leerling : 25.000

Indien de geheugengrenzen een anoverkamelijk abstakel vormen, dient contact opgenamen

te worden met de programmeurs.

(20)

3.5 Berekening van bet gemiddelde en de spreiding van de

toonhoogte

We rekenen eerst de toonhoogtes uit de ANA-files om near ERB. Dit doen we met

behulp van deling door 100. Daarna zetten we de zo verkregen frequenties in ERB

om near Herz met behulp van de volgend formule:

f

= 165.4 (1

oo.06E_

1)

waarbij E de toonhoogte in ERB en

f

de frequentie in Herz is.

Het gewogen gemiddelde wordt als volgt bepaald:

u =

(SUM

i::

w[i]

x

f[i]) /

(SUM

i::

w[i])

waarbij

w[i]

= amplitude[i]/1000.

De gewogen spreiding s volgt met berekening van relatieve importantie:

w'[i]

=

nxw[i] /

(SUM

i::

w[i])

(SUM

i:: w'[i]xf[i]2 -

(SUM

i:: w'[i]xf[i]

)2 /

n

s2

=

-n-1

n

(SUM

i:: w[i]xf[i]2)

= - - x ' ( - - - u2)

n-1

(SUM

i:: w[i])

waarbij n het aantal waarnemingen is.

Is de gewogen spreiding groter dan 10, dan wordt het hiervoor beschreven

algoritme herhaald voor alle pitch waarden, die voldoen can:

u - 3*d < pitch < u + 3*d

(21)

3.6

Voorl:,eelden

Hier volgt van elke van de overzichten

pitch, statl ,stat2

en

tabel

een voorbeeld .

••• Pitch··· Pupil: Jimi

period, from 16·1-1990 to 18·1·1992

sentence label trialDZ -an deviation

category trialnr vowel vowel vowel category vowel •·· Statl Pupil: Jimi l 2 3 mean 250.48 e ad u la u ad u ad u ad u

••

aa ls aa la aa ad Ila ad mean deviation 273.77 114.07 212.20 u. 57 265.47 0.00 deviation 27.28 period, from 16·1·1990 to 18·1·1992 l l l 2 3 l l 2 l 2 454.82 107.31 302.U 203. 22 265.47 176.36 247 .11 232.75 354.86 200.64 30.20 14.31 20.12 12.31 16.55 13.07 34.22 94.23 27.55 91.09

I

pitch - tabel

21

I

pitch - tabel

3

I

I

pitch - tabel

1

I

aeasionnr l 2 3 4 4 4 5 5 6 7

sentence trialnr judgement

u l 3 u 2 3

I

slat 1 - label 1

I

u 3 1 u 4 3 aa l 2 aa 2 3 e l 4 u 5 5 aa 3 3 aa 4 4

aeasionnr aentencenr aentence number of judgements,

l 2 3 4 5

jstatl - tobel 2

I

l 3 u 0 0 l 0 0 2 3 u 0 0 l 0 0 3 3 u l 0 0 0 0 4 3 u 0 0 1 0 0 4 4 aa 0 l l 0 0

s

2

0 0 0 l 0 5 3 u 0 0 0 0 l 6 4 aa 0 0 l 0 0 7 4 aa 0 0 0 1 0

(22)

aeaaionnr aentencenr l 2 3 4 4 5 5 6 7 3 3 3 3 4 2 3 4 4 aentence number of abaolute u 0 u 0 u 1 u 0 aa l • 0 u 0 aa O aa O judgement a relative o.oo o.oo 1.00 o.oo 0.50 o.oo 0.00 0.00 0.00 1+2 number of absolute 1 1 0 1 1 0 0 l 0 jud9e11ents 3 relative 1.00 1.00 o.oo 1.00 0.50 o.oo 0.00 1.00 0.00 aentancenr 2 ■ entence e u aa mean deviation 4.00 0.00 number of triala: 1 3 4 ••• Stat2 •·· Pupil: Jillli 3.00 1.26 5 3.00 0.71 4 period, from 16-1·1990 to 18·1·1992 aentencenr 2 3 4 jud9e11enta

"

3 3 l 3 5 2 3 3 4 trialnr 1 2 3 4 5 mean deviation 3.00 0.82 3.00 0.00 2.00 1.00 3.50 0.50 5.00 o.oo 11ean deviation 4.00 0.00 3.00 1.26 3.00 0.71

I

stat2 - tabel

1

I

stat2 - tabel 2

I

lstatl -tabel

3

I

number of absolute 0 0 0 0 0 1 l 0 l jud9e11ents relative o.oo 0.00 o.oo o.oo o.oo 1.00 1.00 0.00 1.00

jstatl -tabel

41

Gebruikersbandleiding

(23)

• • · 'l'abel l · · · ·

Leerling ,Jimi

Van, Tue Jan 16 15:30,55 1990

Tot: Sat Jan 18 11:29:52 1992

label aentenee ls u aa { average, 2.6?, ad

u aa ( average: 3.33, 88 u ( average, 3.00, 3 average, 3.00, 2 3 { average: 2.50, deviation 0.47 I 4 average: 4.00, 5 3 1 average, 3.00, 3 4 ( average: 3.50, deviation 1.25 J 3 [ average: 3.00, deviation 0.00 I

ITobel

1

deviation 0.00 J deviation 0.50 I deviation 0.00 J deviation 1.63 l deviation 0.50 ) deviation 0.00 )

(24)

··· Tabel 2 ··•·

Lee.ding ,Jimi

Van: 'l'ue Jan 16 lS:30:SS 1990

Tot, Sat Jan 18 11:29:52 1992

label aeesion la 16-1·1990 16-1-1991 16·1·1992 judgements 3 average, 3.00, 2 ave.rage: 2.00, 3 I ave.rage: 2.67, ad I ave.rage: 3.00, deviation 0.47 J 15-1-1991 l ave.rage, 1.00, 16·1·1991 3 3 ave.rage: 3.00, 17•1·1991 4 5 ave.rage: 4. so, 18·1·1992 4 [ average: 4.00, I average: 3.33, deviation 1.25 I 8S 17•1·1990 3 I ave.rage: 3.00, l ave.rage: 3.00, deviation 0.00 J

!Tabel

2

deviation 0.00 J deviation 0.00 l deviation 0.00 ) deviation 0.00 I deviation 0.00 I deviation 0.50 I deviation o.oo J deviation 0.00 J Gebroikersbandleiding

(25)

••• Tabel 3 •·•• Leerling :Jimi

Van: Tue Jan 16 15:30:55 1990

Tot: Sat Jan 18 ll,29,52 1992

jTabel

3

•entenee label judgements

e ad I average: 4.00, u ls ad 811 ( average, 3.00, aa ls ad [ average, 3.00, 4 ( average, 4.00, deviation 0.00 I deviation 3 average, 3.00, 3 5 l average: 3.00, 3 I average: 3.00, 1.26 I 2 3 average: 2.50, 3 4 I average, 3.50, deviation 0.71 J deviation 0.00 I deviation 0.00 I deviation 1.63 I deviation o.oo I deviation 0.50 I deviation 0.50 I

(26)

••• Tabel 4 · · · ·

Leerling :Jimi

Van: Tue Jan 16 15:30:55 1990 Tot, Sat Jan 18 11:29:52 1992

aentence aeaaion

17-1-1991 4 ( average: 4.00, I average: 4.00, deviation 0.00 J u 16-1-1990 17-1-1990 15-1-1991 16-1-1991 17-1-1991 I average: 3.00, deviation

..

16-1-1991 16-1-1992 18-1-1992 3 average: 3.00, 3 average: 3.00, 1 average: 1.00, 3 average: 3.00, 5 I average: 5.00, 1.26 I 2 3 average: 2.50, 3 average: 3.00, 4 ( average: 3.00, [ average: 4.00, deviation 0.71 J

ITabel

4

judgements deviation 0.00 J deviation 0.00 I deviation 0.00 I deviation 0.00 I deviation 0.00 I deviation 0.00 I deviation 0.50 ] deviation 0.00 ) deviation 0.00 ] Gebruikersbandleiding

(27)

•·• Tabel 5 •••• Leerling ,Jimi

Van, Tue Jan 16 15,30:55 1990 Tot: Sat Jan 18 11:29:52 1992 eession label 16-1-1990 ( average: 3.00, 17•1-1990 88 ( average: 3.00, 15•1·1991 acl I average: 1.00, 16·1·1991 ls eel I average: 2.67, 17•1·1991 ad [ average, 4.50, 16·1-1992 la ( average: 3.00, 18·1·1992 ad ( average: 4.00, judgements 3 [ average: 3.00, deviation 0.00 ) 3 [ average: 3.00, deviation 0.00 I 1 I average: 1.00, deviation 0.00 I 2 average, :LOO, 3 3 I average: 3.00, deviation 0.47 J 5 4 I average: 4.50, deviation 0.50 I 3 I average: 3.00, deviation 0.00 I 4 [ average: 4.00, deviation 0.00 I

ITabel

5

deviation 0.00 ) deviation 0.00 J deviation 0.00 I deviation 0.00 J deviation 0.00 I deviation 0.50 I deviation 0.00 I deviation 0.00 )

(28)

•·· Tabel 6 ·•·· Leerling ,J'imi

Van: Tue Jan 16 15:30:SS 1990

Tot, Sat Jan 18 11:29,52 1992

8ession sentence 16·1·1990 u I average, 3.00, 17•1·1990 u [ average, 3.00, 15·1·1991 u ( average: 1.00, 16·1·1991 u aa I average, 2.67, 17•1·1991 e u ( average, 4.50, 16-1-1992 aa ( average, 3.00, 18·1-1992 aa I average, 4.00, 3 I average: 3.00, deviation 0.00 ) 3 I average: 3.00, deviation 0.00 I 1 [ average: 1. 00, deviation 0.00 ) 3 average: 3.00, 2 3 I average, 2. 50, deviation 0.47 I 4 average, 4,00, s I average, 5.00, deviation 0.50 ) 3 I average: 3.00, deviation 0.00) / 4 ( average: 4.00, deviation 0.00 I

ITobel

6

judgements deviation 0.00 ) deviation 0.00 J deviation 0.00 ) deviation 0.00 I deviation O.SO J deviation 0.00 J deviation 0.00 J deviation 0.00 I deviation 0.00) <Jebruikersbandleiding

(29)

25

Hoofdstuk4

Software documentatie

4.1

Algemeen overzicht van

de

fllestructuur

In Figuur 4.1

is

een overzicht te zien van

de

ftlestructuur. Hoofdstuk 4

is

opgebouwd

,---

I ,_L_J_ I

:_~~~~~:

I ; llat2<lnr>.bd : '

.

I - lt ; Tctnr>P<lnr>.bd :: J . . . , . . . -I • r- ... _ ----, « 'l - -· .. ~- ... · 1 I I : 11atl<lnr>.bd '. • plot2<lnr>.bd ; keuze 2,3,4 : overzicht prodix:eren slmod keuze I : inloden notatie: I I ... ,. .. r---( I I I I I I I I

'

I '

.

'

.

', I ' t "", , ' I

'

~ I > 't ..,._ I '\. I -., 7l..,. ' , J , \ I , ... '"" "" t ' I

~-,--

... ___ , I , I I ' , I , ' r:•-~~"•••• I •• :;: ••• , , names.Ix#: ---··• :slore<lnr> : : sents.bd : : stsl<lnr> :

~--•40:•-• :

labels.bet : ~--,.,.----• ' ,.... f

____

..,_,____ I ,,, ... ~~ ', ,' .. ..

'"'

, ... '

.

, , ' '

---' ---'

--·

... "'I,..,_,.. __ : ANA-files ' I I

---·

module met eigen functie main() A

(...binding met bovenkont) A least uit file f

module zcnder functie main(I

r ... ,

: slore<nr> : permonente opslogfile

---·

r--··,., -,

I lsf<nr> I lijdelijke datal'ile

~---'

pi#r::hcnr>.bd

----'----,

: f :

,..

...

,.

...

B (...binding met onderkont)

B least uit en/ of achrij~ in file f

<lnr> • '-"lingnummer

<lnr:> • tabelnummer

Figuw-4.1

(30)

rondom Figuur 4.1. Eerst worden in paragraaf 4.2 de datafile-forrnaten behandeld. Daama

worden in paragraaf 4.3 de programma's kort besproken. In de rest van de paragraaf worden

de programma's meer in detail besproken (paragraaf 4.4 - 4.13).

4.2

Overzicht van

datafl]e-formaten

In deze paragraaf

zal

een overzicht van alle door de programmatuur gebruikte filefonnaten

gegeven worden.

Een

ANA.ftle is een tekstftle met daarin

de infonnatie over een trial. De

infonnatie met een

*

wordt op dit

moment niet gebruikt. Het uitlezen van

ANA.ftles

vindt plaats in

afread.

Het

commentaar

in een

ANA-file

bestaat

uit de spraaktekst met daar achter tussen

haakjes het spraaktype.

1.ANA

I I

, ANA-files :

I _ _ _ _ _ _ _ _ _ 1 Naam*: Hoofd_Naam *: Volgnummer*: Datum: Tijd:

Commentaar : (de

spraaktekst

en

het type)

Leraar*: Leerling : Oefentijd* : Geluisterd* :

Beoordeling :

(cijfer tussen 1

en

5)

verder voor

een

bepaald aantal stappen:

Amplitude Toonhoogte Klinkerwaarde

2.

tst<nr>

r

-' tst<lnr> :

~

-

---

-

_,

Een ongesorteerde lijst van trial gegevens:

Tijd\Datum Zinnummer Labelnummer Beoordeling gem.toonhoogte dev. toonhoogte

waarbij Tijd\Datum gelijk is

aan een

string van de vorm:

Joor - Maand - Dag Uur: Minuut: Seconde

Bij elke leerling met nummer nrwaarvan zojuist inforrnatie is ingelezen hoort een

tst<m'>

file

met daarin de infonnatie van de zojuist ingelezen trials. Alleen de infonnatie die nodig is

wordt bewaard. In plaats van een spraaktekst en spraaktype zijn het bijbehorende

zinnummer en labelnummer opgeslagen•. De gemiddelde toonhoogte en de deviatie van de

toonhoogte zijn opgeslagen tot twee cijfers achter de konuna. De

tst

files worden gernaakt in

afread

en gelezen in

sort.

(31)

3. names.bet/ sents.txt / label.txt

Een getal

n

dot aangeeft hoeveel leerlingnamen/ zinnen / labels

opgeslagen zijn gevolgd door de lijst van /zinnen/ labels (steeds

gescheiden door returntekens}.

i - - - -.

• names. txt •

I I

, sents.txt

,

: labels.txt :

I I

---In

de tekstfiles names.txt, sents.txt en label.txt warden repectievelijk alle leerlingnamen,

zinnen en labels bewaard.

De

plaats waar een leerling /

zin /

label in deze file staat komt

overeen met het leerling- /

zin-

I label-nummer.

De

files wordt bijgewerkt in

afread

en

uitgelezen in pitch, statl

en

stat2.

4.

tstnr

De lijst met de nummers van de leerlingen waarvoor zojuist

een

I I

, tstnrs ,

,

_____

,

tst-file is gemaakt. De nummers zijn gescheiden door spaties. De lijst wordt

afgesloten met het cijfer -1 ( end-of-file teken}

De

file

tstnrwordt gemaakt in

afread

en gebruikt in

sort.

5.

store<nr> , stst<nr>

Dit zijn binair weggeschreven files die bestaan uit

een

integer

n

gevolgd door n

structures van het type trial:

struct trial

{

}

time_t time;

int snr;

char label;

char judge;

unsigned int avp;

unsigned int devp;

betekenis

als gedefinieerd in time.h

het nummer van de zin

het nummer van het label

jydgement

1

0

1 ••• 1

5'

1

00 x average pitch

1

00 x deviation pitch

---,

:store<lnr> :

._

_______

,

i---,

• stst<lnr> :

._

_______

,

De

files

store<nr'> en stst<nr> zijn files waarin alle trials van leerling nr

staan

opgeslagen.

In

de files

store<nr> zijn de trials gesorteerd op tijd.

In

de files

stst<nr'> zijn ze opgeslagen

op zinnummer en per

zin

op tijd. Deze dubbele opslag

is

nodig om geheugenproblemen

binnen de programma's pitch,statl en stat2 te vermijden. Pitch en statl gebruiken

store<nr'> files en stat gebruikt stst<nr> files.Verder zijn er nog de uiteindelijke uitvoerftles

(32)

statl<n1'>.txt, stat2<n1'>.txtenpitcb<n1'>.txt. Voor een beschrijving van deze files verwijs ik

naar hfst 3, de gebruikershandleiding.

4.3

Kort ovenicht van

de

programma's

Het programma

stmod

is

het user interface. Dit deel zorgt ervoor dat de gewenste execute

files worden aangeroepen. Het prograrnma regelt zelf de gebruikerskeuzen 7, 8 en 9 :

hiennee

kan

een

deel van de gegevens uitgeveegd worden.

Het programma

pupils,

waarbij het project 'pupils.proj' hoort, verzorgt het inlezen van

de

data. De data wordt omgezet

naar

tst -files. Hiervoor worden de deelprogramma's

fdisks,

pllst2 en

afread

gebruikt. De nummers van de leerlingen waarvan

AM4

-files gevonden zijn,

worden opgeslagen in de file

tstnr. In

dit deel worden ook

de

files

names.txt met

leerlingnamen en

sents.txt met zinnen ( •spraakteksten) en /abel.txt met labels

( •spraaktypes) aangepast. Hierbij wordt als controle bij elke

zin

aan de gebuiker gevraagd of

er niet sprake

is

van een typefout.

Het programma sort wordt door

stmod

aangeroepen zodra er een nieuwe portie gegevens

ingeladen

is.

Sort sorteert de

tst -files die in tstnr staan en

schrijft

ze weg naar

sort en stst

-files.

De programma's statl, stat2,

en pitch

produceren uit de opgeslagen gegevens de

overzichten

statl<n1'>.txt, stat2<n1'>.txt, enpitcb<n1'>.txt, voor elk leerlingnummer nr

waarvoor er inforrnatie opgeslagen is. Statl

en pitch

maken gebruikt van

store ~tles en

stat2 maakt gebruik van

stst -files. Alle drie de programma's maken gebruik van sents.txt en

names.txt.

Ten slotte zijn er nog de hulpfiles

conlim.h

met constanten en de structure

trial en de file

load.h

met de functie

load_to_an-ay die in de meeste prograrnma's gebruikt wordt.

(33)

29

4.4

Pupils

I

pupils

I •

11

I

fdisks

I • .,

I

plist2

H

afread

I

Het programma pupils verzorgt het inlezen van de data. In het project pupils worden de

source files

puplls.c, fdisks.c, plist2.c,

en

afreadc

gebruikt.

1.

De

source

file

pupils.c

In het programma

puplls.c

worden

de

leerlingnamen, zinnen en labels ingeladen in

de

globale arrays names, sents en label. Verder worden de variabelen maxname, maxsent,

maxlabel

van de juiste waarde verzien. Een variabele van de vonn max"iets" geeft

de

maximale waarde

aan

waarvoor dat array gedefinieerd is. Indien het array vanaf

0

gedefinieerd is, zijn er

dan

dus max

11

iets'

1

+

1

"iets'-en.

Het programma pupils.c

maakt

gebruik van de sourceftle

fdisks

door middel van een aanroep van de functie disks.

2.

De

source

file f

disks.c

De ftle

fdisks.c

bevat de functie disks. Hierin wordt aan de gebruiker een padnaam

gevraagd. De functie maakt gebruik van de file

plist2

door middel van een aanroep van de

functie listjUes.

3.

De

source

file

plist2.c

De file

plist2.c

bevat

de functie list.files. Hierin worden alle ANA-files in de gegeven

directory gezocht. Het inlezen van

een

ANA-file wordt gedaan in de functie a/read. Deze

functie wordt via parameter/ van list.files aangeroepen.

De

functie a/read

is te vinden in de

file

afread.c.

4.

De

source file afread.c

De file

afread.c

bevat de functies flnd_nr, cbeck_nr, mean_and_deviation en a/read.

De functie

flnd_nr

zoekt de plaats waar een string voorkomt in een array. Dit wordt

gebruikt voor het vinden van

een zin-

I

label- of leerlingnaam- nummer. De functie

cbeck_nr vraagt een bevestiging van de gebruiker als er sprake is van een nieuwe zin, label

ofnaam.

De functie

mean_and_deviation

berekent het gemiddelde en de deviatie van een

aantal

floating point variabelen uit een array.

De functie a/read

schrljft

met de zojuist gegeven functies een

ANA-file om naar

een

regel in

de

tst-file

van de betreffende leerling. Ook worden nieuwe zinnen, labels en leerlingnamen

toegevoegd aan de files sents.txt, names.txt

en label.txt.

(34)

4.5

Sort

In

het programma

sort.c

worden de

trials

uit de tst files gesoneerd en weggeschreven naar

store en stst

files.

De

functie main roept de functie tst_to_sort

twee keer aan.

De

eerste keer worden de

store-files geproduceerd of aangepast en de tweede keer de stst-store-files.

De

functie tst_to_sort leest uit

de

tstnr-file welke tst

files gesoneerd moeten worden. Met de functie sort

worden de trials uit

een tst.ftle gesoneerd.

bf!

worden weggeschreven naar de tijdelijke file sort,

in het zelf de

fonnaat als de store

en

stst

files.

Nadat voor leerling nr de tst<nt'>-ftle is gesoneerd en de sort -ftle weggeschreven is zijn er

twee mogelijkheden: Voor deze leerling bestaan de store

en stst

ftles nog niet of ze bestaan

al wel.

In

het eerste geval kunnen de store

en stst-

ftles eenvoudig gemaakt worden door te

'renamen' en vooraan in de ftle het correcte aantal trials in te vullen (dit aantal was bij het

openen van de ftle nog net bekend, maar er is wel een ruimte voor open gelaten door een

willekeurig getal weg te schrijven). In het tweede geval wordt er 'gemerged' waarbij

dubbelen worden weggegooid. Dit alles is dus terug te vinden in de functie tst_to_sort.

In

de functie sortvindt het eigenlijke soneren plaats. Dit gebreun op een nogal inefficiente

manier. Hierover is in het deel paragraaf 4.11,

mogelijke verbeteringen,

meer te vinden.

In

de

functie sort

vindt ook de conversie plaats naar het binaire formaat. Hiervoor wordt gebruik:t

gemaakt van een aantal standaardfuncties uit C. Zo is de tijd opgeslagen in het formaat

'aantal seconden na 1 januarie 1970'. Dit is een eenvoudige en effidente manier van opslag.

Voor meer details en standaard conversiefuncties verwijs

ik

naar de handleiding van C.

De

floatingpoint waarden zijn ook om effidentieredenen, opgeslagen als unsigned integers. Dit

is mogelijk omdat de waarden toch slechts tot twee djfers achter de komma nauwkeurig zijn

en omdat de waarden binnen het gebied van O tot 600 liggen.

(35)

4.6

Stmod

stmod

De naam

stmod.c

staat voor statistiscbe module. Dit program.ma roept de gebruiker aan als

hij een sessie wil beginnen. Met behulp van het Boreland C++ commando

system

warden

bij bepaalde keuzes van de gebruiker de execute files

puplls.exe, sort.exe, pitch.exe,

statl.exe en stat2.exe

aangeroepen. Met keuze 6

kan

een lijst van alle gebruikte zinnen

gernaakt warden. Hiervoor wordt met de functie senlist gebruikt. De keuzes 7, 8 en 9

hebben betrekking op het uitvegen van bepaalde delen van de gegevens:

• bij het uitvegen van de gegevens van

een

leerling nr (keuze 7) warden de files

store<.nr>

en stst<nr> uitgeveegd. Hiervoor wordt de functie delpup gebruikt.

• bij het uitvegen van de gegevens van alle leerlingen (keuze 8) warden alle store<.nr> en

stst<nr'>

files uitgeveegd. Hiervoor wordt de functie de/all gebruikt.

• bij het uitvegen van de gegevens van alle leerlingen en alle zinnen (keuze 9) warden alle

store<.nr>

en stst<nr> files en alle zinnen uit sems.txten alle leerlingnamen uit names.txt

verwijderd. In feite bestaan de files sents.txt en names.txt clan alleen nog maar uit het

cijfer O : het aantal zinnen/namen. Dit alles wordt met de functie delsen gedaan.

4.7

Pitch

I

pitch

Het programma

pitch.c

produceert voor iedere leerling met nummer nruit store<nr'>,

names.txt, label.txt

en sents.txt een pitcb<nr>.txt file.

De

functie main roept store_to_pitcb

aan. Deze functie laadt de zinnen, labels en leerlingnamen in en opent per leerling nrde

file store<.nr>. De functie pitch leest de geopende file en schrijft naar de pitch<nr>.txt file.

De gegevens die per trial uit storefile gebruikt warden zijn : tijd, zinnummer, labelnummer,

gemiddelde toonhoogte en de deviatie van de toonhoogte. Voor een beschrijving van het

overzicht verwijs ik weer naar de gebruikershandleiding.

Er

word onderscheid gemaakt in

de spraaktekst<ategorieen vowel, cv, word en sentence. De berekenening tot welke

categorie een spraaktekst behoort wordt gemaakt in de functie type. De term

'zin'

heeft hier

dus twee betekenissen: het

is

een willekeurige spraaktekst, te vinden in sents.txt, en het

is

een van de vier subcategorieen

yan

de verzameling spraakteksten.

(36)

4.8

Statl

statl

Het programma statl.c produceert voor iedere leerling met nummer nruit store<nr>,

names.txt, label.txten sents.txteen statl<nr>.txtfile. De functie main roept store_to_stat1

aan. Deze functie laadt de zinnen en leerlingnamen in en opent per leerling nrde file

store<nr>. De functie stat1 leest de geopende file en schrijft naar

de

statl<nr>.txt file. De

gegevens die

per trial

uit storefile gebruikt worden, zijn : tijd, zinnummer en beoordeling.

4.9

Stat2

Het programma stat2.c produceert voor iedere leerling met nummer nruit stst<nr>,

names.txt, label.txten sents.txteen stat2<nr>.txtfile. De funtie mainroept stst_to_stat2aan.

Deze functie laadt de zinnen en leerlingnamen in en opent per leerling nrde file stst<nr>.

De functie stat2leest de geopende file en schrijft naar stat2<nr>.txt en naar plot<nr>.txt. De

gegevens die per trial uit storefile gebruikt worden, zijn : tijd, zinnummer en beoordeling.

Voor het maken de grafiekjes voor de file plot<nr>.txtwordt gebruik gemaakt van de functie

print_plot. De gebruiker

kan

ook nog bepaalde zinresultaten in grafiekjes vergelijken.

Hiervoor worden de functies nr_sentence en nr_session gebruikt. De functie nr_sentence

vindt het zinsnummer bij een zin-string en de functie nr_session vindt het ( volg)nummer van

een sessie bij een gegeven datum.Verder worden nog de functies mean en deviation

gebruikt om gemiddelden en deviaties uit te rekenen en de functie

end

om de gebruiker de

mogelijkeid te geven tussentijds te stoppen.

4.10

Tabel

Het programma

tabel.c

produceert voor iedere leerling met nummer nruit store<nr>,

names.txt, label.txt en sents.txt een een zest.al tabellen. Deze tabellen zijn in de directory

tabel te vinden onder de naam T<tnr>P<nr>.txt, waarbij

tnr,

het tabelnummer, loopt van 1

tot

6.

In de functie main worden de leerlingnamen, zinnen en labels ingeladen. Verder

wordt zes keer de functie

make

aangeroepen. Deze functie zorgt ervoor dat een tabel voor

elke leerling gemaakt wordt. Hiervoor worden voor elke leerling de functies

load,

sort en

tabel aangeroepen.

/

De functie

load

laadt de relevante trial-gegevens in een globaal array

tin.

Dit zijn in ieder

geval de beoordelingen en verder twee van de volgende drie soorten gegevens: de

zinnummers, de labelnummers en de datums (berekend uit het time veld met de

standaardfunctie unixtodos). Welke gegevens er per trial ingeladen worden hangt

af

van de

parameters (ofwel: van de tabel). Het array twordt met

de

functie son

gesorteerd.

(37)

33

Ten slotte wordt met de functie

tabel

het array

af

gelopen waarbij steeds twee gemiddelden

en twee deviaties bijgehouden warden. 'Iijdens het doorlopen van het array wordt al naar

de

bij de tabel horende

T<tnr>P<nr'>

file geschreven.

4.11

C.Onllm

In

de file

coolim.h

zijn de constanten te vinden die bovengrenzen vormen voor de

hoeveelheid infonnatie die het systeem aankan. Verder is hier ook het veel gebruikte

structure trial te vinden.

4.12

C.OnUm2

De file

cooHm2.b

is

identiek aan

coolim.h

op de waarden van de constanten na. De file

cooli.m2.h

wordt gebruikt door het programma

tabel.

Alle andere programma's gebruiken

coolim.b.

4.13

Load

In

de file

load.h

staat de functie load_to_array. Deze wordt in de meeste programma's

gebruikt. De functie laadt strings uit een file naar een array.

Er

wordt dynamisch

gealloceerd, zodat de strings een willekeurige lengte mogen hebben en er geen geheugen

aan spaties verloren gaat. Hiervoor moet het array wel een array van pointers naar char zijn.

De functie load_to_arraywordt gebruikt om de zinnen, labels en namen naar arrays te

laden. Voor de exacte parameters verwijs ik naar de code.

Referenties

GERELATEERDE DOCUMENTEN

Elke vijfde kaart mag Arjen houden, elke twaalfde kaart is voor Nolan?. De hoeveelste kaart zouden zowel Arjen als Nolan

Omdat we twee lijsten van vijf items hebben, zou je in Scratch met de volgende code zinnen kunnen maken die bestaan uit een willekeurig onderwerp en een willekeurige persoonsvorm

Maak een foto van het typeplaatje van de waterkoker die jullie gaan gebruiken en plak die foto hieronder.. 1PT

WAARSCHUWING: Om elke twijfel uit te sluiten: indien u niet op de gevraagde wijze op deze brief reageert, of verzuimt de hierboven beschreven maatregelen te nemen, zal ik geen andere

Om te weten of de gemeente Bergen bekend is met de beschikbaar gestelde middelen inzake het Nationaal Programma Onderwijs heeft u een zestal vragen gesteld.. Wij geven u in deze

Maak een foto van het typeplaatje van de waterkoker die jullie gaan gebruiken en plak die foto hieronder.. Op het typeplaatje staan

De school heeft daar geen invloed op, maar wij gaan ervan uit dat deze ouders ook terughoudend zijn bij het plaatsen van foto’s en video’s op internet. Wilt u uw toestemming samen

&#34;Zodra er een diagnose is, kan er nood zijn aan palliatieve zorg&#34;, legt hij uit. &#34;Zelfs als