Nadira Irahhauten (1138448) Dr. Ir. J. Erkelens Ir. M. van Staalduinen
Technische begeleider: Ir. R. Eggermont Delft, 2007 Technische Universiteit Delft, Faculteit Elektrotechniek, Wiskunde en Informatica
N.Irahhauten
Eindrapport: ICT-01.064
Voorwoord Dit rapport is geschreven in het kader van het integrale project practicum (IPP) onderdeel van het derdejaars programma elektrotechniek aan de Technische Universiteit te Delft (TU Delft). Het IPP behandelt de eerste vier fase (At/m D) van de integrale levenscyclus (tenhaaf, 2006). In fase A wordt het achterliggende probleem geanalyseerd en hergedefinieerd. Vervolgens wordt in fase B een programma van eisen opgesteld. De systeemconcepten worden ontwikkeld en getest aan de hand van het programma van eisen. Ook wordt er een keuze gemaakt, in fase C. Na de ontwerpfase komt de volgende fase van het proces, de implementatiefase, hier wordt een prototype gecreëerd. In dit rapport wordt het hele ontwerptraject beschreven. Lezers die geïnteresseerd zijn in de probleemanalyse worden verwezen naar hoofdstuk 2. Functionaliteit en concepten zijn in hoofdstuk 4 te vinden. In hoofdstuk 5 word de toetsing van de verschillende concepten beschreven. De uitwerking van de gekozen systeemconcept en het testen zal besproken in hoofdstuk 8 en 9 respectievelijk. Ik wil graag de begeleider Ir. M. van Staalduinen en de technische begeleider Ir. R. Eggermont voor hun begeleiding en inzet bedanken.
N. Irahhauten
Delft, mei 2007
i
N.Irahhauten
Eindrapport: ICT-01.064
Samenvatting In het rapport wordt het resultaat van de hele project, namelijk de vijf eerste fasen (A t/m D) volgens de ontwerpmethodologie (tenhaaf, 2006) gerepresenteerd. De IPP opdracht ICT 01.064 is het ontwerpen van een speech enhancement demonstrator. Door een iteratieproces met de opdrachtgever wordt een programma van eisen opgesteld (PvE). ook wordt een aantal systeemconcepten gegenereerd. Daarna zijn de systeemconcepten getoetst aan de hand van het programma van eisen en een keuze van het meest belovende systeemconcept gemaakt. Vervolgens wordt het gekozen systeemconcept geinplementeerd. Als laatste stap van het ontwerptraject, is de functionering van het product getest en getoetst aan de hand van het programma van eisen. Het doel van het project is bereikt. Er is een web-based speech enhancement demonstrator gemaakt. Een web gebuikersinterface waarin de parameters kunnen worden ingesteld. De return webpagina wordt gegenereerd waarop de resultaten van de demo worden weergegeven in geluid en beeld. Na het functioneringstest van het systeen, wordt dit laatste weer getoestd aan de hand van het programma van eisen. Uit de testresultaten blijkt dat het systeem wel aan de geteste punten voldoet.
Onderhoud van het systeembestand.................................................................... 51
Bijlage B Broncode..............................................................................................................54 Bijlage B.1 HTML code: gebruikersinterface .............................................................................. 54
1 Inleiding Spraakgeluid verbetering is de beschrijvende term van alle algoritmen met het doel om een aantal perceptuele aspecten van het geluid te verbeteren voor de luisteraar. Voor het IPP was de opdracht om een speech enhancement domonstrator te ontwerpen voor de afdeling Informatie & Communicatie Theorie (ICT) van de faculteit Elektrotechniek, Wiskunde en Informatica (EWI). Het IPP bestaat uit twee perioden. In de eerste drie weken wordt de ontwerpmethodologie beschreven in (tenhaaf, 2006) gevolgd om tot een systeemconcept te komen. Daarnaast wordt in de volgende vier weken het gekozen systeemconcept geïmplementeerd en overgedragen aan de opdrachtgever. Dit rapport heeft ten doel om het resultaat van het hele ontwerptraject, voornamelijk de ontwerpperiode en de implementatieperiode, te presenteren. Ook zal in het rapport duidelijk worden welke stappen er zijn genomen om tot het resultaat te komen. Na een analyse van het achterliggende probleem in hoofdstuk 2 wordt een programma van eisen gemaakt in hoofdstuk 3. Vervolgens bevat hoofdstuk 4 het functie blok schema van het systeem en de mogelijke systeemconcepten. In hoofdstuk 5 wordt een keuze gemaakt van het meeste belovende systeemconcept door het toetsen van alle systeemconcepten aan de hand van het programma van eisen. Daarna wordt de implementatiefase besproken. In hoofdstuk 6 en 7 wordt ingegaan op de keuzes van de implementatie. Vervolgens wordt het systeem uitgewerkt in hoofdstuk 9. Ten slotte worden enkele conclusies en aanbevelingen in hoofdstuk 11 gegeven
66
N.Irahhauten
Eindrapport: ICT-01.064
2 Probleemanalyse De opdrachtgever (OG) heeft ons benaderd om een oplossing te vinden voor zijn probleem met het openbaar maken van zijn algoritme. We hebben verschillende stappen ondernomen om tot een goede probleemdefinitie te komen. Allereerst hebben wij de opdracht goed bestudeerd. Daarna hebben we door verschillende gesprekken met de OG de vijf vragen kunnen beantwoorden die centraal staan in het uitvinden van zijn behoeften. De vijf vragen zijn, wie is de probleemhebber, wat wil hij, waarom wil hij het, waardoor werd het een probleem en waartoe wil hij het? In het hierop volgende gedeelte hebben wij de probleemdefinitie verder doorgestructureerd naar een eerste Programma van Eisen (PvE).
2.1 De geschreven opdracht. De opdracht zoals wij hem op papier hebben ontvangen luidde: ‘Noise suppression algorithms are often used in applications where speech signals are involved, e.g., speech coders in mobile phones, automatic speech recognizers, hearing-aids. The algorithms enhance the signal such that the systems perform better and/or the speech becomes more pleasant to listen to. In our group we develop such noise suppression algorithms. I would like to have a demonstrator, in the form of a graphical web interface, which allows a user to play with our algorithms. For example, the user may select a speech file, a noise type and level, chooses an enhancement algorithm and sets its parameters. This information is sent to our server which enhances the signal in MATLAB. It should be possible to display the clean, noisy and enhanced signals on the users interface and also to listen to them.’ Het is duidelijk dat de OG zelf al een oplossing heeft bedacht voor zijn probleem. Wij willen er achterkomen wat het probleem is achter deze oplossing. Hiervoor worden de 5W’s toegepast.
2.2 De 5 W’s. Hieronder zullen we de vijf vragen beantwoorden voor ons probleem. • Wie is de probleemhebber? Dr. Ir. Erkelens. Werkzaam aan de TUDelft ICT afdeling. Voor zijn onderzoek heeft hij een aantal algoritmes ontwikkeld. Deze algoritmes zijn in Matlab ontwikkeld en worden gebruikt bij het onderdrukken van ruis. • Wat wil de probleemhebber? De werking van zijn algoritmes moeten toegankelijker zijn, zonder dat de algoritmes worden weergegeven. • Waarom wil hij dat eigenlijk? Hij wil studenten en onderzoekers de mogelijkheid bieden om zijn algoritmes uit te proberen en meer inzicht krijgen in de werking van zijn algoritmes. Hij wil de werking van zijn algoritmes onafhankelijk van Matlab kunnen tonen. • Waardoor werd het eigenlijk een probleem? 77
N.Irahhauten
Eindrapport: ICT-01.064
Het ontbreken van een mogelijkheid om de werking van zijn algoritmes te tonen, terwijl zijn algoritmes worden afgeschermd. • Waartoe wil hij het middel gebruiken? Het bruikbaar maken van zijn algoritmes, tijdens conferenties lezingen en demonstraties zonder dat hij afhankelijk is van MATLAB. Het mogelijk maken voor studenten en onderzoekers om met zijn algoritmes te spelen.
2.3 Doel-middel verschuiving De werking van de doel-middel verschuiving wordt hier kort uitgelegd. Het oorspronkelijke doel wordt als een middel beschouwd om het eigenlijke doel te bereiken. Dit wordt gedaan door de fundamentele vragen te stellen. Dit middel wordt gebruikt om het volgende doel te bereiken. Door dit achtereenvolgens een aantal keer uit te voeren kan het uiteindelijke doel worden bereikt. •
Middel1: Een web based GUI om de werking van zijn algoritmes te tonen o Doel2: De werking van zijn algoritmes moet beschikbaar zijn voor studenten en onderzoekers, zonder dat de algoritmes bekend zijn
•
Middel2: De werking van zijn algoritmes moet beschikbaar zijn voor studenten en onderzoekers, zonder dat de algoritmes bekend zijn. o Doel3: Studenten en onderzoekers moeten meer inzicht krijgen in de werking van zijn algoritmes.
Een schematisch overzicht is afgebeld hieronder:
Figuur 1: Doel-middel verschuiving
Het achterliggende probleem van de opdrachtgever is nu duidelijk geworden. De opdrachtgever wil eigenlijk: ” Studenten en onderzoekers moeten meer inzicht krijgen in de werking van zijn algoritmes.”
88
N.Irahhauten
Eindrapport: ICT-01.064
2.4 Probleemstelling Na een analyse van het probleem hebben wij een probleemstelling kunnen opstellen. Vanuit deze probleemstelling kunnen wij verder werken aan een programma van wensen en een programma van eisen. De probleemstelling luidt: “Studenten en onderzoekers moeten meer inzicht krijgen in de werking van de algoritmen van de opdrachtgever. De opdrachtgever moet wel in staat zijn de verspreiding van zijn algoritmen uit te breiden met nieuwe algoritmen”
99
N.Irahhauten
3
Eindrapport: ICT-01.064
Programma van wensen en programma van eisen
3.1 Programma van wensen (PvW) Nu het probleem is duidelijk kunnen wij een programma van wensen opstellen De probleemhebber In dit geval is de probleemhebber ook de opdrachtgever. In zijn werkgroep zijn algoritmes ontwikkeld voor het onderdrukken van ruis in audio signalen. Diens concrete oplossingsidee Een web-based demonstratie van de werking van zijn algoritmes. Dit geeft de gebruiker de mogelijkheid om met zijn algoritmes te spelen. Ook wordt hij hierdoor zelf onafhankelijk van MATLAB. Lijst met niet bevredigende situatie 1. De gebruiker is afhankelijk van MATLAB op zijn PC. 2. Het ontbreken van het inzicht over de werking van algoritmes bij studenten en onderzoekers.
Lijst met kenmerken beoogde doeltoestand 3. Meer inzicht over de werking van zijn algoritmes voor studenten en onderzoekers zonder behoefte aan Matlab software. 4. Meer bekendheid binnen zijn werkgebied. Lijst met contextuele randvoorwaarden 5. De OG heeft geen tijd voor het oplossen van zijn probleem. 6. Het systeem moet kunnen functioneren op verschillende platforms. 7. Het systeem moet de werking van zijn algoritmes tonen en de algoritmes afschermen voor de gebruiker. 8. Na het installeren en verwijderen mag het systeem de omgeving niet veranderd zijn. 9. Het systeem moet esthetisch verantwoord zijn. 10. Uitbreiding van het systeem met algoritmes moet mogelijk zijn. Lijst met aanvaardbare offers 11. De OG is bereid de werking van zijn algoritmes te delen met studenten en onderzoekers om meer inzicht te krijgen. 12. De OG stelt een server tot onze beschikking. 1 10
N.Irahhauten
Eindrapport: ICT-01.064
3.2 Programma van eisen (PvE) Nu we een probleemdefinitie en -analyse hebben gemaakt. De volgende stap, volgens de ontwerpmethodologie, is een programma van eisen opstellen. Deze komen voort uit de Programma van wensen, de functioneringscriteria en de randvoorwaarden. De randvoorwaarden hebben als functie het afbakenen van het zoekveld en de functioneringscriteria hebben als functie het start van zoeken naar mogelijke oplossingen. Functioneringscriteria: • Het systeem moet er voor zorgen dat de studenten en onderzoekers toegang hebben tot de werking van zijn algoritmes zonder afhankelijkheid van Matlab. Randvoorwaarden: • Overzichtelijke interface •
Binnen vier weken te implementeren
•
Afschermen van de algoritmes
•
Goed gedocumenteerd
•
Uit te breiden met nieuwe algoritmes
•
Het systeem moet werken op verschillende platforms
•
Het systeem moet esthetisch verantwoord zijn
•
De maximale tijd die het systeem er over mag doen om zijn resultaten weer te geven bedraagt 10 seconden.
De boven genoemde criteria krijgen een herindeling aan de hand van de volgende categorieën. De functioneringscriteria zijn ingedeeld onder categorie A en de randvoorwaarden zijn ingedeeld onder de overige categorieën.
A. Eisen vanuit het beoogde gebruik 1. Het systeem moet er voor zorgen dat de studenten en onderzoekers toegang hebben tot de werking van zijn algoritmes zonder afhankelijkheid van Matlab. 2. Het systeem dient in staat te zijn de werking van de algoritmes weer te geven uit de meegegeven parameters 3. Het schone signaal, het “noisy”signaal en het verbeterd signaal dienen gevisualiseerd te worden 4. Het schone signaal, het “noisy” signaal en het verbeterd signaal dienen afgespeld te worden
1 11
N.Irahhauten
Eindrapport: ICT-01.064
B. Eisen vanuit de ecologische situering van het systeem in de omgeving 5. Het systeem moet kunnen functioneren in een Linux en een Windows omgeving. 6. Het systeem moet esthetisch verantwoord zijn.
C. Eisen met betrekking tot het ontwerpen subsysteem zelf c1. Eisen in gebruiks-, onderhouds- en beheertermen 7. De OG kan aanpassingen aanbrengen aan de parameters van de algoritmes. 8. De OG kan nieuwe algoritmes toevoegen aan het systeem. 9. De gebruiker moet overal toegang hebben tot de werking van de algoritmes 10. De gebruiker heeft de mogelijkheid de volgende parameters in te stellen naar zijn/haar behoeften: a. Algoritme b. Voorbeeldzinnetje c. Ruis d. Signal-to-Noise ratio e. maximale ruisonderdrukking f. Smoothing (algoritme specifiek) 11. De interface is overzichtelijk. 12. De algoritmes moeten afgeschermd worden. 13. De maximale tijd die het systeem er over mag doen om zijn resultaten weer te geven bedraagt 10 seconden. c2. Eisen in termen van vervaardiging, monteren, installeren, toetsen, overdragen en ingebruikname 14. Het systeem moet te vervaardigen zijn binnen vier weken. 15. Het systeem moet te installeren en te verwijderen zijn. 16. Het systeem moet te testen zijn door de OG. 17. Het systeem moet gedocumenteerd worden. c3. Eisen in termen van recyclen, duurzaamheid en milieuvriendelijkheid van grondstoffen 18. Het systeem moet gemakkelijk aan te passen zijn door de OG. D. Eisen met betrekking tot het te ontwikkelen productiesysteem 19. Er wordt één systeem ontwikkeld. 20. Het systeem moet binnen de ICT vakgroep geïmplementeerd worden
1 12
N.Irahhauten
Eindrapport: ICT-01.064
E. Eisen met betrekking tot het te ontwikkelen liquidatiesysteem 21. Het verwijderen van het systeem mag geen schade toebrengen aan de server.
3.3 Vertaling van programma van wensen naar programma van eisen Hier onder wordt een explicite vertaling gemaakt van programma van wensen naar programma van eisen Programma van eisen 1 A 2 3 4 B 5 6 C C1
Tabel1: vertaling van programma van wensen naar programma van eisen
1 13
N.Irahhauten
Eindrapport: ICT-01.064
4 Functionaliteit en concepten In dit hoofdstuk wordt gezocht naar alle mogelijke systeemconcepten voor het probleem van de opdracht gever. In paragraaf 6.1 wordt een hoofdfunctie opgesteld en uitgebreid tot een functie blok schema. Vervolgens wordt de beslissingsbomen weergegeven in paragraaf 6.2. Na het opstellen van de morfologische kaart in paragraaf 6.3, worden de alternatieve systeemconcepten voorgelegd in paragraaf 6.4
4.1 Functie blok schema Om een aantal systeemconcepten te kunnen genereren, wordt eerst een hoofdfunctie bepaald met behulp van het programma van eisen. De hoofdfunctie transformeert de ingangskenmerken met de uitgangskenmerken. Het meeste abstracte model is als volgt:
Figuur 2: Hoofdfunctie met beoogde in- en uitgangskenmerken
De hoofdfunctie heeft als ingangen de informatie over de werking van algoritmes en informatie over de parameters die worden getransformeerd naar de uitgang. De uitgangskenmerken worden bepaald door het afstemmen van de beoogde doeltoestand. De uitgang van het systeem is de werking van algoritmes mobiel maken. Het blijkt dat de in- en de uitgangskenmerken alle tot de categorie informatie behoren. Het systeem transformeert geen materie of energie. De hoofdfunctie wordt vervolgens opgesplitst in deelfuncties. De deelfuncties zijn weergegeven in figuur 2
1 14
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 3: Lager abstractieniveau: de hoofdfunctie opgedeeld in deelfuncties
De twee deelfuncties zijn als volgt: 1.Resultaat bemachtigen 2. Systeem onderhouden. De eerste deelfunctie is verantwoordelijk voor het verkrijgen van het resultaat en de tweede deelfunctie voor het onderhouden en uitbreiden van het systeem. Vervolgens wordt de hoofdfunctie uitgebreid met hulpfuncties. Het schema is weergegeven in figuur 3
1 15
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 4: laagste abstractieniveau: deel met helpfuncties
1 16
N.Irahhauten
Eindrapport: ICT-01.064
4.2 Beslissingsbomen Een manier om tot verschillende systeemconcepten te komen is het bedenken van zo veel mogelijk beginseloplossingen voor alle functies. Dit kunnen wij doen door middel van beslissingsbomen.
Figuur 7: Beslissingsboom 4: Resultaat bemachtigen
Toetsenbord Intoetsen Speciale toetsen
Systeen onderhouden
Knoppen combinaties Schakelaars
Muis Figuur 7: Beslissingsboom 5: Systeem onderhouden
1 18
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 8: Beslissingsboom 6: Resultaat transporteren
Figuur 9: Beslissingsboom 7: Beeld weergeven
Figuur 10: Beslissingsboom 8: Geluid weergeven
1 19
N.Irahhauten
Eindrapport: ICT-01.064
4.3 Morfologische kaart De mogelijke beginseloplossingen per functie die in de vorige paragraaf worden gevonden, worden in de morfologische kaart gezet worden. Hier onder wordt de morfologische kaar afgebeeld. Algoritmes invoeren
Table 2: Systeemconcepten uit de morfologische kaart
2 21
N.Irahhauten
Eindrapport: ICT-01.064
4.4 Systeemconcepten Met behulp van de morfologische kaart van paragraaf 4.3 worden de logische beginsel oplossingen met elkaar gecombineerd. De mogelijke systeemconcepten zijn als volgt:
4.4.1 Concept 1: Database
Figuur 11: concept 1: Database
De invoer van de algoritmen wordt door de beheerder gedaan met het toetsenbord, alle mogelijke output van de algoritmen wordt gegenereerd en opgeslagen in een database. De gebruiker geeft de parameters met de muis in, deze gegevens worden over het internet verzonden en verwijst hiermee naar een plek in de database. Deze gegevens worden teruggezonden via het internet naar de gebruiker. Hier worden de resultaten weergegeven via geluid en beeld. Het onderhouden zal worden gedaan door middel van het invoeren van de nieuwe of aangepaste algoritmen met het toetsenbord.
4.4.2 Concept 2: Matlab web server
2 22
N.Irahhauten
Eindrapport: ICT-01.064
De algoritmes worden ingeladen op een matlab server, ze kunnen op een eigen computer geschreven worden en later in de matlab server geladen worden. De gebruiker voert de parameters in met de muis. Deze worden opgestuurd via internet naar de matlab server. Hier kunnen deze parameters door de algoritmes uitgevoerd worden en de resultaten worden terug verzonden via het internet naar de gebruiker. Deze worden hier in de vorm van geluid en beeld getoond. De aanpassingen kunnen op de eigen computer worden gemaakt waarna ze ingeladen worden op de Matlab server.
2 23
N.Irahhauten
Eindrapport: ICT-01.064
4.4.3 Concept 3: Executabel
Figuur 12: Concept 3: Executabel
Van het programma wordt met Matlab een executabel gemaakt die de gebruiker kan downloaden en uitvoeren. Het programma moet hiervoor wel gecodeerd zijn, zodat de gebruiker er niet achter kan komen hoe de algoritmen werken. Zij kunnen alleen de werking van de algoritmen testen. Dit is matlab afhankelijk op de lokale pc. De gebruiker voert de parameters met de muis in en ontvangt de output van het programma in beeld en geluid.
2 24
N.Irahhauten
Eindrapport: ICT-01.064
4.4.4 Concept 4: Hardware Informatie over parameters
Werking afbelden Matlab server 0 1
2
3
4
Vcc1 a1
b1
a2
b2
a3
b3
a4
b4
5
6
7
8
GND 0
Informatie over algoritms
Werking afspelen
Een demo opstelling maken. De algoritmes worden geïmplementeerd met VHDL op een FPGA chip. Het gewenste algoritme voor de test en de gewenste parameters worden ingevoerd door verschillende schakelaars. Hierna zullen de resultaten hoorbaar en zichtbaar gemaakt worden.
2 25
N.Irahhauten
Eindrapport: ICT-01.064
5 Keuze van het beste systeemconcept In het vorige hoofdstuk is geëindigd met vier verschillende systeemconcepten voor het te ontwerpen technische systeem. Om een goede keus tussen deze concepten te maken, zullen wij alle concepten afwegen tegen de opgestelde criteria. Dit zal in hoofdstuk 5.1 gebeuren. Elk criteria uit het PvE zal voor alle vier de concepten besproken worden. Uiteindelijk zullen we in hoofdstuk 5.2 alles nog een keer weergeven in een evaluatiematrix en een keuze maken.
5.1 Afwegen concepten tegen criteria De belangrijke criteria zijn als volgt: •
Nieuwe algoritmen kunnen worden toegevoegd (Flexibiliteit).
•
De algoritmen zijn niet bekend bij de doelgroep (Veiligheid).
•
Het systeem moet binnen vier weken geïmplementeerd zijn (Implementatietijd).
•
Het systeem moet onafhankelijk van Matlab op de lokale pc de werking van de algoritmen tonen (Onafhankelijkheid).
•
De maximale reactietijd van het systeem bedraagt tien seconde (Snelheid).
•
Het systeem moet vriendelijk in gebruik zijn (Vriendelijk gebruik).
Hieronder zullen de criteria behandeld worden. Nieuwe algoritmen kunnen worden toegevoegd (Flexibiliteit). Bij concept 1 de database is de flexibiliteit minder dan bij de andere. Als het algoritme geschreven is dan zullen de mogelijke uitkomsten opnieuw in de database geschreven moeten worden. De ruimte die de database nodig heeft kan hierdoor overschreden worden. Als er een nieuw algoritme of als er nieuwe parameters worden toegevoegd dan zullen er ook aanpassingen nodig zijn aan de interface. Bij concept 2 de Matlab web server is de flexibiliteit het grootst. De geschreven Matlab code kan worden toegevoegd of heel het programma kan vervangen worden. Er zullen nog enkele aanpassingen nodig zijn aan de interface net als bij het eerste concept. Concept 3 de executabel. Het programma kan worden uitgebreid en verbeterd, daarna wordt er een nieuwe executabel van gemaakt en wordt de executabel online gezet, zodat de gebruiker het programma kan downloaden. Bij concept 4 de hardware implementatie kunnen geen nieuwe algoritmen toegevoegd worden aan het systeem. Alles zal opnieuw gemaakt moeten worden. De algoritmen zijn niet bekend bij de doelgroep (Veiligheid). Bij concept 1 de database is de veiligheid het grootst, doordat dit principe ervoor zorgt dat de algoritmen niet worden gebruikt als de user ze opvraagt. De algoritmen worden eenmalig
2 26
N.Irahhauten
Eindrapport: ICT-01.064
offline uitgevoerd, zodat de database gevuld is. De user kan hierna de gegevens ophalen uit de database. De veiligheid is goed van het tweede concept de Matlab web server. Doordat de algoritmen alleen bekend zijn op de Matlab web server en niet bij de gebruiker. Doordat er een mogelijkheid is tot inbraak in de web server is de veiligheid iets minder dan bij het eerste concept. Concept 3 de executabel zorgt voor een slechte veiligheid van de algoritmen. Dit doordat de algoritmen lokaal worden uitgevoerd. Hierdoor kan de gebruiker een kijkje nemen in de keuken. Concept 4 de hardware implementatie zorgt voor optimale veiligheid, doordat alle algoritmen zijn geïmplementeerd in hardware en hierdoor de algoritmen niet meer te achterhalen zijn. Het systeem moet binnen vier weken geïmplementeerd zijn (Implementatietijd). Om voor concept 1 de database de implementatietijd te bepalen hebben wij een netwerkplanning gemaakt. In de volgende figuur staat de netwerkplanning voor de implementatietijd voor het eerste concept. 40 6 40 0: Begin 1: Alle mogelijkheden uitgevoerd 2: Database gemaakt 3: Mogelijkheden opgeslagen in Database
Het systeem moet volgens onze planning gerealiseerd kunnen worden binnen de beschikbare tijd. Rechts staat de hoeveelheid dagdelen die wij denken nodig te hebben.
2 27
N.Irahhauten
Eindrapport: ICT-01.064
Voor het tweede concept de Matlab web server is ook een netwerkplanning gemaakt. De netwerkplanning wordt hieronder weergegeven.
Figuur 14 Implementatietijd Matlab web server
Zoals weergegeven in de figuur is ook hier alles binnen de gestelde tijd te realiseren, maar hier hebben we minder mijlpalen. Hierdoor heeft de Matlab web server (Implementatietijd) een lichte voorkeur boven de database. Het derde concept de executabel. Om een executabel te maken en online te brengen zal niet zo veel tijd verloren gaan. Dit kan binnen de beschikbare tijd gerealiseerd worden. Bij het vierde concept de hardware implementatie zal de tijd een belangrijke factor spelen. Het zal niet mogelijk zijn dit binnen de beschikbare tijd te implementeren. Het systeem moet onafhankelijk van Matlab op de lokale pc de werking van de algoritmen tonen (Onafhankelijkheid). Concept 1 de database is onafhankelijk van Matlab op de lokale pc. De resultaten zullen in html worden teruggestuurd. Deze taal wordt door alle pc’s ondersteund. Alleen de OG is voor het inladen van de nieuwe algoritmen afhankelijk van Matlab, dit is echter geen probleem, omdat hij de algoritmen in Matlab aanmaakt. Concept 2 de Matlab web server is onafhankelijk van Matlab op de lokale pc. De berekeningen worden op de Matlab web server gedaan en de resultaten zullen in html worden teruggestuurd. Deze taal wordt door alle pc’s ondersteund. Ook hier is de OG afhankelijk van Matlab. Het derde concept de executabel is afhankelijk van Matlab op de lokale pc. Concept 4 de hardware implementatie is onafhankelijk van Matlab.
2 28
N.Irahhauten
Eindrapport: ICT-01.064
De maximale reactietijd van het systeem bedraagt tien seconde (Snelheid). Voor het eerste concept de database is er genoeg snelheid. Als er meer en meer algoritmen worden toegevoegd zal het systeem langzamer worden, dit door de langere zoektijd in de database. Concept 2 de Matlab web server zorgt voor voldoende snelheid. De berekeningen worden realtime uitgevoerd. Dat wil zeggen dat als er een stukje geluid van drie seconden geanalyseerd moet worden, er drie seconden aan gerekend word. Concept 3 de executabel zal voldoende snel zijn om binnen de limiet te functioneren. Deze oplossing is na het downloaden onafhankelijk van het internet en zal daardoor sneller zijn dan de eerste twee oplossingen. Concept 4 de hardware implementatie is de snelst mogelijke oplossing. Onafhankelijk van het internet en geïmplementeerd in hardware. Het systeem moet vriendelijk in gebruik zijn (Vriendelijk gebruik). Het eerste concept de database is vriendelijk in gebruik, omdat er een graphical web interface zal zijn voor de gebruiker, die door ons aangemaakt wordt. Het tweede concept de Matlab web server is vriendelijk in gebruik, omdat er een graphical web interface zal zijn voor de gebruiker, die door ons aangemaakt wordt. Bij concept 3 is de gebruiksvriendelijkheid goed. De interface door de OG gemaakt is ook beschikbaar voor de gebruiker. Concept 4 de hardware implementatie is minder vriendelijk in gebruik. De gebruiker moet schakelaars omzetten om zijn parameters ingevoerd te krijgen.
2 29
N.Irahhauten
Eindrapport: ICT-01.064
5.2 Keuze van concept We hebben aan elk criteria een weegfactor toegekend, zodat we voor elk concept een score kunnen berekenen en het beste concept kunnen kiezen. De weegfactoren zijn aan de hand van de verschillende gesprekken en ons eigen inzicht bepaald. De resultaten worden weergegeven in de volgende tabel.
Flexibiliteit Onafhankelijkheid Implementatietijd Veiligheid Snelheid Vriendelijk gebruik Totaal
Het tweede concept de Matlab web server komt als beste uit de test. Deze voldoet ook aan alle eisen die gesteld worden, maar is een stuk flexibeler dan de rest. Dit was ook een belangrijk argument dus is de weegfactor groot. Wij zullen het tweede concept de Matlab web server gaan implementeren. De algoritmen worden in m-files geschreven en kunnen zo ook ingevoerd in de Matlab web server worden. En er zal een graphical web interface gemaakt worden waar de gebruiker de parameters kan invoeren om op te sturen en te berekenen om vervolgens de resultaten weer terug te sturen en weer te geven in vorm van geluid en beeld.
3 30
N.Irahhauten
Eindrapport: ICT-01.064
6 Keuze van implementatie In vorig hoofdstuk is er een keuze gemaakt welke systeemconcept ontwikkeld gaat worden. In dit hoofdstuk wordt uitgelegd welke keuzes zijn gemaakt met betrekking tot de implementatiefase en waarom werden die keuzes gemaakt. Welke configuratie en waarom? In deze fase van ontwerp is het duidelijk dat er een software implementatie moet komen. Het is ook duidelijk dat een connectie met de matlabserver van de ICT groep moet komen. Voor deze implementatie zijn er twee mogelijke configuraties. Deze configuraties zien als volgt eruit: 1.Eerste mogelijkheid:
Figuur 15: Eenvoudig configuratie: een web browser runs op de gebruiker PC, terwijl matlab. MWS, en de web server deamon (httpd) runt op een andere machine
2.Tweede mogelijkheid
Figuur 16: complexer netwerk: de web server daemon kan worden gerund op een andere machine.
De opdrachtgever stelt een server tot onze beschikking. Deze server beschikt al over een HTTPD. Ook als er naar beide mogelijkheden wordt gekeken, blijkt dat de eerste eenvoudiger dan de tweede. Hierdoor blijkt dat de eerste configuratie de beste keuze is. 3 31
N.Irahhauten
Eindrapport: ICT-01.064
Waarom Perl? Er is nu gekozen voor de eerste configuratie. Hier onder werd een schematische overzicht van de Matlabserver gegeven:
Figuur 17: Matlab webserver
De common gateway interface of CGI script zorgt voor de connectie tussen de WWW en het matlab software. Er zijn veel mogelijkheden om de CGI script te maken. ASP
CGI
PHP
PERL
3 32
N.Irahhauten
Eindrapport: ICT-01.064
De opdrachtgever vindt dat het systeem liever op Linux/Windows platforms moet functioneren. Hieruit vervalt de scripttaal ASP omdat dit alleen op Windows omgeving gebruikt wordt. Perl vs. PHP: • Perl is sneller dan PHP • Voor grafieken, PHP is beperkt wat de GD betreft. • Perl ondersteund aaray’s vanuit matlab terwijl PHP kan alleen scalars accepteren. Uiteindelijk wordt gekozen voor Perl script.
Waarom Realplayer? Om het geluid te kunnen afspelen op de web zijn er verschillende mogelijkheden, zoals: Windows media player, realplayer, flash, etc. De opdrachtgever wil graag dat het systeem op verschillende platforms moet kunnen functioneren. Windows media player draait alleen onder Windows platform. Omdat het gegenereerde geluid formaat uit matlab is een .wav formaat terwijl voor flashplayer is een .swf formaat nodig, blijkt dat de beste keuze is de realplayer. De realplayer kan worden geïnstalleerd op verschillende platforms. Hij kan ook het .wav ’s afspelen.
Welke Plaatjes formaat en waarom? Naast het weergeven van het geluid, wil de opdrachtgever graag de signalenweergave ook in beeld. Er zijn verschillende bestandsformaten voor afbeeldingen, zoals: png, gif, bmp, wmf, etc. De bmp en wmf formaat kunnen niet op HTML afgebeeld worden De PNG formaat is ondersteund door veel web browsers. Daarom wordt hier gekozen voor de .Png bestandsformaat.
3 33
N.Irahhauten
Eindrapport: ICT-01.064
7 Afbakening systeemconcept Nadat de keuze van implementatie gemaakt is, zullen wij in dit hoofdstuk ingaan op de uitwerking van ons systeem. In paragraaf 7.1 wordt een model van het systeem gegeven. Vervolgens wordt in paragraaf 7.2 een afbakening van het systeemconcept gegeven
7.1 Het model De eerste stap om het systeemconcept uit te werken is het opstellen van een model. Een schematisch overzicht van het uiteindelijke model is als volgt:
Server
User
Matlab Op de web browser: Initial HTML = Parameters instellen
Internet Gegenereerd HTML = Resulaten weergeven Geluid + figuren
Perl
Figuur 18: Schema van het model
Hier moet er gezorgd worden voor om een communicatie tussen het matlab en Perl script binnen de server te krijgen. Aan de gebruiker kant moet een initiaal HTML script gemaakt worden om een webpagina te maken, waarin de parameters en het gewenste algoritme ingesteld kunnen worden. Deze parameters worden over het internet verzonden. Vervolgens wordt ook een output script gemaakt om de gegenereerde resultaten weer te geven.
7.2 Afbakening systeemconcept Omdat het systeem door een ontwerper zal geïmplementeerd worden in 4 weken, was het verstandig om het systeemconcept af te bakenen. Er zijn twee mogelijke manieren om het eindproduct binnen vier weken af te krijgen. De eerste mogelijkheid: De opdrachtgever gaat zorgen voor de nodige resultaten van de algoritmes zorgen. Er wordt een gebruikersinterface en een CGI script gemaakt
De tweede mogelijkheid: 3 34
N.Irahhauten
Eindrapport: ICT-01.064
De opdrachtgever zal zogen voor een gebruikersinterface en de weergave van de resultaten zorgen. Hier wordt geconcentreerd op de server kant, m.a.w het zorgen voor een connectie tussen matlab en Perl.
Keuze van afbakening mogelijkheid: Gezien dat de implementatie binnen 4 weken af moet zijn, bleek dat de eerste mogelijkheid goed uitkomt. Om de connectie tussen het matlab en het web server te maken, het is wel nodig om de m-files te veranderen en ook een script met Perl moet worden gedaan. Dit laatste is niet haalbaar binnen 4 weken. Ook omdat de opdrachtgever geen ervaring met het maken van een web interface heeft en dat de kern doel van de opdracht was het weergeven van de werking blijkt dat de eerste mogelijkheid de beste keuze is
3 35
N.Irahhauten
Eindrapport: ICT-01.064
8 Uitwerking gekozen systeemconcept Nadat de eerste mogelijkheid is gekozen, moet dit systeemconcept uitgewerkt worden tot een volledig systeem. Het uitwerken gebeurt door middel van een flowchart. Deze wordt behandeld in dit hoofdstuk
8.1 Flowchart De volledige flowchart is te zien in figuur 19
Input HTML: GUI Ingevoerd informaties ok
!OK Parameters check
Check bijbehorende resultaten
!ok Return Error
OK Return HTML Figuur 19: Flowchart
8.2 input HTML script Hier wordt een web interface gemaakt. De gewenste parameters kunnen worden ingesteld. Het systeem heeft twee buttons: “run” en “reset”. Bij het klikken op de run button wordt de return HTML gegenereerd. En bij het klikken op de reset worden de parameters gerest.
3 36
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 20: GUI
8.3 Perl-script Bij het klikken op de run button wordt de CGI-script in dit geval perl script (.pl) door de server automatisch uitgevoerd. Hierdoor wordt een output HTML gecreëerd.
3 37
N.Irahhauten
Eindrapport: ICT-01.064
9 Testen van het systeem De laatste stap van het ontwerp proces is het testen van het systeem. In dit hoofdstuk wordt de functionering van het systeem getest. Ook wordt het getoetst aan de hand van het programma van eisen.
9.1 Functioneringstest van het systeem In de GUI zoals afgebeeld in figuur 20, zijn er in totaal zeven parameters. Voor elke parameter zijn er een aantaal mogelijkheden. Algoritmes Voorbeeldzinnetjes Soort ruis Signal-noise-ratio Smoothing parameter Maximum onderdrukking Gewenste geluidsspeler Bij het toetsten van het systeem dienen alle mogelijke combinaties van de parameters te worden getoetst. Hiervoor wordt een toetstabel gemaakt voor realplayer en Windows
9.2 Toets van het systeem aan de hand van PvE Hier wordt het systeem getoetst aan de hand van het programma van eisen. Programma van eisen 1 A 2 3 4 B C
5 6 C1
C2
D E
C3 20 21
7 8 9 10 11 12 13 15
18
Ja. De werking van de algoritmes wordt weergegeven zonder behoefte aan matlab software Ja. Ja. De signalen worden afgebeeld Ja. Het geluid hoorbaar Ja. Het systeem functioneert op Win/ Lix Ja. Ja. Ja. Ja. Ja. Ja. Ja. De code van algoritmes is afgeschermd Ja. Het systeem is redelijk snel Ja. Het systeem werkt door de scripts te kopiëren naar de WWW directory op de server Ja. Ja. Ja. Het verwijderen van het systeem gebeurt door de HTML en perl script te verwijderen uit server.
Uit de tabel is wel te zien dat het systeem wel aan alle geëiste criteria voldoet. Het systeem voldoet aan alle eisen opgenomen in het programma van eisen.
4 40
N.Irahhauten
Eindrapport: ICT-01.064
10 Evaluatie van het ontwerptraject Tijdens het ontwerptraject waren er een aantal problemen. In dit hoofdstuk worden die met de oplossingen vermeld. Het benodigde abstractieniveau kon niet altijd bereikt worden, het best voorbeeld hiervan is de morfologische kaart in het tussenrapport. De morfologische kaart was niet gemaakt met een elektrisch schema. Ook het bedenken van oplossingen voor de functies was niet in een laag abstractieniveau. Bijvoorbeeld voor het matlab webserver was nog nodig om te bedenken wat voor softwares nodig zijn. Ook voor het bestandenformaat voor het geluid en afbeeldingen. Een ander probleem is dat een van de ontwerpers gestopt is met het project door ziekte. Dit maakte het afmaken van het hele project binnen tijd onmogelijk. Na diverse besprekingen is besloten om dit op te lossen door het afbakenen van het gekozen systeemconcept. Omdat ik geen voorkennis over het taalscript Perl had, werd er een diep literatuuronderzoek gemaakt. Ook voor het implementeren van het perl-script, had ik een voorbeeld gekregen van de technische begeleider Ir. R. Eggermont.
4 41
N.Irahhauten
Eindrapport: ICT-01.064
11 Conclusies en aanbevelingen Het doel van het project met andere woorden de fase A, B, C en D van het zevenfase model is bereikt. In het ontwerpfase zijn we gekomen tot het meeste belovende concept na een toetsing van de gevonden concepten aan de hand van het programma van eisen. Het gekozen concept is een matlab web server (MWS) applicatie. Hier wordt een communicatie gemaakt tussen het web server en het matlab server van de vakgroep waar de algoritmen aanwezig zijn. De gebruiker geeft aan de hand van de muis de noodzakelijke parameters op de online interface. Deze parameters zullen verstuurd worden en worden samen met de algoritmen verwerkt tot de uiteindelijke resultaten. De resultaten worden weer door de MWS terug gestuurd naar de gebruiker. De gekozen systeemconcept wordt afgebakend. In de implementatiefase wordt alleen een webinterface geïmplementeerd waarop de parameters en het gewenste algoritme kunnen worden ingesteld en ook return webpagina waarop de resultaten in de vorm van beeld en geluid worden weergegeven. De tweede deel van het systeemconcept namelijk de communicatie tussen het matlab software en de CGI script kan worden gemaakt door een ander student in het kader van bachelorproject. Het is ook aanbevolen dat het systeem kan worden gekoppelde aan een database waarop alle bestaande resultaten erop opgeslagen worden.
4 42
N.Irahhauten
Eindrapport: ICT-01.064
Literatuur Practicumgroep Integraal Project studenthandleiding, maart 2006
Practicum,
integraal
project
practicum
(IPP)
Ten haaf, Ir. W. , Management van productontwikkeling. 1e druk. Delft, 2006 Ten haaf, W., H. Bikker en D. J. Adriaanse, Fundamentals of business Engineering and management. 1e druk. Delft: Delft University Press, 2002. W3schools, HTML tutorial, http://www.w3schools.com/html/default.asp Leeds, Perl tutorial, http://www.comp.leeds.ac.uk/Perl/Cgi/start.html
4 43
N.Irahhauten
Bijlage A
Eindrapport: ICT-01.064
Handleiding
Bijlage A.1 Gebruiksvoorschrift Systeem specificatie De server waarop het demonstratie systeem zal werken dient aan de hieronder vermeldde specificaties te voldoen. Windows/ Linux operating system Beschikt over een HTTP Minimaal 4M byte hardschijf ruimte Het demonstratie systeem maakt gebruik van WWW. Installatie: Om het systeem functioneel te maken, is het voldoende de benodigde bestanden naar de WWW directory te kopiëren. De bestanden zijn index.html, ipp05.pl, wavs en figs, back02.jpg zijn afgebeeld in Figuur 21
Figuur 21: Schema van het model
Na het kopiëren van de bestanden naar de WWW directory, dienen de eigenschappen van de mappen aan te passen Eigenschappen figs bestand: Na het klikken op de rechter muis op de figs bestand klik op properties. De gekregen venster is afgebeeld in figuur 22
4 44
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 22: Eigenschappen figs bestand
vervolgens check als de juiste permissions zijn gevinkt zoals is afgebeeld op de bovenstaande figuur Eigenschappen wavs bestand: Na het klikken op de rechter muis op het wavs bestand klik op proprieties. De gekregen venster is afgebeeld in figuur 23
Figuur 23: Eigenschappen wavs bestand
Vervolgens check als de juiste permissions zijn gevinkt zoals is afgebeeld op de bovenstaande figuur 4 45
N.Irahhauten
Eindrapport: ICT-01.064
Eigenschappen index.html bestand: Na het klikken op de rechter muis op index.html. klik op properties. De gekregen venster is afgebeeld in figuur 24
Figuur 24: Schema van het model
Vervolgens check als de juiste permissions zijn gevinkt zoals is afgebeeld op de bovenstaande figuur Eigenschappen back02.jpg bestand: Na het klikken op de rechter muis op het back02.jpg, klik op properties. De gekregen venster is afgebeeld in figuur 25
Figuur 25: Eigenschappen back02.jpg
4 46
N.Irahhauten
Eindrapport: ICT-01.064
Vervolgens check als de juiste permissions zijn gevinkt zoals is afgebeeld op de bovenstaande figuur Paths: Na het instellen van de eigenschappen van alle systeembestanden, de volgende stap is de juist path aan te passen Open ipp05.pl bestand # Defaults # Parameters specified in USER_PARAM can be changed through the GET query string. my %PARAM = ( 'filepath' => '/home/ipp05/www', # Path to data (on fileserver) 'webpath' => '/~ipp05', # Path to data (on webserver) Hier moet de filepath en de webpath veranderd worden naar de huidige path van de files. Op de HTML script moet ook de path van de Logo afbeelding verandert Hiervoor: open de index.html verander de path naar de huidige locatie van het bestand back02.jpg. Starten van het systeem Na het doorlopen van de bovengenoemde stappen kan het systeem gestart worden. Dat gebeurt door in de internet browser de volgende intypen: http://ict.ewi.tudelft.nl/~ipp05/index.html De webpagina wordt gestart, namelijk de gebruikersinterface wordt gestart. Deze wordt afgebeeld in figuur 26
4 47
N.Irahhauten
Eindrapport: ICT-01.064
Figuur 26: Gebruikersinterface
De onderdelen van de gebruikersinterface wordt hieronder nader verklaard. Knoppen en menu panel er zijn 5 menu's: Menu “Algorithm” De eerste menu is algoritme, deze bevat een keuze in overstemming met de beschikbaar algoritme. Menu “Clean speech” De tweede menu is “clean speech”, deze bevat 2 keuzes van het schone voorbeeldzinnen Clean1 Clean2 Menu “Noise type” De derde menu is “Noise type”, deze bevat 2 keuzes: Witte ruis Babbel ruis Menu “Signal-noise ratio” de vierde menu is “SNR”, deze bevat keuzes van SNR :
4 48
N.Irahhauten
Eindrapport: ICT-01.064
15dB 5dB Menu “smoorthing parameter” Deze bevat 3 keuzes van de smoothing parameters 0.80 0.90 0.98 Menu “Radio button” Deze bevat twee keuzes van de maximum suppressie. Deze zijn 30dB en 10dB Menu “Sound player” Deze bevat twee keuzes voor het afspelen van geluid Realplayer Windows media player De gebruikersinterface bevat ook twee knoppen ”Reset” Knop bij het klikken op de reset worden de parameters naar het begin stand. ”Run” Knop Bij het klikken op de run knop wordt het return HTML gegenereerd. Dit laatste bevat de resultaten van de bijbehorende demonstratie. Als er in het menu een van de parameters niet gevinkt, wordt er een foutmelding gegenereerd figuur 27
Figuur 27: foutmelding
4 49
N.Irahhauten
Eindrapport: ICT-01.064
Een voorbeeld van de werking van het demonstratie systeem Hier wordt het demonstratie proces doorlopen. Na het kiezen van alle parameters wordt op de run knop geklikt, hier worden de parameters gestuurd en verwerkt. Vervolgens worden de bijbehorende resultaten van de gewenste combinatie opgeladen op de return HTML. Het resultaat wordt afgebeeld in figuur 28
Figuur 28: Output
5 50
N.Irahhauten
Bijlage A.2
Eindrapport: ICT-01.064
Onderhoud van het systeembestand
Het uitbreiden van de gebruikersinterface Het is mogelijk om het systeem uit te breiden. Dit wordt gedaan door het aanpassen van de HTML script en de CGI script. In dit sectie wordt uitgelegd hoe kan men de gebruikersinterface uitbreiden met nieuwe keuzes van de bestaande parameters en ook met nieuwe parameters. Het toevoegen van nieuwe keuzes voor de bestaande parameters. om een nieuwe keuze toe te voegen in de gebruikersinterface dient men de volgende stappen te volgen: open index.html script. Voeg de volgende nieuwe optie onder de juiste menu door het typen voor de select menu
Algorithm B
Algorithm A Derder stap: Hier moet de CGI aangepast worden om de resultaten van de nieuwe alogrithm weer te geven op de return HTML. Hier wordt de bestaande CGI gekopierd een aangepast door de bestandsnaam te veranderen Wavs ==> wavsA Figs ==> figsA bijvoorbeeld for ($PARAM{'algorithm'} eq 'Algorithm A' & $PARAM{'player'} eq 'win')
5 52
N.Irahhauten
Eindrapport: ICT-01.064
{ .......... Liquidatie en hergebruik van het systeem Het verwijderen van het systeem gebeurt door de systeembestanden te verwijderen.
5 53
N.Irahhauten
Bijlage B
Eindrapport: ICT-01.064
Broncode
Bijlage B.1 HTML code: gebruikersinterface <TITLE>Speech enhancement demo
Speech enhancement demo
Speech enhancement or noise reduction is concerned with removing noise from a signal in order to improve the quality of the signal. This demo allows you to have more insight on the developed algorithms. It allows you also to choose several different classes of noise to corrupt the clean signal.
Please choose the desired speech, the parameters to corrupt the clean speech and the desired algorithm:
5 56
N.Irahhauten
Eindrapport: ICT-01.064
B.2 CGI script & return HTML #!/usr/bin/perl use strict; use warnings; use vars qw( %PARAM @USERPARAM );
######################################################################### # Defaults # Parameters specified in USER_PARAM can be changed through the GET query string. my %PARAM = ( 'filepath' => '/home/ipp05/www', # Path to data (on fileserver) 'webpath' => '/~ipp05', # Path to data (on webserver) 'fragment' => '', # Name of the fragment to process 'noise' => '', # type of noise 'snr' => '', # SNR 'alpha' => '', #smoothing parameter 'algorithm' => '', # algoritme 'maxsup' => '', # maximaal suppressie 'player' => '', # geluidsspeler ); my @USER_PARAM = ( 'fragment','noise','snr','alpha','algorithm','maxsup','player', );
########################################################################### #### ERRORS CHECK ### ########################################################################### #### check if the max supression is selected if( $PARAM{'maxsup'} ne '30dB' & $PARAM{'maxsup'} ne '10dB' ){ print <<EOF; Error
5 58
N.Irahhauten
Eindrapport: ICT-01.064
Error:
<strong> Please select a value for the maximun supression
back to main page EOF exit 0; } #### check if the player is selected. if( $PARAM{'player'} ne 'win' & $PARAM{'player'} ne 'real' ){ print <<EOF; Error
Error:
<strong> Please select a sound player
back to main page EOF exit 0; } ################ check if the algorithm is avalaible if($PARAM{'algorithm'} ne 'Algorithm B') { print <<EOF; Error
Error:
<strong> The chosen algorithm is curently not available.Please try again.
######### check if the fragments are avalaible is avalaible. #Check for valid fragment wav name for ($PARAM{'algorithm'} eq 'Algorithm B'){ if ( ! -f "$PARAM{'filepath'}/wavs/clean$PARAM{'fragment'}.wav" || ! -f "$PARAM{'filepath'}/figs/clean$PARAM{'fragment'}.png") { # File does not exist, print error message and terminate print <<EOF; Error
Error:
<strong> Clear fragment is currently not availabe. Please try again
back to main page EOF exit 0; } #############Check for valid noisy png and wav elsif(!f"$PARAM{'filepath'}/figs/noisy$PARAM{'fragment'}$PARAM{'noise'}$PARAM{'s nr'}.png" || ! -f "$PARAM{'filepath'}/wavs/noisy$PARAM{'fragment'}$PARAM{'noise'}$PARAM{'snr'}.w av" ) { # File does not exist, print error message and terminate print <<EOF; Error
6 60
N.Irahhauten
Eindrapport: ICT-01.064
Error:
<strong> The chosen noise is currently not available. Please try again. <strong>
########################################################################### ### Results of demonstration ### ########################################################################### # Return results ################ Return page if the selected player is windows media player if ( $PARAM{'algorithm'} eq 'Algorithm B' & $PARAM{'player'} eq 'win' ) {
print <<EOF; <TITLE>Results of demonstration
Results of demonstration
Speech $PARAM{'fragment'} corrupted by $PARAM{'noise'} noise and enhanced using $PARAM{'algorithm'}, SNR of $PARAM{'snr'}, smoothing parameter of 0.$PARAM{'alpha'} and maximum supression of $PARAM{'maxsup'}
elsif ($PARAM{'algorithm'} eq 'Algorithm B' & $PARAM{'player'} eq 'real'){
print <<EOF; <TITLE>Results of demonstration
Results of demonstration
Speech $PARAM{'fragment'} corrupted by $PARAM{'noise'} noise and enhanced using $PARAM{'algorithm'}, SNR of $PARAM{'snr'}, smoothing parameter of 0.$PARAM{'alpha'} and maximum supression of $PARAM{'maxsup'}
Pijlen geven het aantal dagdelen aan (1 dagdeel=4uur)
Fase A,B,C
Fase D,E
1 1 6 A Planning (1)
0 0
Probleemanalyse (6)
6 2
Opstellen PvE (16)
6
0
22 3
Genereren van concepten en kiezen (6)
Concept implementeren en testen (38)
28 4
22
66 7
28
66 Voorbereiden eindrapportage (2)
Voorbereiden tussen rapportage(2) Opstellen tussenrapport (6)
30 5 66
Opstellen eindrapport (2)
68 8 68
Opstellen eindrapport (6)
6 68
4
4 1
0
14
10 3
4
10
24 4
14
5
29 5
24
6 29
2 2 12
0: Begin implementatie 1: input HTML-script 2:Resultaten algoritmes 3:CGI-script maken 4: Testen en verbeteren 5: Evaluatie 6:Documentatie 7: Eindrapportage
1
40 7
39
40
6 69
Eindrapport: ICT-01.064
Netwerkplanning implementatiefase
2
2
39
10
N.Irahhauten
0 0
Bijlage C.2
1=een dagdeel(4h)
N.Irahhauten
Bijlage D
Eindrapport: ICT-01.064
Kostprijsberekening
De werkelijke kostprijsberekening wordt pas bekend als het product gemaakt is. Voordat het productieproces afgerond is, is het wel nodig om een beeld te krijgen over de totale kosten van het project. Dit kan door een schatting van de kosten te maken. In bijlage D.1 wordt een Pre-calculatorische kostprijsberekening gedaan. De na- calculatorische kostprijsberekening wordt in bijlage D.2 gegeven Onder de directe kosten vallen alleen de materiaalkosten. Deze omvatten de kosten van de Matlab software en toolboxes. De indirecte kosten 1e categorie zijn de gebruikruimte en printkosten. Ten slotte, de indirecte kosten 2e categorie omvatten het salaris van de ontwerpers en de kosten van consultanten.
Bijlage D.1 Pre-calculatieve kostprijsberekening De pre-calculatieve kostprijsberekening is als volgt: Directe kosten: - materiaalkosten Indirecte kosten 1e categorie: - Gebruik werkruimte - Printkosten Indirecte kosten 2e categorie: - Salaris ontwerpers - Kosten consultanten