Tor Sigvardson. Handledare: Rolf Carlson. Godkänt den 11 december 2002

Storlek: px
Starta visningen från sidan:

Download "Tor Sigvardson. Handledare: Rolf Carlson. Godkänt den 11 december 2002"

Transkript

1 Datadrivna metoder för parametersyntes beskrivning av ett system och experiment med CART-analys Tor Sigvardson Handledare: Rolf Carlson Godkänt den 11 december 2002 Examinator: Rolf Carlson... (underskrift) Stockholm december 2002 ([DPHQVDUEHWHLWDONRPPXQLNDWLRQ TT &HQWUXPI UWDOWHNQRORJL Institutionen för tal, musik och hörsel Kungliga Tekniska Högskolan Stockholm

2

3 ([DPHQVDUEHWHLWDONRPPXQLNDWLRQ,QVWLWXWLRQHQI UWDO PXVLNRFKK UVHO Datadrivna metoder för parametersyntes beskrivning av ett system och experiment med CART-analys Tor Sigvardson *RGNlQW Examinator Rolf Carlson Handledare Rolf Carlson Sammanfattning Det har visats att naturligheten i traditionell regelbaserad talsyntes kan förbättras med hjälp av datadrivna metoder inspirerade av tekniker från konkateneringssyntes. Denna examensarbetesrapport beskriver ett försök att undersöka dessa möjligheter närmare. Ett flexibelt system där regelbaserad formantsyntes integreras med konkateneringssyntesens användande av enhetsval (eng. XQLWVHOHFWLRQ) kommer att byggas upp och utvärderas. Till skillnad från traditionell konkateneringssyntes, där enheter av akustiska inspelningar används, använder systemet som beskrivs här enheter med parametervärden. I förväg specificerade parametrar från det regelbaserade syntessystemet läses från fil och ersätts med parametervärden från ett enhetsbibliotek. Rapporten innehåller också en undersökning av möjligheten att bygga ett större enhetsbibliotek genom CART-klustring av en taldatabas. För CART-klustringen krävs en algoritm som kan hantera flerdimensionella beroendevariabler och implementationen av en sådan algoritm beskrivs. Även resultatet av ett klustringsförsök på enheten HQredovisas och utvärderas.

4

5 0DVWHU V7KHVLVLQ6SHHFK&RPPXQLFDWLRQ 'HSDUWPHQWRI 6SHHFK0XVLF DQG+HDULQJ Data-driven Methods for Parameter Synthesis Description of a System and Experiments with CART-Analysis Tor Sigvardson $SSURYHG Examiner Rolf Carlson Supervisor Rolf Carlson Abstract It has been shown that the perception of naturalness in traditional rule based speech synthesis can be improved by the use of data-driven methods inspired by unit selection techniques. This Master s thesis describes an effort to investigate these possibilities further. A flexible system, where a rule based formant synthesis system is integrated with unit selection, will be built and evaluated. As opposed to the use of recorded speech-units in traditional unit selection the system described here uses a library of parameter-units. Specified parameters from the rule based speech system are read from file and replaced by parameter values found in a unit library. The report also describes an exploration of the possibility to build up a large unit library by use of the CART-clustering method on a corpus. For this clustering, a CART-algorithm that can handle multidimensional dependent variables is needed and the implementation of such an algorithm is described. The result from an attempt to cluster the unit HQ is also shown and evaluated.

6

7 ,QQHKnOOVI UWHFNQLQJ g9(56,.7g9(55$33257(1 1.1 EXAMENSARBETETS MÅL I KORTHET RAPPORTENS DELAR (25, 2.1 TALSYNTES DATADRIVNA ANALYSMETODER CART-TRÄD, HISTORIK (.7(76*(120)g5$1'( 3.1 BAKGRUND, FÖRUTSÄTTNINGAR OCH MÅL PROJEKTETS HUVUDDELAR VERKTYG '$7$'5,9(13$5$0(7(56<17(6 4.1 SYSTEMET I ÖVERSIKT ENHETSBIBLIOTEKET OCH SÖKNING DURATIONSANPASSNING SAMMANSLAGNING OCH INTERPOLATION... 32,03/(0(17$7,21$9'$7$'5,9(13$5$0(7(56<17(6 5.1 KLASSER I DDPS BIBLIOTEKETS UPPBYGGNAD EFFEKTIVITET OCH FELHANTERING UTVÄRDERING AV DET IMPLEMENTERADE SYSTEMET... 40,03/(0(17$7,21$9&$57$/*25, ANALYSMATERIALETS FLERDIMENSIONELLA STRUKTUR DEFINITION AV IMPURITY ALGORITMEN GRUNDERNA FÖR IMPLEMENTATIONEN STOPPVILLKOR ÖVRIGA KLUSTRINGSVAL FELKLASSIFICERINGSKVOT OCH PRUNING VISUALISERING VERIFIERING &$57$1$/<62&+833%<**1$'$9(77(1+(76%,%/,27(. 7.1 PRINCIP FÖR UPPBYGGNAD AV ENHETSBIBLIOTEKET FÖRBEREDELSER INFÖR KLUSTRINGEN CART-KLUSTRING AV ENHETEN ( VERIFIERING AV CART-RESULTATET NÅGRA IAKTTAGELSER UNDER CART-KLUSTRINGEN SLUTSATSER OCH FÖRSLAG INFÖR NYA FÖRSÖK... 62

8 6$00$1)$771,1* 7$&. /,77(5$785)g57(&.1,1* %,/$*$,''36,03/(0(17$7,21 %,/$*$,,&$57,03/(0(17$7,21 %,/$*$,,,25'/,67$

9 gyhuvlnw YHUUDSSRUWHQ Denna rapport beskriver ett examensarbete, för filosofie magisterexamen i datalogi, utfört på institutionen för tal, musik och hörsel (TMH) på Kungliga tekniska högskolan i Stockholm. Rapporten är framlagd vid institutionen för numerisk analys och datalogi (Nada), Stockholms universitet. ([DPHQVDUEHWHWVPnOLNRUWKHW Examensarbetet utgörs av tre viktiga steg för att skapa grunderna till ett system som på automatisk väg och med datadrivna metoder skall kunna förbättra naturligheten i ett regelbaserat parametriskt talsyntessystem. Det första av dessa steg, eller delmål, är att skapa ett flexibelt experimentellt system som knyter samman TMH:s regelbaserade syntessystem med ett enhetsbibliotek av uppmätta formantvärden. Det sista, tredje delmålet, utgörs av en undersökning av möjligheterna att med klusteranalys av inspelat tal skapa ett bra enhetsbibliotek. Denna uppgift kommer att kräva ett klustringsverktyg med flerdimensionell funktionalitet. Skapandet av ett sådant verktyg utgör därför i sig självt ytterligare ett delmål, nämligen det andra. En grundligare presentation av hur arbetet är upplagt och dess delmål presenteras i avsnitt DSSRUWHQVGHODU Rapporten består av sex huvuddelar. I kapitel 2 behandlas de teoretiska grunderna för projektet. Kapitel 3 ger baserat på de teoretiska grunderna i kapitel 2 en noggrann översikt över hur arbetet är upplagt och vilka mål som satts upp. I kapitel 4 beskrivs den teoretiska bakgrunden bakom det system för datadriven parametersyntes som sedan byggs upp och utvärderas i kapitel 5. Kapitel 6 innehåller idéerna bakom skapandet av ett CART-program samt en kort översikt över dess implementation. I kapitel 7 används slutligen CART-programmet till att göra klusteranalys av en taldatabas. Kapitlet avslutas med en utvärdering av försöket. Möjligheten att använda klustringsresultatet i det datadrivna syntessystemet undersöks också. Slutligen sammanfattas hela projektet i kapitel 8. Därpå följer tack, litteraturförteckning och bilagor, inklusive en ordlista. 9

10

11 7HRUL I detta kapitel går vi igenom de teoretiska grunderna bakom examensarbetet. Vi börjar med en genomgång av viktiga begrepp inom talsyntesen. Därefter följer en kort sektion om datadrivna analysmetoder som mynnar ut i en mer utförlig beskrivning av CART-analys vilken är den analysmetod som kommer att användas i detta arbete. 7DOV\QWHV Tal är ett fenomen som gör människan unik i förhållande till resten av djurriket. Eftersom det också är en mycket effektiv form av kommunikation (Chapanis 1975) så är det rimligt att anta att tekniska systems användbarhet kan förbättras om man kan utveckla bra talbaserade gränssnitt. Uppgiften att skapa ett gränssnitt för tal kan vi dela in i två ganska självklara kategorier: Tolkning av tal Produktion av tal Till detta tillkommer en mindre uppenbar komponent nämligen GLDORJKDQWHULQJ. Den knyter ihop tolkningen och produktionen så att en meningsfull dialog kan upprättas med användaren av systemet. Denna rapport kommer att beröra produktion av tal. Tittar vi närmare på detta område kan vi göra ytterligare en distinktion: Produktion Reproduktion Ett exempel på reproduktion av tal är att med bandspelare och mikrofon spela in vad en människa säger för att senare spela upp samma yttrande via en högtalare. Vid produktion av tal finns så att säga inget original till det yttrande vi vill spela upp. Vi måste då skapa det på konstgjord väg. Vi måste syntetisera talet, utföra en WDOV\QWHV. 7LGLJDI UV N Försök att på mekanisk väg framställa tal gjordes redan på 1700-talet och de första försöken med elektricitetens hjälp gjordes under första halvan av 1900-talet (Klatt 1987). Runt början av 1960-talet började det teoretiska ramverket för att fysikaliskt beskriva människans talproduktion att ta form i den så kallade NlOODILOWHUPRGHOOHQ. I denna modell delas talproduktionen upp i två huvudkomponenter; dels en källa som producerar någon form av ursprunglig signal, dels ett filter som omformar denna signal. Källan består i allmänhet av antingen stämbandens vibrationer eller turbulensen i en trång passage i munhålan. Filtret består av munhålan som helhet, där tungans position, läpparnas rundning, näshålans öppning bakåt mot svalget, med mera påverkar filtrets egenskaper. Av stor betydelse är här filtrets förmåga att modellera de så kallade IRUPDQWHUQD. Formanter är resonansfrekvenser i munhålan och lite förenklat kan man säga att det är dessa som avgör vilket talljud som produceras. Det vill säga, olika formantvärden leder till olika talljud. Ett illustrativt exempel på detta är de två lägsta formantvärdenas betydelse för vilket vokalljud vi uppfattar (se Figur 1). 11

12 DATADRIVNA METODER FÖR PARAMERSYNTES )LJXU6YHQVNDYRNDOHU) UKnOODQGHWPHOODQDRFKDIRUPDQWHQVSHODUHQDYJ UDQGH UROOI UYnUSHUFHSWLRQDYYRNDOHU'HIRQHWLVNDWHFNQHQlUVNULYQDPHGGHWVN,3$DOIDEHWHW Källa-filter-modellen lade den teoretiska grunden för konstruerandet av den analoga formantsynthesizern. Exempel på tidiga sådana maskiner är PAT och OVE I från 1950-talet. I dag är datorn och den digitala tekniken självklara verktyg för utvecklandet av talsyntes men de moderna varianterna av SDUDPHWULVNUHJHOV\QWHV bygger i princip på samma idéer som de tidiga försöken på 1950-talet. Genom att behandla en given text enligt fastställda regler skapas parametervärden som varierar över tiden. Dessa skickas vidare genom en matematisk modell över talorganen och som utdata erhålles en signal som till exempel kan driva en högtalare. Genom så kallad FRS\V\QWHV har man på detta sätt lyckats att på helt konstgjord väg, det vill säga utan att använda några akustiskt inspelade signaler, producera tal som är mycket likt tal från en människa (Carlson et al. 1991). 3UREOHPPHGJHQHUHOOV\QWHV Tyvärr är det stora problem med att skapa generella metoder för automatisk syntes. En högkvalitativ modell av människans talproduktion kan mycket väl innehålla ett 60-tal olika parametrar (Dutoit 1997). Antalet möjliga kombinationer av parametervärden är följaktligen mycket stort. Att med regler producera godtyckliga yttranden av naturtroget tal på detta sätt har därför visat sig mycket svårt. Den fysikaliska modellen i sig kan mycket väl vara en god approximation av människans talproduktion men hur denna modell till fullo skall kunna styras är inte helt klarlagt. En annan svårighet i detta sammanhang är den så kallade IRQRORJLVNDSDUDGR[HQ eller LQYDULDQVSUREOHPHW(McAllister 1994). Paradoxen består i hur det kommer sig att ett IRQHP 1 ur akustisk synpunkt kan realiseras av en talare på en stor mängd olika sätt, men fortfarande uppfattas som ett och samma fonem av lyssnaren. Dels finns många 1 Ett fonem är den minsta betydelseskiljande enheten i ett språk. Till exempel är E och S två olika fonem i orden ELO och SLO. 12

13 TEORI akustiska varianter av ett fonem, dels kan olika fonem överlappa varandra i akustiskt hänseende utan att det leder till sammanblandning hos lyssnaren. Klart är emellertid att den kontext som fonemet befinner sig i spelar en viktig roll för hur det realiseras och uppfattas (Nord 1986). Det omvända gäller också; nämligen att en bokstav i en text inte har en direkt motsvarighet i något specifikt ljud. Även här är kontexten avgörande. Följaktligen räcker det inte med en modell av människans talorgan för att skapa bra syntetiska text-tilltalsystem. Det krävs också kunskaper om relationen mellan stavning och uttal. 2PVNULYQLQJVUHJOHURFKUHJHOV\QWHV De lingvistiska teorier uppbyggda kring så kallade RPVNULYQLQJVUHJOHU(på engelska: UHZULWHUXOHV) som Noam Chomsky utvecklade på 50-talet har visat sig vara användbara för att formalisera kontextens inverkan på t.ex. fonem (Dutoit 1997). Den grundläggande principen för denna typ av regler är: D EOBU som betyder: D ersätts med E i kontexten (dvs. då den omges av) O och U. Kontexten kan även ha många nivåer: OBUOBU... osv. På engelska kallas detta PXOWLOHYHOUHZULWHUXOHV. Bland annat har omskrivningsregler visat sig vara användbara vid regelsyntes. Poängen med att använda omskrivningsregler är att man steg för steg kan byta ut de vanliga tecknen i en text till parametrar på en form som passar den typ av talsyntessystem man använder. Metoden innebär att man relativt enkelt kan införa nya regler i systemet för att skapa nya talstilar, implementera nya språk med mera (Carlson et al. 1990). Ett av de stora hindren för riktigt bra regelsyntes är svårigheten att skriva uttömmande omskrivningsregler. Kunskaperna om vilka regler som styr talproduktionen är inte tillräckligt heltäckande (Dutoit 1997). $XWRPDWLVNDPHWRGHU Det är uppenbart att skapandet av regler för att syntetisera tal innebär stora problem. Vi kan inte ens vara säkra på att det överhuvudtaget finns några givna kompletta regler som går att upptäcka och formalisera i lingvistiska teorier. Människans tillkortakommande när det gäller att överblicka och organisera stora mängder information spelar här en roll. Ett sätt att ta sig förbi problemet med att formulera regler manuellt kan därför vara att utföra någon slags automatisk analys vars resultat går att implementera i en modell. Denna typ av metoder som vi kallar GDWDGULYQD bygger på idén att automatiskt analysera och formalisera ett stort datamaterial (till exempel en databas med inspelat tal). Exempel på en sådan metod är så kallad NOXVWHUDQDO\V som tas upp i avsnitt RQNDWHQHULQJVV\QWHV Det finns ytterligare ett sätt att komma runt problemet med vår ofullständiga kunskap om talproduktionen. Istället för att med parametrar och regler på syntetisk väg skapa talljuden kan vi plocka ihop bitar av inspelat tal ur en databas med ljudfiler. Denna mer minneskrävande metod kallas NRQNDWHQHULQJVV\QWHV. Denna metod har blivit allt mer populär eftersom priset på lagringsmedia och RAM-minne ständigt sjunker. Tekniken att välja bitar brukar benämnas med en engelsk term: XQLWVHOHFWLRQ. Man 13

14 DATADRIVNA METODER FÖR PARAMERSYNTES kan plocka ihop allt från enstaka ljud fonem till hela meningar. Eftersom det är mycket svårt att göra bra skarvar mellan två isolerade fonem brukar den minsta enheten i konkateneringssyntes vara två fonem tillsammans, så kallade GLIRQHU. Man placerar då skarven mitt i fonemen. Till exempel bildas ordet KXQG av difonerna: _K KXXQQGGB 2 Då man använder enheter med tre fonem WULIRQHU blir det centrala fonemet orört och skarvarna hamnar halvvägs in i de två ytterfonemen. Större enheter kan användas men ett stort problem är att antalet enheter som krävs för ett komplett lexikon ökar dramatiskt med enhetslängden. Andra problem med konkateneringssyntes är att få skarvarna att låta bra, att välja rätt enheter, att hushålla med lagringsutrymme och svårigheten att komplettera ett system i efterhand. För att få en så bra skarv som möjligt mellan två talsegment kan två huvudsakliga metoder användas: Urval välj två segment som är akustiskt lika. Signalbehandling bearbeta segmenten så att de blir akustiskt lika. Eftersom en och samma fonetiska enhet kan realiseras på en rad olika vis brukar man dessutom använda sig av en uppsättning olikljudande versioner av varje enhet. Genom att använda olika urvalskriterier väljer man sedan rätt enhet för sammanhanget. Med flera versioner av samma enhet ökar naturligtvis ytterligare behovet av lagringsutrymme. 8UYDOVPHWRGHUYLGNRQNDWHQHULQJ Vid urvalet av talsegment ur databasen räcker det tyvärr inte bara att ta hänsyn till den akustiska likheten mellan dem. Vi måste också göra ett val av segment som stämmer överens med hur det önskade ordet skall låta. Detta kan ge upphov till en konflikt eftersom två talsegment som är önskvärda utifrån en analys av den text som skall syntetiseras kan komma att passa ihop dåligt i sammanbindningspunkten. En vanlig metod för att skapa en kompromiss i denna konflikt är att införa två kostnader: PnO NRVWQDGoch NRQNDWHQHULQJVNRVWQDG. Målkostnaden stiger då ett segment avviker från vad som önskas utifrån en analys av texten medan konkateneringskostnaden stiger då kvaliteten på skarven mellan segmenten blir dålig. Ur databasen plockar man fram ett antal tänkbara kandidater och väljer sedan den sekvens som ger den minsta sammanlagda kostnaden (Hunt 1996). Att hitta den optimala sekvensen när antalet steg och kandidater är stort medför en mycket stor komplexitet. För att få rimliga exekveringstider måste algoritmer som effektiviserar processen användas. En vanlig sådan sökalgoritm är YLWHUELV NQLQJ. Den används flitigt inom taligenkänning (Ström 1997). Mycket förenklat kan vi säga att metoden där går ut på att finna den mest sannolika vägen i en graf där noderna motsvarar möjliga tolkningar av ett yttrande. Idén kan generaliseras till att användas inom konkateneringssyntes om vi byter ut sannolikhet mot kostnad, se Figur 2. 2 Strecket _ står för den tystnad som föregår det första eller följer det sista fonemet i ett ord. 14

15 TEORI 2 _MÅS_ _M _M MÅ 1 2 MÅ ÅS 1 7 ÅS _M S_ ÅS 3 5 )LJXU6 NQLQJHIWHUGHQYlJLJUDIHQVRPJHUGHQOlJVWDNRVWQDGHQ,GHWWDI UHQNODGH H[HPSHOPHGGLIRQHUILQQVHQNRQNDWHQHULQJVNRVWQDGVLIIURUQDSnOLQMHUQDVRPELQGHU VDPPDQHQKHWHUQDVDPWHWWPnOYlUGHVLIIURUQDXQGHUGHVWUHFNDGHOLQMHUQDLYDUMHHQKHWSHU GLIRQ'H QVNDGHPnOYlUGHQDUHGRYLVDV YHUVWLILJXUHQ.RQNDWHQHULQJVNRVWQDGHUQDRFK DYYLNHOVHUQDIUnQPnOYlUGHWDGGHUDV'HQYlJLJUDIHQVRPJHUOlJVWNRVWQDGKDUPDUNHUDWV 6LJQDOEHKDQGOLQJ För att förbättra skarven mellan två segment kan man också genomföra någon form av signalbehandling. Vi kan urskilja tre huvudsakliga skillnader mellan ljudsegment: Ljudnivå Grundtonsfrekevens Klang Att justera ljudnivån så att två segment stämmer överens är relativt enkelt medan de andra två skillnaderna är svårare att kompensera för. Inte minst eftersom man behöver mäta upp och parametrisera storheterna för att kunna jämföra dem. I allmänhet använder man här precis som i fallet med regelsyntes någon form av modell över talproduktionen för att representera data i det inspelade talmaterialet (Dutoit 1997). 'DWDGULYQDDQDO\VPHWRGHU Det finns inte någon entydig distinktion mellan datadrivna och modellbaserade metoder. Oftast använder man någon form av modell även då man använder datadrivna metoder (Sprent 1998). Inte sällan arbetar man med kombinationer av de två angreppssätten. Datadriven analys kan till exempel användas för att förbättra och vidareutveckla en kausal modell, men också för att komplettera den..oxvwhudqdo\v I och med utvecklingen på datorområdet är det idag möjligt att samla ihop, lagra och söka i stora mängder data. Att detta inte automatiskt innebär att vi kan dra bättre slutsatser är inte så konstigt. För att kunna dra slutsatser måste vi hitta något slags mönster och regelbundenhet i det vi betraktar. En metod att finna sådana mönster är NOXV WHUDQDO\V. Klusteranalys bygger på att man grupperar elementen i en datamängd i delmängder. Man försöker placera element som på något sätt är lika varandra i samma delmängd (Cios et al. 1998). Inom området maskininlärning brukar man skilja på 15

16 DATADRIVNA METODER FÖR PARAMERSYNTES övervakad inlärning VXSHUYLVHGOHDUQLQJ och oövervakad inlärning XQVXSHUYLVHG OHDUQLQJ. I övervakad inlärning vet man i förväg vilken grupptillhörighet objekten har och målet med analysen kan exempelvis vara att skapa metoder för automatisk klassifikation. Oövervakad inlärning liknar i princip regression på så sätt att det handlar om att hitta strukturer i ett okänt material. $YVWnQGVPnWW Definitionen av likhet mellan objekt är komplicerad. Det finns inte någon given definition som passar i alla lägen. Vanligtvis formaliserar man graden av likhet mellan objekt med någon form av DYVWnQGVPnWW. Ett vanligt avståndsmått är generaliseringen till godtycklig dimension Q av vår vardagliga definition av avståndet mellan två punkter i det tredimensionella rummet: & & [ \ = Q L = 1 [ L \ L 2 (2.1) Ovanstående avståndsdefinition är vad vi kallar det HXNOLGLVND avståndet och är ett specialfall av en familj med avståndsdefinitioner som kallas PLQNRZVNLDYVWnQG. Ett annat vanligt förekommande specialfall i denna familj är KDPPLQJDYVWnQGHW & & [ \ = Q = [ L \ L L 1 Figur 3 illustrerar skillnaden mellan (2.1) och (2.2) i två dimensioner. (2.2) P1 b c e 2 e 1 a P2 )LJXU-lPI UHOVHPHOODQWYnDYVWnQGVPnWWI UDYVWnQGHWPHOODQ3RFK3 KDPPLQJDYVWnQGDEHXNOLGLVNWDYVWnQGF.OXVWULQJVPHWRGHU Det finns många metoder för klusteranalys och en viktig samling sådana är de KLHU DUNLVNDNOXVWULQJVPHWRGHUQDDe kan i delas in i DJJORPHUDWLYNOXVWULQJoch GHOQLQJV NOXVWULQJ. Dessa två undergrupper är varandras spegelbilder. Delningsklustring går till så att man steg för steg delar en datamängd i allt mindre delar. I den agglomerativa varianten klumpar man istället stegvis ihop medlemmar i datamängden. Resultatet från en hierarkisk neddelning av en datamängd kan typiskt representeras i form av ett beslutsträd. 16

17 TEORI %HVOXWVWUlG Ett beslutsträd består av noder och grenar och normalt brukar det visualiseras upp och ner, med roten överst. Roten är således trädets översta nod samt dess ingång och från det leder grenar vidare till lägre noder som i sin tur leder vidare till ännu lägre noder och så vidare. Längst ner i det upp- och nedvända trädet återfinns löven, som motsvarar ett beslut. node1 node2 node4 leaf4 node3 leaf1 leaf5 node5 leaf6 leaf7 leaf8 leaf2 leaf3 leaf9 leaf10 leaf11 )LJXU(WWEHVOXWVWUlGGlUQRGHUQDKDUWYnWUHRFKIHPJUHQDU Idén kan generaliseras till att motsvara annat än rena beslut. Att t.ex. klassificera något är ju en form av beslutsfattande. Beslutet vi fattar är i detta fall vilken klasstillhörighet vi skall tilldela ett objekt. Träd kan även användas vid regressionsanalys. Ett beslutsträd är inte lätt att modifiera i efterhand utifrån nya data (Cios et al. 1998) och passar därför inte så bra för inkrementell dataanalys. I och med att uppbyggandet av träd i hög grad kan automatiseras behöver detta inte alltid vara ett problem. Det är ofta enklare att bygga ett nytt träd från grunden istället för att modifiera det man har. &$57WUlGKLVWRULN CART som står för Classification and regression trees är en trädbaserad metod för dataanalys. Trädbaserade analysmetoder är relativt unga och har blivit möjliga främst tack vare datorutvecklingen. Metoderna har sina rötter i de sociala vetenskaperna i USA på 60-talet (Cios et al. 1998). En fördel med trädmetoder är att de är enkla att beskriva och visualisera. Dessutom kan analysresultatet trädet enkelt implementeras och inkorporeras i ett datorprogram i form av ett beslutsträd. CART-metoden har sitt ursprung i arbeten av Breiman och Friedman från början av 70-talet (Breiman et al. 1984) och bygger på binära delningar i varje nod. CART är också namnet på det datorprogram som de utvecklade. Numera finns CART-metoden inkorporerad i ett flertal mjukvarupaket för bland annat statistik och talteknologi. Givet ett träd delar man i varje nod den givna datamängden i två delar med hjälp av en ja/nej-fråga. Den delmängd som besvarar frågan med ett ja leds ner i nodens vänstra 17

18 DATADRIVNA METODER FÖR PARAMERSYNTES gren och den andra delmängden i den högra grenen. På detta vis delas successivt en datamängd i allt mindre delar och ett binärt träd byggs upp, se Figur 5. BETONAD ja nej PLACERING < 16 LÄNGD < 103 ja nej ja nej LÖV 1 LÄNGD < 55 LÖV 4 LÖV 5 ja nej LÖV 2 LÖV 3 )LJXU(WW&$57WUlG-XVWGHWWDWUlGNDQDQYlQGDVWLOODWWGHODXSSGHQYHNWRUPlQJGVRP SUHVHQWHUDVL7DEHOOVLGDQ.ODVVLILFHULQJPHG&$57 CART-metoden kan användas till både klassificering och regression. Vid klassificering konstruerar vi en funktion G[som tilldelar ett heltal (ett klassnummer) till varje [i en given mängd Genom att utgå från en träningsmängd där klasstillhörigheterna redan är kända försöker vi hitta frågor som delar mängden så att kluster med enbart en enda klass vardera bildas i trädets löv. Observera att klassificeringen är entydig även då mer än ett löv motsvarar samma klass. När vi sedan använder det konstruerade CART-trädet för att klassificera nya okända data kommer oftast en hel del element att klassificeras fel. Det är i allmänhet inte möjligt att hitta frågor som skapar helt rena kluster ens för träningsmängden. Det mått som används för att beskriva värdet på felklassificeringens kallas WUXHPLVFODVVLILFD WLRQUDWH. Detta teoretiska värde kan oftast inte bestämmas exakt men det finns olika metoder för att approximera det. 5HJUHVVLRQPHG&$57 Att finna en regressionsmodell kan beskrivas som att finna den funktion\ I[ som förklarar sambandet mellan [och \(Cios et al. 1998) 3. Vid regression med CARTmetoden utgör således själva trädet denna funktion. Skillnaden mellan regression och klassificering är inte helt tydlig. Den mest uppenbara skillnaden är att vid regression har vi inte en diskret mängd klasser att utgå från och vår funktion kan vara reellvärd. Vi har inte heller någon träningsmängd att utgå från. Snarare är det så att vår regression kan ses som en metod för att finna eventuella förekomster av kluster i en okänd 3 I denna rapport kommer fortsättningsvis motsvarigheterna till \ att kallas EHURHQGHYDULDEOHU och motsvarigheterna till [ kommer att kallas REHURHQGHYDULDEOHU. Observera att de beroendevariabler som är sammansatta kommer att kallas IOHUGLPHQVLRQHOOD 18

19 TEORI datamängd 4. Principerna för CART-metoden vid regression och klassificering är relativt likartade (Breiman HWDO1984). &$57PHWRGHQVI URFKQDFNGHODU En av fördelarna med CART liksom med andra trädmetoder är som sagt att de är lätta att tolka, beskriva och implementera. Byggandet av träd går också att automatisera i hög grad. Detta skiljer metoden från en del andra statistiska metoder (Lewis 2000). Ytterligare fördelar med CART-metoden är att man inte i förväg behöver göra några antaganden om den underliggande datamängdens statistiska fördelning, den är inte så känslig visavi valet av metrik (dvs. avståndsdefinition) och användbara resultat kan erhållas även för analysmaterial där data delvis saknas (Breiman et al. 1984). Ytterligare en fördel med CART-metoden är att den tillåter att man blandar numeriska data (i princip reella tal) med kategoriska data (t.ex. ord). Inom talsyntesområdet har CART-metoder visat sig ge bra resultat vid t.ex. automatiserad analys av talmaterial för prediktion av prosodi och duration (Dutoit 1997, Riley 1992). Eftersom metoden är relativt ung är den emellertid inte till fullo utforskad och det råder även brist på expertis inom området (Lewis 2000). Liksom för andra trädmetoder ger inte CART-metoden garanterat den bästa partitionen (den bästa klassificeringen) av ett material. Detta är givetvis en nackdel, men också en fråga om komplexitet. Med dagens datorteknologi är det för ett någorlunda komplext datamaterial i princip inte möjligt att inom rimlig tid konstruera en trädklassificerare som ger det teoretiskt optimala trädet (Breiman et al. 1984). $WWE\JJDHWW&$57WUlG När vi skapar ett CART-träd behöver vi en datamängd som WUlQLQJVPDWHULDO. Denna mängd skall vara av samma typ som den vi senare vill att vårt träd skall kunna klassificera. Trädet bygger vi upp genom att dela träningsmaterialet i allt mindre delar. Varje delning ±SDUWLWLRQeller VSOLW± innebär att en ny nod skapas och målet är att i varje nod hitta en fråga som delar materialet på ett optimalt sätt. De fyra huvudsakliga komponenterna som behövs i denna process är följande: Konstruktion av frågor; en mängd möjliga frågor som kan besvaras med ja eller nej. Godhetsmått; ett mått på hur bra varje tvådelning av materialet är. Stoppvillkor; regler som avgör när vi skall sluta dela mängden. Alltså när vi skall anse att trädet är färdigbyggt. Klasstilldelning; regler som talar om vilken klass ett givet löv representerar. Vi tar en närmare titt på vad dessa fyra punkter innebär..rqvwuxnwlrqdyiunjru Vanligast i CART-metoden är att man ställer frågor på enbart en dimension i taget. I fall där materialets struktur beror av kombinationer av faktorer kan detta emellertid vara ett problem. Vi kanske kan skapa bättre träd genom att istället ställa frågor som täcker in flera dimensioner samtidigt. Två matematiska angreppssätt kan här vara att 4 Observera dock att vi kan tilldela dessa kluster klassnummer och på så sätt kan vi genom regressionen ändå skapa en klassificeringsfunktion! 19

20 DATADRIVNA METODER FÖR PARAMERSYNTES titta på linjärkombinationer eller booleska kombinationer. Komplexiteten i sökandet efter optimala split ökar dock avsevärt när vi tittar på kombinationer. *RGKHWVPnWW Nära relaterad till det generella begreppet avståndsmått i avsnitt är CARTmetodens fråga om hur man optimalt skall dela en mängd i två delar. Vi behöver ett mått på delningens godhet eller vilket går lika bra dess dålighet. Vi kvantifierar detta genom att skapa ett mått för mängdens RUHQKHW, eller LPSXULW\ Principen för att bygga ett optimalt CART-träd är att vid varje ny delning försöka minska summan av hela trädets impurity. Ett vanligt förekommande mått på impurity för diskreta värden är entropin (Cios et al. 1998): Q [ 1, [ 2,..., [ ) S log Q L 1 L 2 H( = = SL (2.3) DärQ är antalet variabler dvs. dimensionen och S L är sannolikheten att finna den LWH variabeln i den aktuella noden 6. Entropin går mot noll ju mer sannolikhetsvärdena samlas kring sina max och min-värden. Om vi tar ett exempel med bara två variabler [ och [ så får vi de lägsta entropivärdena då [ och[ eller då [ och [ Det högsta entropivärdet får vi då [ och[. För kontinuerliga variabler kan inte entropimåttet användas. Här blir det istället aktuellt med någon form av avståndsmått. Till exempel kan variansen kring medelvärdet av avstånden mellan en mängd vektorer användas. Ju lägre denna varians är, desto mer ihopklumpad kan vi säga att vektormängden är. 6WRSSYLOONRURFKSUXQLQJ Ju mer vi delar vår datamängd desto renare blir de olika partitionerna. I fallet med diskreta värden enligt formeln (2.3) ovan blir exempelvis den sammanlagda entropin till slut noll. Detta inträffar då vi har delat upp vår mängd i enskilda element. Det vill säga då vi har ett och endast ett element i varje löv. Detta träd är alltför specialiserat för att kunna användas till andra mängder än våra träningsdata. Vi måste alltså avsluta trädbyggandet på ett tidigare stadium eller i efterhand beskära det på något vis. I det första fallet, så kallad SUHSUXQLQJ definierar vi någon form av stoppvillkor (Cios et al. 1998). Vi kan till exempel anse att den aktuella noden skall bli ett löv då: Vi nått ett minsta antal element för träningsdata i noden. Minskningen av impurity inte blir tillräckligt stor om vi gör ytterligare delningar. Det inte finns någon lämplig fråga att ställa för att dela mängden. När alla noder på den lägsta nivån blivit löv är vårt träd klart. Det andra fallet SRVWSUXQLQJ leder till en mer komplicerad process. Principen bygger på att vi medvetet gör trädet för stort och beskär det i efterhand. Vi kan då exempelvis betrakta alla delträd och välja det delträd som minimerar en så kallad IHO NODVVLILFHULQJVNYRW. 5 Fortsättningsvis kommer det engelska ordet att användas i denna rapport eftersom det svenska ordet är lite svårtolkat och aldrig används i litteraturen. 6 Att finna denna variabel är ekvivalent med att den har värdet 1. 20

21 TEORI.ODVVWLOOGHOQLQJ Enligt Breiman (Breiman et al. 1984) innebär klasstilldelningen normalt inga större problem. Då vi bygger vårt träd med ett träningsmaterial vet vi redan vilken klass varje element har. Det är det som är innebörden av begreppet träningsmaterial. Att element tillhörande samma klass hamnar i två eller flera olika löv är heller inget problem då deras klasstilltillhörighet är känd. Vill vi däremot använda CARTmetoden för att nå kunskap om ett okänt material det vill säga göra en regression blir förhållandet ett annat. CART-metoden ger ingen möjlighet att i detta fall se om flera löv predicerar samma klass. Vi måste använda andra metoder för att avgöra det. Dessa problem utreds inte närmare av Breiman. 21

22

23 3URMHNWHWVJHQRPI UDQGH Utvecklingen inom konkateneringssyntesen går stadigt framåt och dessa system blir allt bättre. Fortfarande har regelsyntesen emellertid en del intressanta fördelar varav en av de främsta är den stora flexibiliteten (Manell 1998). Det finns alltså all anledning att fortsätta att utveckla och förbättra metoder för regelsyntes. %DNJUXQGI UXWVlWWQLQJDURFKPnO Utgångspunkten för föreliggande projekt är att kombinera fördelarna från de två syntesmetoderna. Konkateneringssyntesen har på många sätt en bättre detaljrikedom och överensstämmelse med den akustiska verkligheten, men kombinerar vi denna syntesmetod med regelsyntesen kan vi få ett system som är kompaktare, snabbare och enklare (Carlson et al. 2002). Inte minst kan signalbehandlingen då enheterna skall konkateneras komma att förenklas avsevärt. Vi behåller också möjligheten att använda regler till sådana aspekter av syntesen där detta är att föredra, t.ex. för att generera prosodi. Som vi tidigare sett kan man med copy-syntes på manuell väg ganska väl efterlikna karaktären hos en mänsklig talare i ett regelbaserat parametriskt talsyntessystem. Ett exempel på en sådan syntes gjord med talsynthesizern Glove utfördes på TMH i början av 90-talet och gav en god överensstämmelse med originalinspelningen (Carlson et al. 1991). Det förefaller alltså rimligt att påstå att den fysikaliska modell som används i Glove är tillräckligt bra för att skapa en naturlig och tydlig syntes. Dessutom har två tidigare projekt på TMH (Sjölander 2001, Högberg 1997) visat att det går att överföra formantvärden från akustiskt uppmätt tal till Glove genom metoder liknande dem som används i konkateneringssyntes och få ett förbättrat resultat. 3URMHNWHWVPnO Vi vill alltså skapa ett ramverk för ett regelbaserat parametriskt talsyntessystem som med så liten manuell insats som möjligt skall kunna anpassas till att efterlikna en inspelad mänsklig röst. Den metod vi kommer att använda är inspirerad av konkateneringssyntesens användande av unit selection. Vi använder oss emellertid inte av akustiska ljudenheter utan istället kommer vi att bygga upp ett enhetsbibliotek med formantkurvor och kontextuella värden. Vid syntesen kommer sedan de kontextuella faktorerna i den text som behandlas att avgöra hur vi väljer enheter i enhetsbiblioteket. För att kunna bygga upp ett bra enhetsbibliotek behöver vi göra en analys av inspelat tal. Vi behöver dessutom ett flexibelt system som knyter samman regelsyntessystemet med vårt enhetsbibliotek. Summan av allt detta utgör ett komplett system för datadriven parametersyntes 7 och är en vidareutveckling av idéerna i de två ovan nämna projekten. 7 I denna rapport kommer vi fortsättningsvis att använda uttrycket SDUDPHWHUV\QWHV som kortform för SDUDPHWULVN WDOV\QWHV. Observera att systemet är regelbaserat och datadrivet på samma gång eftersom de två metoderna kombineras. 23

24 DATADRIVNA METODER FÖR PARAMERSYNTES 3URMHNWHWVKXYXGGHODU Projektet verkar sönderfalla i två delar: Uppbyggnad av ett system för datadriven parametersyntes. Uppbyggnad av ett enhetsbibliotek. Som redan antytts i kapitel 1 tillkommer ytterligare en viktig del som består i att utveckla ett verktyg för klusteranalys. Detta verktyg behöver vi för våra försök att bygga upp enhetsbiblioteket. Figur 6 ger en översikt över det tänkta datadrivna parametersyntessystemets funktion och namnen på de olika komponenterna. text text-till-parameter RULSYS parameterkurvor kontext betoning duration.. DDPS enhetssökning konkatenering fråga enhet ENHETS- BIBLIOTEK + formantparametrar formantsyntes GLOVE )LJXU(WWV\VWHPI UGDWDGULYHQSDUDPHWHUV\QWHVRFKKXUGHWLQWHUDJHUDUPHG70+VUHJHO V\VWHP5XOV\VRFKIRUPDQWV\QWKHVL]HUQ*ORYH9LNDQVHDWWGHQYlQVWUDKDOYDQLSULQFLS PRWVYDUDUWUDGLWLRQHOOUHJHOVW\UGIRUPDQWV\QWHVPHGDQGHQK JUDKDOYDQWLOOVWRUDGHODUOLNQDU NRQNDWHQHULQJVV\QWHV9LGVXPPDWLRQVSXQNWHQNRPELQHUDVGHWYnPHWRGHUQDLRFKPHGDWW IRUPDQWYlUGHQIUnQNRQNDWHQHULQJVGHOHQHUVlWWHUGHDYUHJHOV\VWHPHWJHQHUHUDGHYlUGHQD Det grå fältet i Figur 6 utgör det system som vi vill bygga. Vi kallar systemet GDWD GULYHQSDUDPHWHUV\QWHV eller kort och gott ''36. Övriga delar av figuren utgörs av de två system som sedan tidigare finns på TMH, nämligen Rulsys och Glove. Längst till höger i Figur 6 finns ett enhetsbibliotek. Vi kommer att göra ett experiment med CART-klustringsanalys i ett försök att bygga upp detta bibliotek. Varför vi väljer just CART-metoden motiveras i avsnitt

25 PROJEKTETS GENOMFÖRANDE Projektet består alltså av följande tre delar vilka var och en också utgör ett delmål: 1. Implementation av ett system för datadriven parametersyntes. Systemet skall vara så pass flexibelt och utbyggbart att det kan användas till olika format och antal variabler hos såväl kontext som syntesparametrar. Dess biblioteksdel skall kunna hantera godtyckliga längder på enheterna (monofoner, difoner, trifoner eller större). Systemet skall också vara kompatibelt med systemen Rulsys och Glove som redan finns på TMH. 2. Utveckling av ett generellt system för CART-klustringsanalys. Beroendevariabeln skall kunna ha godtycklig dimension (inom rimliga gränser) och de oberoende variablerna skall kunna vara både kategoriska och kontinuerliga (mer om detta i kapitel 6). 3. Undersökning av möjligheten att använda CART-metoden för att analysera en taldatabas så att ett bra enhetsbibliotek till systemet i punkt ett kan byggas upp. 9HUNW\J Här följer en kort beskrivning över de verktyg och det material vi har till hands för vårt arbete. Fyra av verktygen är specifika för TMH, nämligen Glove, Rulsys, Snack och Wavesurfer. Rulsys och Glove är särskilt intressanta i sammanhanget och beskrivs därför lite mer detaljerat i avsnitt respektive Glove Parameterstyrd talsynthesizer. Graphviz 8 Open sourceprogram för visualisering av grafer t.ex. träd. Hcopy & Hlist Dessa två verktyg kan användas för att på olika sätt parametrisera en talvåg. Verktygen ingår i programpaketet HTK som är ett system för taligenkänning utvecklat av det numera nedlagda företaget Entropic. Rulsys Generellt system för omskrivningsregler. Tidningsinläsning En taldatabas bestående av ca 300 svenska meningar med tidningstext upplästa av en manlig talare. Materialet är fonetiskt uppmärkt och har i digital form funnits tillgängligt på TMH till detta projekt. Snack 9 Mjukvarupaket (WRRONLW) med primitiver för ljudbearbetning, ljuduppspelning, ljudvisualisering med mera. Det är avsett att användas för bearbetning av inspelat tal tillsammans med scriptspråk såsom Tcl/Tk eller Python (Sjölander, Beskow 2000). Wavesurfer 10 Generellt ljudprogram som kan användas för att spela upp ljudfiler, studera spektrogram, titta på formant- och grundtonskurvor med mera (Sjölander, Beskow 2000). Wagon CART-klustringsprogram som ingår i The Festival Speech Synthesis system 11. Festival är ett open source-system för flerspråkig talsyntes utvecklat på universitetet i Edinburgh. 8 (Senast besökt ) 9 (Senast besökt ) 10 (Senast besökt ) 11 (Senast besökt ) 25

26 DATADRIVNA METODER FÖR PARAMERSYNTES :DJRQRFKDQGUD&$57P MOLJKHWHU Möjligheten att använda Wagon till klustring har utgjort en av grunderna för projektet. När det visade sig att detta program inte hade den funktionalitet som krävdes ändrades också en del av förutsättningarna för projektet. Implementationen av det nya CARTprogram som beskrivs i kapitel 6 utgör därför en stor del av projektet, något som inte ingick i den ursprungliga planen. Anledningen till att Wagon inte har kunnat användas är att det inte kan klustra på data där beroendevariabeln har mer än en dimension. En andra kandidat till CART-program är Salford Systems 12 som är utvecklat av författarna till standardverket om CART-teorin (Breiman et al. 1984), men att köpa in och driftsätta detta stora kommersiella system bedömdes som för riskabelt. Eventuellt hade det också blivit för dyrt. Eftersom CART-klustringsmomentet är en intressant uppgift ur datalogisk synvinkel gjorde jag valet att ägna en större del av examensarbetet åt en egen CART-implementation. 5XOV\V Rulsys är ett system som konstruerades i mitten av 70-talet på TMH (Carlson et al. 1976). I princip är det en implementation av grammatik av Chomsky typ 3 (Dutoit 1997). Grunden är omskrivningsregler av den typ som beskrivits i avsnitt Symbolerna i Rulsys är objekt som kan bära på olika egenskaper och variabelvärden. På TMH har Rulsys exempelvis använts för text-till-talgenerering. Via en samling fördefinierade regler och lexika låter man Rulsys stegvis skriva om den ursprungliga texten till en fonetisk representation och sedan ersätta denna representation med parameterkurvor för styrning av exempelvis en talsynthesizer. Rulsys är namnet både på systemet och på det programmeringsspråk som detta system använder. En typisk omskrivningsregel: D EOBU blir i Rulsysnotation: $A%/ 5 *ORYH Redan 1953 konstruerade Gunnar Fant formantsynthesizern OVE I med vilken man kunde producera vokallika ljud av varierande tonhöjd och intensitet (Klatt, 1987). OVE I och dess mer avancerade efterföljare OVE II (1962) och OVE III (1968) bygger alla på den källa-filter-modell av människans talproduktion som nämnts i avsnitt I och med datorteknikens framsteg kan numera en talsynthesizer som OVE enkelt implementeras i mjukvara och den senaste versionen av TMH:s talsynthesizer Glove kräver ingen annan extern hårdvara än ett ljudkort för att syntetisera och spela upp tal. Glove, som alltså är en digital vidareutveckling av OVE, styrs av parametervärden som uppdateras med en frekvens på 100 Hz. Syntesen sker genom att Glove läser in parameterkurvor från fil och omvandlar dessa till ljud som antingen sänds direkt ut i högtalare eller skrivs till en ljudfil (Senast besökt ) 26

27 PROJEKTETS GENOMFÖRANDE Glove är en kaskadsynthesizer med olika parallella grenar, se Figur 7. Tillsammans med Rulsys utgör den grunden till det talsyntessystem som använts i detta projekt. Rulsys används dels för att generera parameterkurvor men också för att göra de sökningar på kontext som har varit nödvändiga både vid analys och syntes. De slutliga parameterkurvorna som erhålls efter att formantkurvorna bytts ut mot värden från enhetsbiblioteket syntetiseras i Glove. )LJXU6LJQDOIO GHVGLDJUDPPHGSDUDPHWHUQDPQI UIRUPDQWV\QWKHVL]HUQ*ORYH7LOOYlQVWHU LELOGHQILQQVWYnNlOORUVRPPRWVYDUDUDQWLQJHQVWlPEDQGHQI UYRNDOHURFKQDVDOHUHOOHU EUXVNlOODQKRVNRQVRQDQWHU'HVVDNlOOVLJQDOHUVNLFNDVVHGDQYLGDUHJHQRPROLNDJUHQDUPHG VHULHOOWNRSSODGHILOWHU([HPSHOYLVKDUYLHQVHULHPHGIRUPDQWILOWHUSnDQGUDUDGHQQHGLIUnQ &DUOVRQHWDO 3ODWWIRUP Hela detta projekt är utfört på en Dellmaskin med Intel Pentium 4 (i686), 1,7 GHz klockfrekvens och 256 MB RAM-minne. Operativsystemet är Linux , Red Hat distribution 7.1. De två program som presenteras i denna rapport är båda implementerade i C++ och kompilerade med gcc version

28

29 'DWDGULYHQSDUDPHWHUV\QWHV I detta kapitel beskrivs idéerna bakom det syntessystem vars uppbyggnad utgjort en av projektets huvuddelar. Vi skall se vilka komponenter och funktioner systemet kommer att behöva och hur dessa kan tänkas konstrueras. Vi skall också studera hur systemet kan integreras med det regelsyntessystem som redan finns vid TMH. I kapitel 5 följer sedan en beskrivning av själva implementationen. 6\VWHPHWL YHUVLNW Till vårt system har vi redan två färdiga komponenter. Vi har regelsystemet Rulsys och formantsynthesizern Glove (se avsnitt och 3.3.3). Att bygga in dessa systems funktionalitet i vårt datadrivna parametersyntessystem (DDPS) är ganska opraktiskt. Det vore ett mycket omfattande arbete och dessutom ganska onödigt eftersom det med enkel filhantering går att få alla tre komponenterna Rulsys, Glove och DDPS att tala med varandra. Principen beskrivs i Figur 8. Text RULSYS D Parameterkurvor Kontext betoning duration.. FILSYSTEM FILSYSTEM E modifierade parameterkurvor IN DDPS UT F FILSYSTEM GLOVE Ljud )LJXU''36V\VWHPHWLQWHUDJHUDUPHG5XOV\VRFK*ORYHJHQRPDWWVNULYDRFKOlVDSn ILOV\VWHPHW'HWWDVNHULWUHVWHJ9LOnWHU5XOV\VVN WDGHWI UVWDVWHJHWLWH[WWLOOWDOJHQH UHULQJHQD+lUJHQHUHUDVV\QWHVSDUDPHWUDURFKNRQWH[WXHOODYlUGHQH[WUDKHUDVXUWH[WHQ 5HVXOWDWHWOlVHUYLVHGDQLQRFKI UlQGUDULYnUW''36V\VWHPE9nUDSnGHWWDVlWW I UlQGUDGHSDUDPHWHUNXUYRUVNLFNDVVOXWOLJHQ YHUWLOO*ORYHI UV\QWHVF.RPPXQLNDWLRQHQ PHOODQGHWUHGHODUQDVNHULIRUPDYILOHUVRPOlVHVRFKVNULYVSnILOV\VWHPHW 29

30 DATADRIVNA METODER FÖR PARAMERSYNTES 9DGV\VWHPHWEHK YHUNXQQD I korthet skall vårt DDPS-system kunna utföra följande operationer (se även Figur 6 på sidan 24): 1. Läsa in formantsyntesparametrar. 2. Läsa in en fonetisk transkription och kontextuella parametrar. 3. Söka matchande enheter i enhetsbiblioteket med hjälp av kontext. 4. Anpassa durationen på den matchande sekvensen så att den överensstämmer med formantsyntesens durationer. 5. Smälta samman de i den matchande sekvensen ingående enheterna och samtidigt jämna till skarvarna. 6. Föra över önskade parametrar från den matchande sekvensen till formantsyntesens parameterbeskrivning. Detta skall göras genom att skriva över vissa regelgenererade värden med enligt punkt fyra och fem behandlade värden från enhetsbiblioteket. Bara de värden vi i förväg specificerar skall skrivas över. Notera att i punkt 6 kommer vi inte att ersätta alla parametrar från regelsystemet. Därför behöver vårt system kunna anpassa kurvorna så att de blir lika långa och ligger synkroniserade med varandra. (QKHWVELEOLRWHNHWRFKV NQLQJ Vi börjar med att söka enheter i enhetsbiblioteket. Målet är att hitta den enhet som passar bäst i kontexten. Om enhetsbiblioteket byggts upp med CART-klustring kan CART-träden eventuellt användas som sökträd i detta steg (Figur 9). _MÅS_ steg 1 steg 2 _M MÅ ÅS_ )LJXU6 NQLQJPHG&$57WUlG) UVWV NHUPDQXSSOlPSOLJDHQKHWHU±VWHJ) UYDUMH HQKHWV NHUPDQGlUHIWHUXSSElVWDNDQGLGDWHQLUHVSHNWLYHWUlG±VWHJ 1DFNGHODUYLGV NQLQJPHG&$57WUlG Med ett sökträd är valet av enhet entydigt bestämt. Vill man ta hänsyn till hur väl olika enheter kommer att passa ihop vid konkateneringen kan detta vara en nackdel. En möjlig lösning är att inte använda sökträd, utan istället spara resultaten från klustringen dvs. de val som görs i varje intern nod i trädet tillsammans med själva 30

31 DATADRIVEN PARAMETERSYNTES enheterna och sedan använda dessa resultat som sökparametrar i en annan sökmetod såsom till exempel viterbisökning (se avsnitt 2.1.6). Det är också tänkbart att kombinera trädsökning och viterbisökning och då definiera en speciell kostnad för att välja fel enhet i trädet. Algoritmen för viterbisökning kan hantera olika enhetslängder. Om vi vill ha varierande enhetslängd och använda sökträd vid syntesen blir det dock mer problematiskt. Vi klustrar för en given enhetslängd (t.ex. difon, eller trifon) och måste då på något sätt kombinera de olika typer av sökträd som vi erhåller. Vi går inte djupare in på detta problem utan noterar endast att det måste lösas. 0RGHOOHULQJDYHQKHWVELEOLRWHNHW En central uppgift om vi vill få ett effektivt och optimalt program är att modellera enhetsbiblioteket. Aspekter vi måste ta hänsyn till är: Tillgängligt lagringsutrymme på disk. Tillgängligt RAM-minne. Lagringsformat och relationen till sökträden. Effektivitet vid sökning. Skall det gå att läsa från disk under sökning? Utbyggbarhet av biblioteket. 'XUDWLRQVDQSDVVQLQJ De i enheterna ingående fonemen kommer i allmänhet inte att ha samma längder som de som beräknas av regelsystemet. Enheterna måste därför sträckas eller tryckas ihop för att få samma antal ramar som alla andra parametrar regelsystemet genererar (Figur 10). REGELSYSTEM: ENHETS- BIBLIOTEK: _ M Å S M M Å ÅS_ tid kompression expansion expansion )LJXU(QKHWHUQDIUnQELEOLRWHNHWPnVWHNRPSULPHUDVHOOHUH[SDQGHUDVWLOOVDPPDOlQJG DQWDOUDPDUVRPUHJHOV\QWHVHQKDUJHQHUHUDW I vårt system är utgångspunkten att enbart hämta formantkurvor från enhetsbiblioteket. I ett mer avancerat system kan man mycket väl tänka sig att även hämta durationsvärden från klustringsanalysens prediktioner. I detta fall måste en mer avancerad modell för durationsanpassningen användas och man måste finna en balans mellan regelsystemets durationsval och de som prediceras av klustringen. 31

32 DATADRIVNA METODER FÖR PARAMERSYNTES 6DPPDQVODJQLQJRFKLQWHUSRODWLRQ När enheterna skall slås samman kommer två problem att uppstå. Hur behandlas de överlappande delarna? Hur jämnar man ut ojämnheter vid skarvpunkterna? gyhuodssqlqj Det första problemet är enklast. I vanlig konkateneringssyntes gör man i allmänhet så att man trunkerar den sista halvan av det sista fonemet i den vänstra enheten och tvärtom i den högra, se Figur 11. M Å Å S _ )LJXU.RQNDWHQHULQJDYWYnHQKHWHU'HJUnSDUWLHUQDNDVWDVERUW,QWHUSRODWLRQ För att jämna ut skillnader i skarvpunkten mellan två enheters parameterkurvor behöver vi göra någon slags interpolation. Det går att tänka sig en rad olika metoder för detta. En simpel metod D i Figur 12 är att helt enkelt ta punkter en bit in i varje enhet och interpolera linjärt mellan dem. En lite mer avancerad metod är att göra två separata gradvisa övergångar E i figuren som följer respektive halvas kurvfigur. Ytterligare en variant är att låta enheternas förlängning in i varandra få betydelse F. Notera att den sista metoden kräver att man har båda funktionernas värden för hela interpolationsintervallet. Det finns också mer avancerade implementationsmetoder som till exempel så kallad VSOLQHLQWHUSRODWLRQDenna metod ger mjuka övergångar mellan olika punkter genom att man binder samman dem med separata tredjegradskurvor (Borse 1997). I vårt fall skulle vi behöva enbart en spline (en tredjegradskurva) vars derivata i ändpunkterna sammanfaller med originalkurvorna. En tydlig nackdel med denna metod är att vi helt kommer att kasta bort de ursprungliga formantvärdena i interpolationsintervallet. Men med smala interpolationsintervall kanske ändå den mjuka kurvatur som erhålls är att föredra. Eftersom metoden är relativt komplicerad och kräver att man löser ekvationssystem lämnar vi den därhän och nöjer oss med att konstatera att en sådan metod är en möjlig väg vidare om ingen av de mer enkla varianterna visar sig duga. 6OXWOLJVDPPDQVODJQLQJ Om duration och utjämning gjorts enligt modellen ovan är uppgiften att slå samman enhetsbibliotekets värden med formantsyntesens trivial. Det är bara att skriva över formantsyntesens värden för de aktuella parametrarna. Naturligtvis måste man se till att man använder samma skala som formantsyntesen använder samt att man håller sig inom de gränser som formantsynthesizern kan behandla. 32

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts. Datakompression fö 3 p.3 Datakompression fö 3 p.4 Optimala koder Övre gräns för optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning)

Läs mer

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or. Datakompression fö 3 p.1 Optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning) som har lägre kodordsmedellängd. Det existerar förstås

Läs mer

Hur bestämmer man vilka fonem ett språk har? Fonologi. Kommutationstest. Hur bestämmer man vilka fonem ett språk har?

Hur bestämmer man vilka fonem ett språk har? Fonologi. Kommutationstest. Hur bestämmer man vilka fonem ett språk har? Fonologi Mattias Heldner KTH Tal, musik och hörsel heldner@kth.se Hur bestämmer man vilka fonem ett språk har? Hur bestämmer man vilka fonem ett språk har? Fonem = minsta betydelseskiljande ljudenhet i

Läs mer

Artificiella Neuronnät

Artificiella Neuronnät Artificiella Neuronnät 2 3 4 2 (ANN) Inspirerade av hur nervsystemet fungerar Parallell bearbetning Vi begränsar oss här till en typ av ANN: Framåtkopplade nät med lagerstruktur 3 4 Fungerar i princip

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Källkodning. Egenskaper hos koder. Några exempel

Källkodning. Egenskaper hos koder. Några exempel Källkodning Källkodning innebär att vi avbildar sekvenser av symboler ur en källas alfabet på binära sekvenser (kallade kodord). Mängden av alla kodord kalls för en kod. (Man kan förstås tänka sig att

Läs mer

Tal i bråkform. Kapitlet behandlar. Att förstå tal

Tal i bråkform. Kapitlet behandlar. Att förstå tal Tal i bråkform Kapitlet behandlar Test Användning av hälften och fjärdedel 2 Representation i bråkform av del av antal och av del av helhet 3, Bråkform i vardagssituationer Stambråk, bråkuttryck med 1

Läs mer

Vinjetter TDDC91 Datastrukturer och algoritmer

Vinjetter TDDC91 Datastrukturer och algoritmer Vinjetter TDDC91 Datastrukturer och algoritmer 17 augusti 2015 2 Scenario 1 Man har inom Posten Logistik AB skrivit programvara för sortering av kundinformation och vill standardisera användningen av sorteringsalgoritmer.

Läs mer

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har? Hur bestämmer man vilka fonem ett språk har? Fonologi Mattias Heldner KTH Tal, musik och hörsel heldner@kth.se (Morfem = minsta betydelsebärande enhet i ett språk) Fonem = minsta betydelseskiljande ljudenhet

Läs mer

Text-till-Talsyntes (TTS2)

Text-till-Talsyntes (TTS2) Text-till-Talsyntes (TTS2) Rebecca Jonson TalTeknologikursen VT 2005 Dagens lektion Lite mer om prosodisk frasering Svar på frågan om svenska sammansättningar Några exempel på system Talsyntes Formant

Läs mer

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät Artificiella Neuronnät 1 Karaktäristiska egenskaper Användningsområden Klassiska exempel Biologisk bakgrund 2 Begränsningar Träning av enlagersnät 3 Möjliga avbildningar Backprop algoritmen Praktiska problem

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1 Datakompression fö 2 p.1 Krafts olikhet En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om N 2 l i 1 Bevis: Antag att vi har en trädkod. Låt l max =max{l

Läs mer

Träd och koder. Anders Björner KTH

Träd och koder. Anders Björner KTH 27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som

Läs mer

Ett urval D/A- och A/D-omvandlare

Ett urval D/A- och A/D-omvandlare Ett urval D/A- och A/D-omvandlare Om man vill ansluta en mikrodator (eller annan digital krets) till sensorer och givare så är det inga problem så länge givarna själva är digitala. Strömbrytare, reläer

Läs mer

Att fånga den akustiska energin

Att fånga den akustiska energin Att fånga den akustiska energin När vi nu har en viss förståelse av vad ljud egentligen är kan vi börja sätta oss in i hur det kan fångas upp och efterhand lagras. När en ljudvåg sprider sig är det inte

Läs mer

Språkteknologi och Open Source

Språkteknologi och Open Source Språkteknologi och Open Source Erik Edin F01 erikedin@kth.se 15 oktober 2004 1 1 Open Source Open Source är en rörelse som syftar till att skriva datorprogram som släpps fria utan kommersiella intressen.

Läs mer

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL och Media, SF60 och 5B8, onsdagen den 7 augusti 0, kl 4.00-9.00. Examinator: Olof Heden Hjälpmedel: Inga

Läs mer

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692 Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...

Läs mer

Föreläsning 6: Analys och tolkning från insamling till insikt

Föreläsning 6: Analys och tolkning från insamling till insikt Föreläsning 6: Analys och tolkning från insamling till insikt FSR: 1, 5, 6, 7 Rogers et al. Kapitel 8 Översikt Kvalitativ och kvantitativ analys Enkel kvantitativ analys Enkel kvalitativ analys Presentera

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 2 Marco Kuhlmann Institutionen för datavetenskap Förra gången: Gradientsökning tangentens lutning i punkt θ steglängdsfaktor Översikt Introduktion

Läs mer

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Titel Mall för Examensarbeten (Arial 28/30 point size, bold) Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP

Läs mer

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python) Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Statistisk mönsterigenkänning

Statistisk mönsterigenkänning Statistisk mönsterigenkänning Jonas Sandström Artificiell intelligens II Linköpings universitet HT 2011 Innehållsförteckning 1. Innehållsförteckning sid 2 2. Inledning sid 3 3. Statistisk mönsterigenkänning

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet 27 augusti 2013 Innehåll Linjära ekvationssystem

Läs mer

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 2 Marco Kuhlmann Förra gången: Linjär regression Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna

Läs mer

Föreläsning 5: Analys och tolkning från insamling till insikt. Rogers et al. Kapitel 8

Föreläsning 5: Analys och tolkning från insamling till insikt. Rogers et al. Kapitel 8 Föreläsning 5: Analys och tolkning från insamling till insikt Rogers et al. Kapitel 8 Översikt Kvalitativ och kvantitativ analys Enkel kvantitativ analys Enkel kvalitativ analys Presentera resultat: noggrann

Läs mer

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken.

Optimeringslara = matematik som syftar till att analysera och. Optimeringslara ar en gren av den tillampade matematiken. Optimal = basta mojliga. Optimeringslara = matematik som syftar till att analysera och nna det basta mojliga. Anvands oftast till att nna ett basta handlingsalternativ i tekniska och ekonomiska beslutsproblem.

Läs mer

Föreläsninsanteckningar till föreläsning 3: Entropi

Föreläsninsanteckningar till föreläsning 3: Entropi Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.

Läs mer

2 Dataanalys och beskrivande statistik

2 Dataanalys och beskrivande statistik 2 Dataanalys och beskrivande statistik Vad är data, och vad är statistik? Data är en samling fakta ur vilken man kan erhålla information. Statistik är vetenskapen (vissa skulle kalla det konst) om att

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Lösningsförslag till övningsuppgifter, del V

Lösningsförslag till övningsuppgifter, del V Lösningsförslag till övningsuppgifter, del V Obs! Preliminär version! Ö.1. (a) Vi kan lösa uppgiften genom att helt enkelt räkna ut avståndet mellan vart och ett av de ( 7 ) = 1 paren. Först noterar vi

Läs mer

1 Minkostnadsflödesproblem i nätverk

1 Minkostnadsflödesproblem i nätverk Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa

Läs mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1) Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal

Läs mer

Vanliga frågor för VoiceXpress

Vanliga frågor för VoiceXpress Vanliga frågor för VoiceXpress 1) Hur stort ordförråd (vokabulär) innehåller VoiceXpress? VoiceXpress innehåller ett mycket omfattande ordförråd, och svaret på frågan varierar en aning beroende på hur

Läs mer

HMM-baserad talsyntes An HMM-based Text-To-Speech System applied to Swedish

HMM-baserad talsyntes An HMM-based Text-To-Speech System applied to Swedish HMM-baserad talsyntes An HMM-based Text-To-Speech System applied to Swedish Anders Lundgren Handledare: Jonas Beskow Godkänd:... Examinator:... Rolf Carlson Examensarbete vid institutionen för Tal, Musik

Läs mer

Föreläsning 5. Deduktion

Föreläsning 5. Deduktion Föreläsning 5 Deduktion Hur ett deduktivt system fungerar Komponenter - Vokabulär Ett deduktivt system använder ett visst slags språk som kan kallas för systemets vokabulär. I mindre formella fall är kanske

Läs mer

Universe Engine Rapport

Universe Engine Rapport 1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten

Läs mer

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning En rapport från CATD-projektet, januari-2001 1 2 Förstudie Beslutsstöd för operativ tågtrafikstyrning Bakgrund Bland de grundläggande

Läs mer

3 differensekvationer med konstanta koefficienter.

3 differensekvationer med konstanta koefficienter. Matematiska institutionen Carl-Henrik Fant 17 november 2000 3 differensekvationer med konstanta koefficienter 31 T Med en menar vi en av rella eller komplexa tal varje heltal ges ett reellt eller komplext

Läs mer

Bedömningsanvisningar

Bedömningsanvisningar Bedömningsanvisningar Exempel på ett godtagbart svar anges inom parentes. Till en del uppgifter är bedömda elevlösningar bifogade för att ange nivån på bedömningen. Om bedömda elevlösningar finns i materialet

Läs mer

MVE051/MSG Föreläsning 7

MVE051/MSG Föreläsning 7 MVE051/MSG810 2016 Föreläsning 7 Petter Mostad Chalmers November 23, 2016 Överblick Deskriptiv statistik Grafiska sammanfattningar. Numeriska sammanfattningar. Estimering (skattning) Teori Några exempel

Läs mer

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning TANA18/20 mars 2015 LAB 3. INTERPOLATION 1 Inledning Vi ska studera problemet att interpolera givna data med ett polynom och att interpolera med kubiska splinefunktioner, s(x), som är styckvisa polynom.

Läs mer

DAB760: Språk och logik

DAB760: Språk och logik DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer D DAT 035/INN960 Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,

Läs mer

a = a a a a a a ± ± ± ±500

a = a a a a a a ± ± ± ±500 4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att

Läs mer

Rekursiva algoritmer sortering sökning mönstermatchning

Rekursiva algoritmer sortering sökning mönstermatchning Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Bedömningsanvisningar

Bedömningsanvisningar Bedömningsanvisningar NpMab ht 01 Eempel på ett godtagbart svar anges inom parentes. Till en del uppgifter är bedömda elevlösningar bifogade för att ange nivån på bedömningen. Om bedömda elevlösningar

Läs mer

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08 LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK Laboration 5: Regressionsanalys DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08 Syftet med den här laborationen är att du skall

Läs mer

Skurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga.

Skurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga. Datakompression fö 4 p1 Skurlängdskodning Ibland har man källor som producerar långa delsekvenser av samma symbol Det kan då vara praktiskt att istället för att beskriva sekvensen som en följd av enstaka

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Ansiktsigenkänning med MATLAB

Ansiktsigenkänning med MATLAB Ansiktsigenkänning med MATLAB Avancerad bildbehandling Christoffer Dahl, Johannes Dahlgren, Semone Kallin Clarke, Michaela Ulvhammar 12/2/2012 Sammanfattning Uppgiften som gavs var att skapa ett system

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till

Läs mer

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem. Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem. Begrepp som diskuteras i det kapitlet. Vektorer, addition och multiplikation med skalärer. Geometrisk tolkning. Linjär kombination av

Läs mer

Vardagssituationer och algebraiska formler

Vardagssituationer och algebraiska formler Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran

Läs mer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson Uppsala Universitet Matematiska Institutionen Thomas Erlandsson LÄSANVISNINGAR VECKA 36 VERSION 1. ARITMETIK FÖR RATIONELLA OCH REELLA TAL, OLIKHETER, ABSOLUTBELOPP ADAMS P.1 Real Numbers and the Real

Läs mer

PRÖVNINGSANVISNINGAR

PRÖVNINGSANVISNINGAR PRÖVNINGSANVISNINGAR Prövning i Matematik D Kurskod Ma 104 Gymnasiepoäng 100 Läromedel Prov Muntligt prov Inlämningsuppgift Kontakt med examinator Övrigt Valfri aktuell lärobok för kurs Matematik D t.ex.

Läs mer

Optimering och simulering: Hur fungerar det och vad är skillnaden?

Optimering och simulering: Hur fungerar det och vad är skillnaden? Optimering och simulering: Hur fungerar det och vad är skillnaden? Anders Peterson, Linköpings universitet Andreas Tapani, VTI med inspel från Sara Gestrelius, RIS-SIS n titt i KAJTs verktygslåda Agenda

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 26 november 2015 Sida 1 / 28 Föreläsning 6 Minsta kvadrat problem. Polynom. Interpolation. Rötter. Tillämpningar:

Läs mer

Del A: Digitala verktyg är inte tillåtna. Endast svar krävs. Skriv dina svar direkt på provpappret.

Del A: Digitala verktyg är inte tillåtna. Endast svar krävs. Skriv dina svar direkt på provpappret. NAN: KLASS: Del A: Digitala verktyg är inte tillåtna. Endast svar krävs. Skriv dina svar direkt på provpappret. 1) a) estäm ekvationen för den räta linjen i figuren. b) ita i koordinatsystemet en rät linje

Läs mer

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK DATORLABORATION 4 MATEMATISK STATISTIK, FÖR I/PI, FMS 121/2, HT-3 Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Läs mer

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt. 1 Samlingar 1.1 Frekvenstabell En Integer är icke-muterbar (precis som String, Float, Boolean et.c.). Ickemuterbarhet har många fördelar, men en nackdel är att ett helt nytt objekt måste skapas när ett

Läs mer

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. TANA09 Föreläsning 8 Kubiska splines Approximerande Splines s s s s 4 B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. x x x x 4 x 5 Exempel Parametriska Kurvor. Ritprogram. Beziér kurvor.

Läs mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad för att man skall

Läs mer

Vad behövs för att skapa en tillståndsrymd?

Vad behövs för att skapa en tillståndsrymd? OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. TANA09 Föreläsning 8 Approximerande Splines B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. Exempel Parametriska Kurvor. Ritprogram. Beziér kurvor. Design av kurvor och ytor. Tillämpning

Läs mer

Arkitektur och Regelverk Definition av kodverk och klassifikation. Version 1.0

Arkitektur och Regelverk Definition av kodverk och klassifikation. Version 1.0 Arkitektur och Regelverk Definition av kodverk och klassifikation Version 1.0 Innehållsförteckning 1. Inledning... 3 2. Definitioner... 3 Referenser och underlag... 5 Revisionshistorik Version, datum Författare

Läs mer

Grafisk visualisering av en spårbarhetslösning

Grafisk visualisering av en spårbarhetslösning Datavetenskap Opponenter Johan Kärnell och Linnea Hjalmarsson Respondenter Agni Rizk och Tobias Eriksson Grafisk visualisering av en spårbarhetslösning Oppositionsrapport, C-nivå Report 2011:06 1. Generell

Läs mer

Föreläsning 1. Repetition av sannolikhetsteori. Patrik Zetterberg. 6 december 2012

Föreläsning 1. Repetition av sannolikhetsteori. Patrik Zetterberg. 6 december 2012 Föreläsning 1 Repetition av sannolikhetsteori Patrik Zetterberg 6 december 2012 1 / 28 Viktiga statistiska begrepp För att kunna förstå mer avancerade koncept under kursens gång är det viktigt att vi förstår

Läs mer

Att välja statistisk metod

Att välja statistisk metod Att välja statistisk metod en översikt anpassad till kursen: Statistik och kvantitativa undersökningar 15 HP Vårterminen 2018 Lars Bohlin Innehåll Val av statistisk metod.... 2 1. Undersökning av en variabel...

Läs mer

Föreläsning 12 Inspektionsmetoder. Rogers et al. Kapitel 15

Föreläsning 12 Inspektionsmetoder. Rogers et al. Kapitel 15 Föreläsning 12 Inspektionsmetoder Rogers et al. Kapitel 15 Inspektionsmetoder Metoder som genomförs utan användare En eller helst flera experter utför en inspektion eller granskning Man utgår ifrån vedertagna

Läs mer

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

Läs mer

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 1! Introduktion och begrepp Kurspresentation! - Målsättning! - Kursutvärdering! - Upplägg! - Översikt! Viktiga begrepp "1 "2 Mina målsättningar Alla ska

Läs mer

Bedömningsanvisningar

Bedömningsanvisningar NpMab vt 01 Bedömningsanvisningar Exempel på ett godtagbart svar anges inom parentes. Till en del uppgifter är bedömda elevlösningar bifogade för att ange nivån på bedömningen. Om bedömda elevlösningar

Läs mer

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 1 Matematiska Institutionen KTH Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 14.00-19.00. Examinator: Olof Heden Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Data på individ/hushålls/företags/organisationsnivå. Idag större datamänger än tidigare

Data på individ/hushålls/företags/organisationsnivå. Idag större datamänger än tidigare MIKROEKONOMETRI Data på individ/hushålls/företags/organisationsnivå Tvärsnittsdata och/eller longitudinella data o paneldata Idag större datamänger än tidigare Tekniska framsteg erbjuder möjligheter till

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl 1 Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl 14.00-19.00. Examinator: Olof Heden Hjälpmedel:

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Shannon-Fano-Elias-kodning

Shannon-Fano-Elias-kodning Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen

Läs mer

Datastrukturer. föreläsning 10. Maps 1

Datastrukturer. föreläsning 10. Maps 1 Datastrukturer föreläsning 10 Maps 1 AVL-träd 1 2 5 2 0 4 1 8 3 2 1 11 1 7 Lecture 6 2 Insättning i AVL-träd Sätt först in det nya elementet på samma sätt som i ett vanligt BST! Det nya trädet kan bli

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18 TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis

Läs mer

Introduktion till statistik för statsvetare

Introduktion till statistik för statsvetare och enkäter "Det finns inget så praktiskt som en bra teori" September 2011 och enkäter Inledning Inledning Om vi vill mäta en egenskap hos en population individer (individer kan vara personer, företag

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett

Läs mer

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer

Läs mer

Analys/syntes-kodning

Analys/syntes-kodning Analys/syntes-kodning Många talkodare bygger på en princip som kallas analys/syntes-kodning. Istället för att koda en vågform, som man normalt gör i generella ljudkodare och i bildkodare, så har man parametrisk

Läs mer

Handledning för konstruktion av tabeller och diagram med Excel

Handledning för konstruktion av tabeller och diagram med Excel Handledning för konstruktion av tabeller och diagram med Excel 26 APRIL 2013 Inledning Excel är inte konstruerat för att i första hand utföra statistiska beräkningar, men en hel del sådant kan ändå göras.

Läs mer

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen Faktorisering med hjälp av kvantberäkningar Lars Engebretsen 003-11-18 Bakgrund Vanliga datorer styrs av klassiska fysikens lagar. Vanliga datorer kan simuleras av turingmaskiner i polynomisk tid. Kanske

Läs mer