Datadriven formantsyntes

Storlek: px
Starta visningen från sidan:

Download "Datadriven formantsyntes"

Transkript

1 TT Centrum för talteknologi Centrum för talteknologi Datadriven formantsyntes Arvid Sjölander 2001 Examensarbete vid Instutionen för tal, musik och hörsel Handledare: Rolf Carlson

2 2

3 Abstract This report describes an attempt to construct a system for data driven formant synthesis. The main issue was to make an estimation of wether such a system is able to produce speech at a higher level of intelligibility and/or naturalness than a system based on traditional formant synthesis. The experimental system was divided into two modules; one database containing all the parametrisized speech units and one concatination module containg the system functions. Three different types of databases were constructed. The first containing rule generated speech units, the second containing automatically parametrisized, real speech, and the third containing manually parametrisized, real speech. The performance of the system was evaluated in a listening test. If the rule generated database or the automatically parametrisized databes was used, the system didn t reach neither the level of intelligibility nor the level of naturalness of the traditional formant synthesis. If the manually parametrisized database was used the system proved to generate more natural and as least as intelligible speech as the rulebased formant synthesis. Sammanfattning Rapporten beskriver ett försök att konstruera ett system för datadriven formantsyntes. Det huvudsakliga syftet var att avgöra huruvida ett sådant system kan producera tal som är tydligare och/eller mer naturligt än ett system baserat på traditionell formantsyntes. Experimentsystemet delades upp i två moduler; en databas som innehöll alla parametriserade talsegment och en konkatineringsmodul som innehöll alla systemfunktionerna. Tre olika typer av databaser konstruerades. Den första innehöll regelgenererade talsegment, den andra innehöll automatiskt parametriserat, naturligt tal, och den tredje innehöll manuellt parametriserat, naturligt tal. Systemets prestanda evaluerades i ett lyssningstest. Då den regelgenererade databasen eller den automatiskt parametriserade databasen användes nådde inte systemet samma nivå avtydlighet och naturlighet som den traditionella formantsyntesen. Då den manuellt parametriserade databasen användes användes visade sig systemet generera naturligare och åtminstone lika tydligt tal som den regelbaserade formantsyntesen. 3

4 Tack till: Professor Rolf Carlson för uppslag, hjälp med formulering av målsättningen och handledning. Professor Björn Granström för givande diskussioner och råd. Doktorand Kåre Sjölander för hjälp med programmmeringstekniska detaljer. Forkningsingenjör Kjell Gustavsson och Harald Berthelsen från Infovox AB för hjälp med MBROLA databasen. Forskningsingenjör Botond Pakucs för hjälp med systemtekniska detaljer. Alla försökspersoner för att noggrant ha genomfört sin uppgift. Övriga anställda på Intutitionen för Tal, Musik och Hörsel för goda tips och råd närhelst de behövts. 4

5 Innehållsförteckning Abstract sid 3 Sammanfattning sid 3 Tack till sid 4 Innehållsförteckning sid 5 Inledning sid 6 Bakgrund sid 6 Vad är ett TTS-system? sid 6 Konkatineringssyntes sid 7 Formantsyntes sid 8 Datadriven formantsyntes sid 9 Konstruktion av experimentsystemet sid 10 Målsättning sid 10 Övergripande systemstruktur sid 10 Databasen sid 11 Konkatineringsmodulen sid 12 Förutsättningar för lyssningstestet sid 16 Resultat sid 17 Slutsats sid 22 Referenser sid 25 Appendix 1 Manual sid 27 Övergripande struktur sid 27 Databasen sid 27 Konkatineringsmodulen sid 31 Appendix 2 Definitioner sid 35 Appendix 3 Källkod sid 37 Appendix 4 Instruktion för lyssningstestet sid 45 5

6 Inledning Rapporten beskriver ett försök att konstruera ett system för datadriven formantsyntes. I datadriven formantsyntes parametriseras talet på samma sätt som i traditionell formantsyntes. Istället för enbart målvärden lagras dock en hel kurvform för varje parameter och för varje talsegment man väljer att lagra. Detta förfarande undviker en del av problemen med traditionell regelbaserad formantsyntes (se Bakgrund ). Målsättningen med examensarbetet är något löst att systemet i så stor utsträckning som möjligt skall behålla fördelarna med traditionell formantsyntes och kringå nackdelarna. Arbetet syftar därmed till att ge en indikation på möjligheterna med datadriven formantsyntes jämfört med regelbaserad formantsyntes, snarare än att resultera i det optimala systemet. Rapporten är strukturerad på följande sätt: Under rubriken Bakgrund beskrivs de syntesmetoder som används idag. Behovet av datadriven formantsyntes motiveras. Under Utförande avhandlas hur systemet för datadriven formantsyntes är konstruerat, vilka problem som uppstått, samt hur dessa problem lösts. Under Förutsättningar för lyssningstestet redogörs för förutsättningarna för ett lyssningstest där deltagarna fått bedöma kvaliteten på ljudet ut från det konstruerade systemet. Under Resultat redovisas resultatet av detta lyssningstest. Under Slutsats kommenteras dessa resultat, samt huruvida det slutliga system är i enlighet med den ursprungliga specifikationen. Här diskuteras också vilka problem som återstår att lösa och förslag ges på vilka förbättringar som kan göras i framtiden. I appendix 1 bifogas en kortfattad manual till systemet rapporten beskriver. Notera att appendix 1 alltså beskriver själva systemet precis som Utförande men ur en mer programmeringsteknisk synvinkel. I appendix 2 definieras de begrepp och tekniska termer som används i rapporten och som inte kan förväntas vara bekanta för läsaren sedan tidigare. I appendix 3 bifogas en utskrift av de h-filer som definierar systemet. Bakgrund Vad är ett TTS-system Ett system för talsyntes är ett system som producerar tal. Detta är en väldigt vid definition och rymmer såväl enkla syntesmaskiner som de allra mest avancerade. Ett exempel på en enkel talsyntes är Fröken Ur. Fröken Ur syntetiserar tal genom att sammanfoga förinspelade ord till meningar. Då databasen enbart rymmer siffror kan hon bara tala om vad klockan är. Dessutom är satsmelodin på förhand given av de inspelade orden. De enskilda orden låter dock fullständigt naturliga eftersom det ju styckvis - är en människa som talar. I mer avancerade system kan man med en större databas bilda fler meningar och även variera satsmelodin. TTS är en förkortning för Text to Speech, dvs ett tekniskt system som konverterar en skriven text till tal. Gemensamt för alla TTSsystem är den generella strukturen enligt Figur 1 (för en mer ingående beskrivning, se [1]). 6

7 Text Text till fonem Transkription av fonem och prosodi Fonem till tal Tal Figur 1. Enkelt blockschema över ett TTS-system. TTS-sytemet är uppdelat i två moduler. Den första omvandlar den skrivna texten till en transkription av fonemsekvensen och den önskade prosodin. Den andra modulen omvandlar den symboliska informationen från den första modulen till en akustisk vågform. Således har den första modulen det primära ansvaret för att de komponenter i talet som sträcker sig över längre segment, såsom satsmelodi, blir korrekta. Den andra modulen ansvarar främst för att kortare segment av talet låter naturliga. Notera att det är möjligt att konstruera de bägge modulerna som oberoende av varandra, dvs givet gränssnittet behöver den ena inte veta vilken metod som den andra använt. Detta är önskvärt eftersom det innebär att samma realisering av modul 1 kan återanvändas till flera realiseringar av modul 2 och vice versa. De vanligaste kategorierna av talsyntessystem är formantsyntes och konkatineringssyntes. I TTS-system skiljs dessa kategorier åt av hur modul 2 i systemet är realiserad. Även benämningen datadriven formantsyntes refererar till konstruktionen av modul 2. Nedan beskrivs hur vanlig formantsyntes och konkatineringssyntes fungerar. Fördelar och nackdelar med respektive syntesmetod diskuteras. Därefter beskrivs datadriven formantsyntes. Behovet av datadriven formantsyntes motiveras med utgångspunkt från nackdelarna med gängse syntesmetoder. Konkatineringssyntes I konkatineringssyntes bildas den akustiska talvågen i modul 2 genom att förinspelade talsegment i kodad eller okodad form sammanbinds konkatineras, se Figur 2 (för en utförlig beskrivning, se [1]). Transkription av fonem och prosodi Konkatineringsmodul, ev avkodare Tal Databas: förinspelade talsegment Figur 2. Enkelt blockschema över konkatineringssyntes. 7

8 Fröken Ur är ett exempel på sådan konkatineringssyntes. Fördelen med att som i Fröken Ur använda förinspelade segment av ordlängd är att man får ett system vars tal åtminstone styckvis uppfattas som naturligt. Nackdelen är att man får ett oflexibelt system. Dels kan systemet bara uttala meningar som innehåller just de ord som är förinspelade, dels växer databasen av nödvändighet för varje nytt ord som introduceras. En lösning på problemet är att använda sig av kortare talsegment som kan kombineras för att bilda nya ord. Väljer man t ex att lagra de enskilda fonem som bygger upp ordet Paris kan man även bilda ordet sirap det är bara att spela upp fonemen i omvänd ordning. Därmed har man lyckats bilda ytterligare ett ord utan att behöva utvidga databasen. Så enkelt är det dock inte. Paris må vara sirap baklänges rent symboliskt men spelar man upp det ena ordet med fonemen i omvänd ordning får man inte nödvändigtvis något som låter som det andra ordet. Förmodligen kommer de enskilda fonemen och intonationen att låta fel. Detta kan kompenseras för på två sätt, antingen genom att försöka manipulera talvågen till att låta rätt, eller genom att helt enkelt spela in varje talsegment flera gånger, varje gång med olika realisering av fonemen och prosodin. Vid syntes kan man sedan välja de segment som bäst matchar den output som kommer från modul 1 både vad gäller fonem och prosodi. Ytterligare ett problem är att ordet Paris inte består inte av akustiskt diskreta enheter som det skrivna ordet, utan snarare av en kontinuerlig vågform. Att stycka upp vågformen i fonem och därefter konkatinera dessa i omvänd ordning leder därför ofelbart till diskontinuiteter i den nya vågformen. Dessa diskontinuiteter uppfattas som distortion (så kallade klick- och kluckljud ). Ett sätt att göra diskontinuiteterna så små som möjligt är att lagra talsegment med ändpunkter mitt i fonem där talvågen är som stabilast, istället för i gränsen mellan fonem där talvågen förändras som mest. Det kortast möjliga segmentet man kan lagra med detta förfarande är en difon, dvs ett halvt fonem följt av ett halvt fonem. I konkatineringssyntes balanserar man således mellan så naturligt tal som möjligt å ena sidan, och så flexibelt system som möjligt å andra sidan. Ju längre talsegment man väljer att lagra, desto naturligare tal i slutändan, ju kortare talsegment, desto flexiblare system. Många system använder sig idag av difoner som en kompromiss. Notera att oavsett vilken avvägning man gör mellan naturlighet och flexibilitet, lider konkatineringssyntesen av att den är svårmanipulerad vilket är dess största nackdel. Formantsyntes Ett sätt att åstadkomma en mer lättmanipulerad talsyntes är att använda sig av parametriserade talsegment. I databasen lagras ett antal målvärden för varje parameter och varje fonem. Dessa parameterar styr en källa-filterbank, vilken genererar en talvåg. För att erhålla en kontinuerlig kurva för varje parameter krävs en modul som interpolerar mellan dessa målvärden enligt vissa regler. Även målvärdena själva påverkas beroende på kontext etc. Denna syntesform har fått namnet Regelsyntes. 8

9 Transkription av fonem och prosodi Regelverk Källafilterbank Tal Databas: Målvärden för parametrar Figur 3. Enkelt blockschema över regelsyntes. Vilka parameterar man väljer att använda kan variera men formantfrekvenser med tillhörande bandbredder för de första 4-5 formanterna brukar ingå. I såfall talar man om Formantsyntes (för en utförlig beskrivning, se [2]). Som exempel på formantsyntes kan nämnas TTS-systemet på TMH som använder sig av totalt 60 parameterar, varav 32 är artikulatoriska och 28 är visuella. Formantsyntesen är mer lättmanipulerad än konkatineringssyntesen. Den har dock åtminstone en nackdel. Det krävs ett ganska omfattande regelverk för att åstadkomma tal som är tillräckligt naturligt och tydligt. Idag saknas dessutom kunskap för att göra ett system för formantsyntes som låter lika naturligt och tydligt som konkatineringssyntes. Datadriven formantsyntes Sammantaget skulle man alltså vilja konstruera ett system för fonem- till talkonvertering som: 1) är lika lättmanipulerat som den traditionella formantsyntesen, 2) som inte kräver samma kunskapsbaserade regelverk, och som 3) låter (minst) lika naturligt som konkatineringssyntesen. Studier har gjorts i vilka parametervärdena till formantsyntesen för ett givet yttrande mätts upp för hand. Resultatet har avlyssnats och värdena har ytterligare justerats för att åstadkomma ett mer naturligt yttrande. Dessa studier har visat att man på så sätt kan konstruera syntetiskt tal som är omöjligt att skilja från riktigt tal. Slutsatsen måste bli att det är teoretiskt möjligt att konstruera en syntes som uppfyller kraven ovan. Man handmäter helt enkelt parametervärden för varje tänkbart yttrande och låter dessa värden styra en källa-filterbank från en vanlig formantsyntes så kallad datadriven formantsyntes. Nu har man dock ersatt det omfattande regelverket med en omfattande databas av parmetervärden. Och vad värre är; precis som i Fröken Ur växer databasen för varje nytt yttrande man introducerar. Dessutom är denna teoretiska syntesmetod lika oflexibel som Fröken Ur eftersom den enbart kan uttala de yttranden som är explicit parametriserade och handmätta. Men! Ovan diskuterades hur konkatineringssyntesen kunde göras mer flexibel genom att kortare talsegment än ord lagrades. Denna rapport 9

10 beskriver ett försök att tillämpa denna princip på datadriven formantsyntes för att göra den användbar i praktiken. I konkatineringssyntesen stöter man på problem med diskontinuiteter i vågformen. Liknande problem kan uppstå då man binder samman parameterkurvor. Ytterligare problem samt förslag på lösningar diskuteras under Utförande nedan. Konstruktion av experimentsystemet Målsättning Rapporten beskriver ett försök att skapa ett system för datadriven formantsyntes som uppfyller kraven 1-3 ovan. Först konstruerades ett system för att bearbetning av parametriserat data ( Konkatineringsmodulen i Figur 5 nedan). För att kunna verifiera att systemet fungerade skapades en databas (se Figur 5) av regelgenererade segment (se Datakälla sid 11). Efter denna första verifiering skapades en ny databas bestående av parameterar extraherade på automatisk väg mha av WAVES. Parameterarna extraherades ur MBROLA-databasen Ingmar (MBROLA beskrivs i [1]) som innehåller difoner av riktigt tal. Därefter finjusterades värdena för ett hundratal av dessa parametriserade difoner för hand. Difonerna valdes så att de gick att kombinera till fem på förhand utvalda meningar. Slutligen utfördes ett lyssningstest där försökspersonerna fick i uppgift att gradera de tre syntesmetoderna ovan gentemot den renodlade regelsyntesen. Övergripande systemstruktur Som poängterats i förra avsnittet har ett TTS-system som bygger på formantsyntes och ett TTS-system som bygger på konkatineringssyntes ett gemensamt steg i syntesprocessen. Båda systemen kan använda samma modul för text- till fonemkonvertering. Datadriven formantsyntes har ytterligare ett steg gemensamt med traditionell formantsyntes. Förutsatt att båda syntesmetoderna använder sig av samma parametrar för talet, kan samma källa-filter-modul användas i båda fallen. I syfte att utnyttja dessa gemensamma beröringspunkter konstruerades systemet för att i så stor utsträckning som möjligt använda delar av det befintliga systemet för formantsyntes på TMH. Det befintliga systemet beskrivs av Figur 4. Text RULSYS Transkription av fonem och prosodi Regelverk.dat GLOVE Tal Databas: Målvärden för parameterar Figur 4. Enkelt blockschema över KTH:s TTS-system. Blocket markerat med en stjärna är en fil istället för funktionsblock. 10

11 RULSYS analyserar en skriven text (för ingående beskrivning, se [7]). Texten översätts till en fonemsträng som parametriseras mha ett regelsystem (traditionell formantsyntes således). Fonemsträngen med tillhörande parametervärden skrivs till en.dat fil (se Definitioner ). Datfilen skickas till GLOVE [8] som är en källa-filterbank. Nu kan resultatet avlyssnas. Systemet för datadriven formantsyntes kan enligt ovan använda sig både av RULSYS för text- till fonemkonvertering och GLOVEs källa och filter för själva ljudgenereringen. Systemet konstruerades därför enligt Figur 5. Från regelverket.dat Konkatineringsmodul.dat Till GLOVE Databas: parameterkurvor Figur 5. Systemet för datadriven formantsyntes. Blocken markerade med stjärnor är filer istället för funktionsblock. Systemet består av två moduler. Den första är en databas i vilken all data är lagrad. Den andra består av de funktioner som, givet en fonemsträng, konstruerar ett parametriserat yttrande mha av data från databasen. Notera att.dat-filen förutom fonemsträng även förser konkatineringsmodulen med regelgenererade parametervärden. Detta är praktiskt av två skäl: För det första kan det hända att de värden som hämtas från databasen inte är tillförlitliga. Så kan t ex vara fallet för automatiskt extraherade formantvärden för en konsonant. Om värdena är tillräckligt dåliga för ett fonem kan det vara bättre att använda de regelgenererade värdena för motsvarande fonem i.dat-filen. För det andra är det inte säkert att databasen innehåller parametervärden för alla de parameterar GLOVE använder (se Parameterextrahering nedan). Värden för de resterande parameterarna måste då hämtas någon annanstans. I experimentsystemet har dessa värden hämtats från den regelgenererade.dat-filen. Nedan redogörs för hur databasen är konstruerad och hur konkatineringsmodulen fungerar. För en mer ingående och teknisk beskrivning hänvisas till Appendix 1. Databasen I databasen lagras taldata i parametriserad form. Vid skapandet av databasen måste man ta hänsyn följande faktorer: Parametrar Taldata är parameteriserat, så en första frågeställning är vilka parametrar som skall användas. Systemet interagerar dock med RULSYS och använder därför samma parametrar som det ursprungliga systemet. 11

12 Datakälla Data måste komma någonstans ifrån. Olika tänkbara varianter är t ex man/kvinna, riktig talare/syntetisk talare. Två datakällor har använts, Ingmar-databasen från MBROLA, som är en autentisk talare, och TMH:s regelsyntes, som alltå generar syntetiska parametervärden. Parameterextrahering Givet en datakälla, t ex inspelat tal från en vuxen man, måste önskade parametrar extraheras på något sätt. Man kan dela in möjliga tillvägagångssätt i två undergrupper: 1) Automatisk extrahering. 2) Manuell extrahering. För automatisk extrahering har WAVES använts. WAVESURFERs grafiska gränssnitt har utnyttjas för manuell extrahering (för en ingående beskrivning, se [9]). Vilka parameterar som ett program klarar av att extrahera kan variera. WAVES extraherar de första fem formanterna. I systemet har dock genomgånde de första fyra använts. Det är även de första fyra formanterna som tagits fram på manuell väg. Notera att parameterextrahering blir ett trivialt problem om RULSYS används som datakälla eftersom RULSYS använder samma parameterar som systemet. Segmentering Att välja rätt segment att lagra är ett problem man av naturliga skäl oftast inte konfronteras med i regelbaserad formantsyntes. I konkatineringssyntes är det dock en central frågeställning. De lagrade segmenten bör ha några grundläggande egenskaper: 1) De skall täcka upp så många artikulatoriska effekter som möjligt. Detta för att kunnna generera så naturtroget tal som möjligt. 2) De skall vara lätta att sammanbinda (se Diskontinuitetsutjämning sid 13). Ju längre segment desto färre sammanbindningspunkter och därmed högre talkvalitet. Ju fler lagrade varianter av varje segment desto större sannolikhet att hitta några som är lätta att sammanbinda. Men många och långa segment gör datainsamlingen mer tidskrävande och komplicerad. Här har valts att genomgående lagra difoner som en utgångspunkt. Detta hade den praktiska fördelen att Ingmar-databasen då kunde utnyttjas som datakälla Ingmar-databasen innehåller nämligen enbart segment av difonlängd. Notera dock att konkatineringsmodulen rent tekniskt klarar att hanterar segment av olika längd. Konkatineringsmodulen Konkatineringsmodulen består av en samling funktioner som, givet en fonemsträng, konstruerar ett parametriserat yttrande mha av data från databasen. Yttrandet konstrueras i fyra steg. 12

13 1) Sökning 2) Filtrering 3) Diskontinuitetsutjämning 4) Töjning/komprimering Steg 1,3 och 4 skiljer sig från steg 2 i ett viktigt avseende. I steg 1 sökes den optimala kombinationen av units och i steg 3 och 4 utförs nödvändiga operationer på dessa units inför en slutlig konkatinering. Steg 2 kan snarast ses som finjustering av valda delar av databasen. Sålunda är steg 1,3 och 4 är obligatoriska i ett system för datadriven formantsyntes medan behovet av steg 2 är beroende av hur databasen ursprungligen är konstruerad. Det är också värt att notera i vilken ordning stegen utförs. Man skulle kunna tänka sig att filtreringen inledde processen men eftersom man då inte har utfört sökningen, och alltså inte vet vilka units som skall filtreras, blir man tvungen att filtrera hela databasen. I tidsoptimerande syfte är det därför bättre att lägga sökningen före filtreringen. Diskontinuitetsutjämningen måste komma efter filtreringen eftersom filtreringen (om hela fonem ersätts se Fonemfiltrering nedan) orsakar nya diskontinuiteter som måste utjämnas. Slutligen är töjningen/komprimeringen av praktiska skäl förlagd till efter diskontinuitetsutjämningen. En töjning av ett talsegment orsakar ju även en förskjutning av diskontinuitspunkterna vilket kan bortses ifrån om dessa redan är utjämnade. Sökning Givet en fonemsträng är det sökalgoritmens uppgift att välja den sekvens av segment ur databasen som bäst matchar strängen. För att kunna göra en kvantitativ mätning på hur väl en viss segmentsekvens matchar infördes begreppen målkostnad och sammanbindningskostnad [3]. Målkostnaden för ett segment givet en del av en fonemsträng är ett mått på hur väl segmentet matchar strängen. Sammanbindingskostnaden för två segment är ett mått på hur väl segmenten matchar varandra. Viterbialgoritmen [4] användes för att finna den sekvens av segment som minimerar totala kostnaden givet en fonemsträng. Att finna riktiga mål- och sammanbindningskostnader är ett digert arbete som dessutom låg utanför det här arbetets ramar. Därför gjordes följande förenklingar: I experimentsystemet sattes målkostnaden genomgående till 0 eller 1 för alla möjliga par av segment och fonemsträngar, dvs antingen matchar segmentet eller så matchar det inte. Sammanbindningskostnaden för alla par av segment sattes genomgående till 0, dvs alla segment matchar varandra lika bra. Filtrering Det är möjligt att den funna segmentsekvensen kan fås att matcha den givna fonemsträngen bättre om parametervärdena filtreras. Tre varianter av filtering prövades. 1) Lågpassfiltering ([5] sid ). WAVES har en tendens att generera väldigt ojämna parameterkurvor. En lågpassfiltering jämnar ut och kan kanske förhöja resultatet. Lågpassfiltrering användes dock inte i lyssningstestet. 13

14 2) Nivåkontroll. WAVES genererar ibland orimliga värden för parametrarna. En nivåkontroll ser till att värdena ligger på en rimlig nivå. Kontrollen som användes i sytemet fungerade på följande sätt: För varje parameter som skulle filtreras angavs en övre och undra gräns. Då en sekvens av parametervärden befanns ligga utanför givna gränser ersattes sekvensen av en rät linje mellan närmast intilliggande värden innanför gränserna, se Figur 6. Frekvens Övre gräns Orimligt värde Undre gräns Interpolerat värde Interpolerade värden Orimliga värden Figur 6. Nivåkontroll genom linjärinterpolering. De runda ringarna är sampel av parameterkurvan. Tid Notera att figuren ovan visar en tänkt parameterkurva som den representeras i datorn, dvs som en samplad version av den kontinuerliga kurvan. 3) Fonemfiltrering. En del fonem är särskilt svåra att extrahera parameterar ur på automatisk väg. Därför prövades en filtering där parameterkurvorna för vissa fonem ersätts med kurvor genererade från RULSYS. Fonemfiltrering orsakar diskontinuiteter i båda ändpunkterna av det ersättande fonemet. Diskontinuitetsutjämning Då de filtrerade segmenten binds samman måste diskontinuiteter i parameterkurvorna utjämnas. Diskontinuiteter ger upphov till klickande missljud i GLOVE och uppstår dels i gränserna mellan två segment, dels i gränserna för de fonem som ersätts under fonemfiltreringen ovan. Här användes genomgående linjärinterpolering över diskontinuiteter i parameterkurvorna enligt Figur 7. q i fig sattes genomgående till 25%. 14

15 Frekvens fonemgräns fonemgräns fonemgräns h/2 h T q x T Tid Figur 7. Diskontinuitetsutjämning genom linjärinterpolation. Töjning/komprimering Fonemsträngen som är en input till konkatineringsmodulen enligt fig 2 ovan ger även information om hur långt varje fonem skall vara. Om fonemen i den sammanbundna fonemsträngen inte har rätt längd måste de sträckas/komprimeras. Här prövades enbart att sträcka/komprimera linjärt, se Figur 8. Detta är en grov förenkling av hur tal töjs i verkligheten, dvs när man talar långsammare/fortare. På grund av fysikaliska faktorer är vissa delar av fonem mindre töjbara än andra. En klusil t ex består av två faser. Under den första fasen, ocklusionsfasen, byggs ett övertryck upp i munhålan. Under den andra fasen, explosionsfasen, sänks trycket genom att luften släpps ut ur munhålan. Medan ocklusionsfasen kan göras godtyckligt kort (och åtminstone så lång som man orkar hålla andan) är längden av explosionsfasen betydligt mer fix. En klusil är följaktligen ett exempel på ett fonem som töjs på ett utpräglat olinjärt sätt i naturligt tal. 15

16 Frekvens T T/2 T/2 Tid T/3 T/3 T/3 Frekvens Tid Figur 8. Linjär töjning från tre sampel till fyra sampel. Den övre grafen visar den samplade parameterkurvan innan töjning, den nedre visar kurvan efter töjning. Förutsättningar vid lyssningstestet Syftet med lyssningstestet var att avgöra huruvida tal producerat av systemet för datadriven formantsyntes uppfattas som tydligare och/eller mer naturligt än tal producerat av TTS-systemet. Inför testet syntetiserades fem meningar: 1) Erfarenhet är det namn alla ger sina misstag. 2) Kräftor kräva dessa drycker. 3) Utan tvivel är man inte riktigt klok. 4) Den oskicklige smeden klandrar järnet. 5) Avundsamma ögon blir aldrig mätta. Varje mening syntetiserades på fem olika sätt: 1) Med TTS-systemet, dvs med traditionell formantsyntes. 2) Med systemet för datadriven formantsyntes. Som datakälla användes RULSYS, dvs data var regelgenererat. Ingen parameterfiltrering användes. 16

17 3) Med systemet för datadriven formantsyntes. Som datakälla användes Ingmar i MBROLA. Parametrarna dvs första till och med fjärde formanten extraherades på automatiskt mha WAVES. Alla konsonanter filtrerades. 4) Med systemet för datadriven formantsyntes. Som datakälla användes Ingmar i MBROLA. Parametrarna dvs första till och med fjärde formanten extraherades på manuellt mha WAVESURFERs grafiska gränssnitt. Ingen parameterfiltrering användes. 5) Med systemet för datadriven formantsyntes. Som datakälla användes Ingmar i MBROLA. Parametrarna dvs första till och med fjärde formanten extraherades på manuellt mha WAVESURFERs grafiska gränssnitt. Alla konsonanter filtrerades. Då formantfrekvenserna handmättes gjordes detta på ett sådant sätt att kännedom om vilken mening difonerna var ämnade att ingå i ej kunde utnyttjas för att förbättra resultatet. I testet användes en grupp om 13 försökspersoner. Som försökspersoner användes både examensarbetare vid TMH-instutionen samt icke teknologer. Ingen hänsyn togs till särskilda förmågor/egenskaper hos försökspersonerna såsom kön, ålder etc. Vidare hade ingen av försökspersonerna någon insikt i hur syntetiseringen av meningarna gått till. Lyssningstestet genomfördes med varje person individuellt och gick till på följande sätt: De fem olika syntetiseringarna av den första meningen kopplades till varsin knapp på en datorskärm. Genom att själv trycka på knapparna fick försökspersonen lyssna på syntetiseringarna. Personen hade möjlighet att lyssna på syntetiseringarna hur många gånger som helst och i vilken ordning som helst. Därefter fick personen gradera de fem syntetiseringarna sinsemellan efter tydlighet. Proceduren upprepades för de kvarvarande fyra meningarna och ytterligare en gång för alla fem meningarna. Varje gång en ny mening skulle bedömas kopplades de fem syntetiseringarna i en ny, slumpvis utvald ordning till knapparna på skärmen. Därefter upprepades hela försöket, nu med bedömning av naturlighet istället för av tydlighet och med meningarna i en ny, slumpvis utvald ordningsföljd. Hälften av personerna startade med att bedöma tydlighet och hälften startade med att bedöma naturlighet. De fyra första försökspersonerna graderade konsekvent och utan undantag syntesmetod 3 ovan som minst tydlig och minst naturlig. Detta resultat ansågs vara tillräckligt för att generellt gradera syntesmetod 3 som minst tydlig och minst naturlig. Försöksperson 5-13 bedömde därför bara syntesmetod 1,2,4 och 5 ovan. I sammanställning över resultaten nedan har alla försökspersoner behandlats som en homogen grupp - trots denna skillnad i själva försöket. Detta är naturligtvis inte helt statistiskt stringent. Vid en närmare studie visade sig resultaten från de två grupperna av försökspersoner skilja sig tämligen lite åt, vilket försvarar detta förfarande. Alla försökspersoner instruerades skriftligen (se Appendix 4). Resultat Tabell 1 nedan visar hur försökspersonerna graderade syntesmetoderna 1,2,4,5 ovan i förhållande till varandra efter kriteriet tydlighet. I tabellens fält visas hur stor del av försökspersonerna i procent som föredrog metoden på den vertikala axeln framför metoden på den horisontella. T ex ansåg 56% av försökspersonerna att syntesmetod 2 genererade tydligare tal än metod 4. I tabellen är ett genomsnitt framräknat över alla 17

18 försökspersoner och över alla de fem meningar som användes i lyssningstestet. Tabell 2-6 visar resultatet separat för varje mening, fortfarande för alla försökspersoner gemensamt x x x x Tabell 1: Tydlighet, alla försökspersoner, alla meningar x x x x Tabell 2: Tydlighet, alla försökspersoner, Erfarenhet är det namn alla ger sina misstag x x x x Tabell 3: Tydlighet, alla försökspersoner, Kräftor kräva dessa drycker x x x x Tabell 4: Tydlighet, alla försökspersoner, Utan tvivel är man inte riktigt klok. 18

19 x x x x Tabell 5: Tydlighet, alla försökspersoner, Den oskicklige smeden klandrar järnet x x x x Tabell 6: Tydlighet, alla försökspersoner, Avundsamma ögon blir aldrig mätta. Som synes skiljer sig mening 3 ovan väsentligt från de andra i fråga om hur försökspersonerna uppfattar de två handmätta versionerna (metod 4 och 5) gentemot de två regelgenererade (metod 1 och 2). Medan i genomsnitt (alla meningar) 52% av försökspersonerna uppfattar tal genererat av metod 5 som mer tydligt än tal genererat av metod 1 är motsvarande siffra bara 19% för mening 3 specifikt. För metod 4 versus metod 1 är motsvarande siffror 33% (alla meningar) respektive 15% (mening 3 specifikt). Detta förhållande kan bero på åtminstone två saker. Antingen är mening 3 särskilt svårsyntetiserad med de metoder som använts här, och isåfall är ju resultaten ovan helt rättvisande - svårsyntetiserade meningar får man räkna med. Eller så har syntetiseringen av andra skäl blivit ovanligt misslyckad, t ex kan handmätningen av formantfrekvenserna ha gjorts mindre noggrant än för de övre meningarna. Och isåfall bör kanske mening 3 uteslutas från testet. Tabell 7 visar detsamma som Tabell 1 med undantag av att mening 3 ej har använts vid beräkning av värdena x x x x Tabell 7: Tydlighet, alla försökspersoner, alla meningar utom mening 3. 19

20 Tabell 8-13 visar detsamma som tabell 1-6, nu med meningarna graderade efter naturlighet x x x x Tabell 8: Naturlighet, alla försökspersoner, alla meningar x x x x Tabell 9: Naturlighet, alla försökspersoner, Erfarenhet är det namn alla ger sina misstag x x x x Tabell 10: Naturlighet, alla försökspersoner, Kräftor kräva dessa drycker x x x x Tabell 11: Naturlighet, alla försökspersoner, Utan tvivel är man inte riktigt klok. 20

21 x x x x Tabell 12: Naturlighet, alla försökspersoner, Den oskicklige smeden klandrar järnet x x x x Tabell 13: Naturlighet, alla försökspersoner, Avundsamma ögon blir aldrig mätta. Tabell 11 visar att de två handmätta versionerna av mening 3 även uppfattas som anmärkningsvärt mindre naturliga än genomsnittsmeningen relativt regelsyntesen. I Tabell 14 visas detsamma som i tabell 8 med undantag av att mening 3 ej har använts vid beräkning av värdena x x x x Tabell 14: Naturlighet, alla försökspersoner, alla meningar utom mening 3. Hur bör man nu ställa sig till mening 3, Utan tvivel är man inte riktigt klok?. Är den särskilt svårsyntetiserad eller är de två händmätta versionerna olycksfall i arbetet? För det första är det inte självklart att en mening som av olika anledningar är svårsyntetiserad blir sämre om de ingående parametrarna handmäts än om de genereras av regler. Även regelsyntesen torde ju få svårare att genererera bra parameterar för en svårsyntetiserad mening. Försökspersonerna blev visserligen inte ombedda att sätta betyg på meningarna efter en absolut skala, vilket gör att vi inte kan bedöma hur väl de olika syntesmetoderna lyckades med mening 3 jämfört med andra meningar. Men gör vi det inte orimliga antagandet att regelsyntesen genererar sämre parametrar för en svårsyntetiserad mening, tyder det avvikande resultaten av mening 3 på att handmätningen av parametrarna gick sämre än vad som motiveras av att meningen eventuellt är svårsyntetiserad. Man kan 21

22 studera spektrogrammet för mening 3 för att försöka få en uppfattning om vad som gick snett. I Figur 9 visas spektrogrammet för mening 3 syntetiserad enligt metod 1, dvs regelsyntes. Figur 10 visar dito enligt metod 5, dvs händmätta vokaler och regelgenererade konsonanter. Två av de försökspersoner som varit kritiska mot de handmätta versionerna av mening 3 har kommenterat ordet klok. En person skrev: 3&1 (metod 1 och 2, min anmärkning) låter naturligare i slutet, spec. klok. Den andre skrev: Hemskt vibrato på klok. Studerar man spektrogrammet i figur 10 ser man mycket riktigt att första formanten i vokalen i ordet klok genomgår en märklig vågrörelse. Mycket pekar således på att mening 3 ej bör användas som statistiskt underlag i testresultatet. Figur 9. Spektrogram för meningen Utan tvivel är man inte riktigt klok, syntetiserad mha regelsyntes. Figur10. Spektrogram för meningen Utan tvivel är man inte riktigt klok, handmätta vokaler, regelgenererade konsonanter. Slutsats Den mest självklara slutsatsen att dra från resultaten ovan är att syntesmetoden där formantfrekvenserna mätts upp automatiskt (metod 3) inte blev särskilt lyckad. De försökspersoner som fick bedöma denna syntesmetod kategoriserade den utan undantag som sämre enligt givna kriterier än de andra fyra metoderna. Vidare kan konstateras att 22

23 försökspersonerna definitivt kunde höra skillnad på den rena regelsyntesen (metod 1) och den datadrivna formantsyntesen med regelgenererade parametervärden (metod 2). Tabell 1,7,8 och 14 visar att andelen personer som föredrar metod 1 framför metod 2 är ca tre av fyra, oavett om mening 3 användes som statistiskt underlag eller ej. Osäkrare är om försökspersonerna kunde höra skillnad på de meningarna i vilka alla fonem var handmätta (metod 4) och de i vilka vokalerna var handmätta och konsonanterna regelgenererade (metod 5). Tabell 1 och 7 visar att ungefär 60% tyckte att metod 5 genererade tydligare tal än metod 4, tabell 8 och 14 visar att i fråga om naturlighet gick metoderna på ett ut. En jämförelse mellan de två metoderna med handmätta formantfrekvenser och regelsyntesen kan göras: Tabell 1 visar att hälften av försökspersonerna ansåg att metoden med handmätta vokaler och regelgenererade konsonanter producerade tydligare tal än regelsyntesen. Handmättes alla fonem sjönk siffran till en tredjedel. Uteslöts mening 3 ur statistiken (se Tabell 7) steg motsvarande siffror till 60% respektive 38%. Statistiken ger alltså inget entydigt stöd för att metod 5 genererar tydligare tal än regelsyntesen men definitvt inte heller för motsatsen. Om även formantfrekvenserna för konsonanterna mäts för hand verkar det dock som att man går miste om en del av tydligheten i talet jämfört med regelsyntesen. Då försökspersonerna bedömde naturlighet var det 67% som föredrog metoden med handmätta vokaler och regelgenererade konsonanter framför regelsyntesen (se Tabell 8). Handmättes alla fonem sjönk siffran till en 62%. Uteslöts mening 3 (se Tabell 14) steg motsvarande siffror till 73% respektive 68%. Det torde därmed vara säkerställt att en klar majoritet av försökspersonerna ansåg att både metod 4 och metod 5 producerade naturligare tal än regelsyntesen. Testresultaten visade att prestandan för ett system för datadriven formantsyntes i hög grad är beroende av var data kommer ifrån och hur data har extraherats. Trots att WAVES är ett avancerat program lyckades det inte extrahera parametrarna tillräckligt bra för att resultatet skulle kunna användas i ett system för datadriven formantsyntes. Handmättes parametrarna däremot uppfattades resultatet av en majoritet som mer naturligt än traditionell formantsyntes. Det verkar dock som man förlorade i tydlighet det man vann i naturlighet. Låter man konsonanterna regelgenereras och handmäter vokalerna uppnår man bäst resultat, en klar majoritet uppfattar talet som naturligare än regelgenererat tal och tydligheten blir definitivt inte mindre än för reglegenererat (om än inte heller större). Är systemet som konstruerats i enlighet med den ursprungliga specifikationen? Eftersom arbetet syftade till att ge en indikation på möjligheterna (och begränsningarna) med datadriven formantsyntes kan systemet förutsatt att det är någorlunda välkonstruerat - sägas vara i enlighet med specifikationen, oavsett testresultaten. Vid bedömningen av möjligheterna med datadriven formantsyntes utifrån resultaten ovan bör tas hänsyn till följande aspekt: handmätningen av paramterarna för metod 4 och 5 skedde vid ett enstaka tillfälle utan efterjustering och utan någon större fonetisk kunskap. Förmodligen kan bättre resultat uppnås om de uppmätta parametervärdena justeras, t ex efter utvärdering 23

24 av en testlyssnargrupp. Vid handmätningen av formantfrekvenserna i experimentsystemet har ju egentligen ingen hänsyn tagits till hur systemet (främst källa- filterbanken) behandlar parametrarna. I värsta fall skulle man ju kunna tänka sig att de optimala formantfrekvenserna i systemet inte är de fysikaliskt riktiga (de som mäts för hand i spektrogram) utan några som ligger lite vid sidan av. Ett problem som kan lösas om parameterarna efterjusteras i enlighet med vad som låter bäst. Vidare borde en fonetiker kunna använda sin yrkeskunskap för att uppnå bättre resultat vid handmätningen än en icke-fonetiker. Utan fonetisk kunskap är man vid handmätning nödgad att följa mycket generella regler, som t ex att mäta där energin är som högst i spektrogramet vilket inte nödvändigtvis är synonymt med en formantfrekvens. Således kan det konstruerade systemet förväntas uppnå bättre prestanda utan alltför avancerade ingrepp. Ytterligare förslag på förbättringar är: 1) Skapa en komplett databas, dvs en databas som innehåller alla fonem. Visserligen är den som skapats mha WAVES komplett men den är av för låg kvalitet. Handmätningen av de första fyra formanterna i de100-talet difoner som ingick i arbetet tog inte längre tid än uppskattningsvis en eftermiddag. Att bygga upp en komplett databas av handmätta units avsedda att använda i systemet är därför inte ogörligt. Dessutom skulle man kunna utvidga databasen till att innehålla ett antal segment längre än difoner, t ex de vanligaste funktionsorden och ordändelserna. Ytterligare en förbättring av databasen skulle kunna vara att införa allofoner, dvs olika realiseringar av ett och samma fonem. 2) I takt med att databasen växer måste sökalgoritmen optimeras. Dessutom måste målkostnad och sammanbindningskostnad (se sid 13) definieras för varje segment/par av segment då allofoner införs i databasen. 3) Förfinade algoritmer för töjning/komprimering och diskontinuitetsutjämning. Både töjning/komprimering och diskontinuitetsutjämning sker linjärt i systemet. Med lingvistisk kunskap borde båda algoritmerna kunna konstrueras bättre. Förmodligen måste algoritmerna konstrueras så att de tar hänsyn till vilket/vilka fonem som skall behandlas, talhastighet etc. 24

25 Referenser [1] Thierry D. An introduction to text-to-speech synthesis, Kluwer Academic Publishers, [2] Klatt Dennis H. Review of text-to-speech conversion for English, Acoustical Society of America, [3] Hunt Andrew J. och Black Alan W. Unit selection in a concatinative speech synthesis system using a large speech database, IEEE [4] Rabiner L.R. och Juang B.H. An introduction to Hidden Markov Models, IEEE [5] Oppenheim Alan V. och Willsky Alan S. Signals and systems, Prentice-Hall, Inc [6] Lippman Stanley B. och Lajoie J. C++ primer, AT&T, Objectwrite, Inc [7] Carlson, R., Granström, B., and Hunnicutt, S. (1982): "A multi-language text-to-speech module," Proc. ICASSP-Paris, Paris, Vol. 3, pp [8] Carlson, R. Granström, B., and Karlsson, I.(1990): "Experiments with voice modeling in speech synthesis," Proc. of ESCA workshop on Speaker Characterization in Speech Technology, June 1990, Edinburgh, also Speech Communication 10, pp [9] 25

26 26

27 Appendix 1 Manual All programkod är skriven i C++ [6] och den här kortfattade manualen vänder sig i första hand till de som är någorlunda bekanta med det programmeringspråket. Programmet är varken särskilt komplicerat eller objektorienterat, det utgörs till stor del av en funktioner som manipulerar textfiler i olika format. Manualen består främst av exempel på hur programmet används, i vilken ordning och på vilket sätt funktionerna skall anropas för att uppnå önskat resultat. Manualen följer i stort sett upplägget från Utförande. De bägge modulerna behandlas var och en för sig nedan. Övergripande struktur Alla de funktioner som programmet består av finns deklarerade i sex stycken headerfiler. I data_base.h ligger de flesta av de funktioner som tillhör databasen och i segment_connector.h ligger de flesta av de som tillhör konkatineringsmodulen. Ett segment av parametriserat tal representeras internt i konkatineringsmodulen av C++ objektet segment. Objektet segment är deklarerat i segment.h. I seg_file_functions.h ligger funktioner som parsar.seg-filer och.feat-filer. I parameter_lists.h ligger funktioner som returnerar vektorer innehållande alla RULSYS parametrar och i misc.h ligger diverse bra-att-ha-funktioner. Avsikten har varit att försöka att hålla koden konsekvent och väldokumenterad så att den i största möjliga mån skall kunna tala för sig själv. Databasen Databasen består av två delar. Den ena delen är en eller flera filer som innehåller de lagrade units som ingår i databasen. Den/dessa filer skall ha formatet.seg. Den andra delen är motsvarande antal filer som innehåller features för de lagrade units. Den/dessa filer skall ha formatet.feat. Med features avses egenskaper för de units som är lagrade. Dessa egenskaper kan väljas godtyckligt men i systemet har unitlängd (i frames räknad), lable och kontext använts (se Definitioner ). Databasfilerna (.seg och.feat) är namngivna efter följande system. Först en förkortning som anger vilken segmenttyp filen innehåller. Hittills finns typer: VV vokal-vokal VC vokal-konsonant CC konsonant-konsonant CV konsonant-vokal V_initial meningsinledande vokal V_final meningsavslutande vokal C_initial meningsinledande konsonant C_final meningsavslutande konsonant Därefter följer en förkortning som anger datakälla / hur data extraherats. Hittills har använts: WAVES datakälla MBROLA, automatisk extrahering med WAVES. WSRF datakälla MBROLA, manuell extraheriing med WAVESURFERS grafiska gränssnitt. 27

28 Den fil som t ex innehåller difoner av typen vokal-konsonant och som extraherats mha WAVES ur MBROLA heter alltså: VC_WAVES.seg. Och till den finns en: VC_WAVES.feat. Notera att när RULSYS använts som datakälla har information om detta utlämnats I filnamnet. Den fil som innehåller difoner av typen vokal-konsonant och som tillkommit med RULSYS som datakälla heter alltså CV.seg. Att skapa en databas Nedan följer tre exempel på hur en databas kan skapas. Det första beskriver hur man skapar en databas bestående av difoner där datakällan är RULSYS. Det andra beskriver hur man skapar en databas av difoner där datakällan är Ingmar i MBROLA och parameterkurvorna är automatiskt extraherade mha WAVES. I det tredje är datakällan och segmenteringen samma som i exempel 2, men parameterkurvorna är manuellt extraherade mha WAVESURFER. Exempel 1: 1) Låt filen vowels innehålla alla vokalfonem separerade av \n. Kör följande C++ komandon: vector<string> fonem=read_file("vowels"); vector<string> diphones=seg_con.string_combine(fonem, fonem); string prefix="#h"; string suffix="be0t#"; vector<string> diphones_centence=string_connector(prefix, diphones, suffix); write_file(diphone_centence, "temp"); Funktionerna är deklarerade i filen misc.h. 2) Nu ser filen temp ut så här: HA:A:B0ET HA:AB0ET HA:E:B0ET HA:EB0ET HA:0EB0ET osv Kör scriptet x_rulsys med innehållet i temp som argument. Scriptet analyserar och parameteriserar sina argument mha RULSYS. Resultatet skrivs tillbaka till temp. Notera att temp nu är en sammansättning av flera.seg filer en för varje yttrande inom citationstecken ovan. 3) Gör om temp till.seg format genom att anropa funktionen head_remove("temp"); som tar bort alla filhuvuden utom det översta. Funktionen är deklarerad i filen misc.h. 28

29 4) Extrahera önskade difoner ur mha funktionen vector<string> missing=diphone_extract(diphones, "temp"); missing innehåller nu alla difoner i diphones som ej påträffades i filen temp. Funktionen är deklarerad i filen data_base.h. 5) Nu innehåller temp parameterkurvorna för alla RULSYS parametrar för alla diphoner på formen vokal-vokal. Temp är av formatet.seg. Lämpligen kan man kopiera temp till en fil med namnet VV.seg. Kvar återstår bara att konstruera en tillhörande feature fil. Detta görs mha funktionen write_features("vv.seg", "VV.feat, prefix, suffix); Funktionen är deklarerad i filen data_base.h. 6) Upprepa förfarandet 1) 5) för resterande difoner, dvs vokal-konsonant, kons.-vok., kons.-kons., samt inledande vokaler och konsonanter och avslutande dito. I punkt 1) får man naturligtvis använda sig av en fil som heter consonants och innehåller alla konsonanter separerade med \n om konsonant i önskade difoner. Man kan även bli tvungen att ändra suffix och prefix för att sätta önskade difoner i ett lämpligt sammanhang i artikulatorisk mening. Exempel 2: 1) Filen export.mbr innehåller information om difonerna i MBROLA databasen. Som synes innehåller rawfilerna d1959.raw d1983.raw difoner av typen inledande konsonanter. Scriptet x_waves med input analyserar filerna d1959.raw - d1983.raw, extraherar parametrarna F1, F2, F3, F4, FH och skriver resultatet till ALL.fmt. Notera att scriptet förutsätter att modulen esps är laddad. 2) Följande funktioner skapar ett segment av värdena i ALL.fmt och skriver resultatet till filen C_WAVE_initial.seg. vector<int> limits; limits.push_back(1959); limits.push_back(1984); vector<string> lables=get_lables_mbrola("export.mbr", limits); vector< vector<int> > par_val=get_parameter_values_wave("all.fmt", "export.mbr", limits); vector<string> par_names; par_names.push_back("f1"); par_names.push_back("f2"); par_names.push_back("f3"); par_names.push_back("f4"); 29

30 par_names.push_back("fh"); vector<int> features_int; vector<string> features_string; vector<int> cuts; segment seg(lables, par_val, par_names, features_int, features_string, cuts); write_seg_file(seg, "C_WAVE_initial.seg"); Funktionerna ovan är deklarerade I data_base.h, utom write_seg_file som är deklarerad i segment_connector.h, och objektet segment som är deklarerat i segment.h. 3) Kvar återstår att skapa en tillhörande feature fil. Detta görs med funktionerna string prefix="##"; string suffix="##"; vector<int> durations=get_durations_mbrola("export.mbr", 1959, 1984); write_features("c_wave_initial.seg", "C_WAVE_initial.feat", "##", "##", durations); Notera att suffix och prefix för difonerna I MBROLA är okända. Notera även att funktionen write_features av programeringstekniska skäl kräver fonemdurationerna som en input för difoner bestående av meningsinledande fonem. 4) Upprepa förfarandet 1) 3) för resterande difoner. Exempel 3: 1) Skapa en.fmt fil för den difon som skall analyseras enligt steg 1) i exempel 2 ovan. Vi antar att difonen BI skall analyseras, vilken ligger i filen d1.raw. 2) Skapa en.wsrf fil mha av.fmt filen från 1): fmt_to_wsrf("bi.fmt", "BI.wsrf"); Funktionen är deklarerad i data_base.h. 3) Öppna WAVESURFER. 4) Öppna den.raw fil som innehåller den difon som skall analyseras. 5) Öppna en data plot genom att högerklicka och välja Create Pane i menyn som kommer upp. 6) Öppna.wsrf filen från 2) genom att högerklicka och välja Open Plot File. 30

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

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

Rapport från Praktik på SVOX AG 2008 05 14 till 2008 09 01

Rapport från Praktik på SVOX AG 2008 05 14 till 2008 09 01 Rapport från Praktik på SVOX AG 2008 05 14 till 2008 09 01 Om SVOX AG Jag gjorde min praktik på företaget SVOX AG, ett företag som bygger och sysslar med TTSmotorer. Företaget bildades våren 2000 och har

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

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

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

Handbok Nepomuk-WebMiner. Jörg Ehrichs Översättare: Stefan Asserhäll

Handbok Nepomuk-WebMiner. Jörg Ehrichs Översättare: Stefan Asserhäll Jörg Ehrichs Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Integrering med Dolphin 6 3 Dialogruta för extrahering 7 4 Tjänst 8 5 Inställningar 9 5.1 Hämtare...........................................

Läs mer

Formantextraktion för datadriven formantsyntes

Formantextraktion för datadriven formantsyntes Formantextraktion för datadriven formantsyntes David Öhlin Handledare: Rolf Carlson Godkänt: 2004-01-19 Examinator: Rolf Carlson Centrum för talteknologi......................... (signatur) Examensarbete

Läs mer

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

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde

Läs mer

Onlinetester Del 2 Frågebanker, frågeuppsättningar och slumpvisa block

Onlinetester Del 2 Frågebanker, frågeuppsättningar och slumpvisa block Marie Andersson, IKT-centrum E-post: iktcentrum@mdh.se 2012-06-12 (Bb Learn 9.1.8) Onlinetester Del 2 Frågebanker, frågeuppsättningar och slumpvisa block Innehåll Frågebanker... 1 Kategorisera frågor...

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \

Läs mer

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER. MATEMATISKA INSTITUTIONEN Tillämpad statistisk analys, GN STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB 2011-03-24 DATORLABORATION 1: TIDSSERIER. I Tarfala har man under en lång följd av

Läs mer

Rev 2. Manual för handterminal

Rev 2. Manual för handterminal Rev 2. Manual för handterminal Förord Tack för visat förtroende för våran produkt. Handterminalen ansluts till ledig USB port. Anslut aldrig via hub eller annan delad anslutning pga terminalen behöver

Läs mer

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim   Sorteringsalgoritmer Objektorienterad programmering Föreläsning 10 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Fält fort. Fält som parametrar Parameterfält params Parametrar till Main Listor ArrayList

Läs mer

Text-till-Talsyntes (TTS3)

Text-till-Talsyntes (TTS3) Dagens lektion: Text-till-Talsyntes (TTS3) Rebecca Jonson TalTeknologikursen VT 2005 Talsyntes Forts. Konkateneringssyntes Återsyntes LPC, PSOLA, MBROLA Jämförelse syntesmetoder Artik, Formant, Konkat

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor 1 Laboration 5 - Introduktion Syfte: Öva på självständig

Läs mer

Histogram över kanter i bilder

Histogram över kanter i bilder Histogram över kanter i bilder Metod Både den svartvita kanstdetekteringen och detekteringen av färgkanter följer samma metod. Först görs en sobelfiltrering i både vertikal och horisontell led. De pixlar

Läs mer

Mälardalens högskola

Mälardalens högskola Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med

Läs mer

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

Tor Sigvardson. Handledare: Rolf Carlson. Godkänt den 11 december 2002 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)

Läs mer

Ljudinteraktion. Kirsten Rassmus-Gröhn, Avd. för Rehabiliteringsteknik, Inst. för Designvetenskaper

Ljudinteraktion. Kirsten Rassmus-Gröhn, Avd. för Rehabiliteringsteknik, Inst. för Designvetenskaper Ljudinteraktion Innehåll och mål Om ljudinteraktion Lite om virtuellt 3D-ljud Tips och trix Mål: att ni ska få verktyg att resonera om ljudinteraktion, samt få lite exempel Vad är ljud? Ljud är kombinationen

Läs mer

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

Läs mer

Resultat och bedömning tips för lärare

Resultat och bedömning tips för lärare Resultat och bedömning tips för lärare Denna manual gör nedslag i olika delar av Kursadministration och resultat i Learn och ger exempel på inställningar och förändringar som kan förenkla arbetet för läraren

Läs mer

Dagens föreläsning (F15)

Dagens föreläsning (F15) Dagens föreläsning (F15) Problemlösning med datorer Carl-Mikael Zetterling bellman@kth.se KP2+EKM http://www.ict.kth.se/courses/2b1116/ 1 Innehåll Programmering i Matlab kap 5 EKM Mer om labben bla Deluppgift

Läs mer

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Föreläsning 12 Våren 2005 Innehåll Palindrom Hur man hittar fel i program, debuggning Felhantering, hur man förhindrar program att krascha Ev.

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning

Läs mer

Möjligt med språk utan fonologisk struktur, bara morfem med viss vokalisering?

Möjligt med språk utan fonologisk struktur, bara morfem med viss vokalisering? Kap 2: Typologi Möjligt med språk utan fonologisk struktur, bara morfem med viss vokalisering? Orden skulle bli mycket långa för att varje morfem skulle ha sin egen vokalisering, eftersom det behövs så

Läs mer

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Model View Controller Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Model View Controller Model View Controller (MVC) är ett design pattern (architectural pattern) som är väldigt

Läs mer

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet... Abstract Syftet var att konstruera en väder station som håller koll på temperaturen. Huvudfunktionen var att få en grafisk visning av temperaturen över ett visst tidsintervall eftersom vi valde den grafiska

Läs mer

Metoder (funktioner) Murach s: kap Winstrand Development

Metoder (funktioner) Murach s: kap Winstrand Development (funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2 Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer

Läs mer

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller Android enhet. För Android användaren finns möjligheten att öka batteritiden genom att stänga ner resurser som inte används.

Läs mer

Dagens föreläsning Programmering i Lisp Fö 5

Dagens föreläsning Programmering i Lisp Fö 5 Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper

Läs mer

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner Linköping Universitet, Campus Norrköping Inst/ Kurs Termin/år Titel: Undertitel: Författarens namn och e-postadress Framsidans utseende kan variera mellan olika institutioner Handledares namn Sammanfattning

Läs mer

Guide till att använda Audacity för uttalsövningar

Guide till att använda Audacity för uttalsövningar Guide till att använda Audacity för uttalsövningar Victoria Johansson Humlabbet, SOL-center, Lund IT-pedagog@sol.lu.se 28 mars 2006 1 Inledning Audacity är ett program som kan användas för att spela in

Läs mer

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för

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

PubMed (Medline) Fritextsökning

PubMed (Medline) Fritextsökning PubMed (Medline) PubMed är den största medicinska databasen och innehåller idag omkring 19 miljoner referenser till tidskriftsartiklar i ca 5 000 internationella tidskrifter. I vissa fall får man fram

Läs mer

Frågebanker, frågeuppsättningar och slumpvisa block

Frågebanker, frågeuppsättningar och slumpvisa block Frågebanker, frågeuppsättningar och slumpvisa block Innehåll Frågebanker... 1 Skapa frågebank... 1 Importera en frågebank... 3 Lägg till frågor i frågebank... 3 Skapa frågeuppsättning... 3 Skapa slumpvist

Läs mer

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 (grundläggande konstruktioner) Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 2 TID: 4 timmar Ansvarig: Betygsgränser: Hjälpmedel: Jan Skansholm Sammanlagt maximalt

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Bilaga KeyControl Felsökning

Bilaga KeyControl Felsökning Bilaga: Felsökning 1. Allmänt Genom att ge så detaljerad information som möjligt om problemet och de operationer som föregick problemet underlättas supporten. Du viktigaste komponenterna är - Operativsystemet

Läs mer

Word-guide Introduktion

Word-guide Introduktion Word-guide Introduktion På det kognitionsvetenskapliga programmet kommer du läsa kurser inom flera olika vetenskapsområden och för varje vetenskapsområde finns ett speciellt sätt att utforma rapporter.

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Importera och använda en textdatabas i Excel

Importera och använda en textdatabas i Excel Importera och använda en textdatabas i Excel I denna beskrivning tänkte jag visa hur man kan hantera information från en databas, som är sparad som en semikolonseparerad textfil. Textfilen kommer att behandlas

Läs mer

TDDC74 - Projektspecifikation

TDDC74 - Projektspecifikation TDDC74 - Projektspecifikation Projektmedlemmar: Namn Efternamn abcde123@student.liu.se Namn Efternamn abcde123@student.liu.se Handledare: Handledare handledare@ida.liu.se eller handledare@student.liu.se

Läs mer

Manual för ett litet FEM-program i Matlab

Manual för ett litet FEM-program i Matlab KTH HÅLLFASTHETSLÄRA Manual för ett litet FEM-program i Matlab Programmet består av en m-fil med namn SMALL_FE_PROG.m och en hjälp-fil för att plotta resultat som heter PLOT_DEF.m. Input För att köra programmet

Läs mer

Inledning till Wavesurfer av Christine Ericsdotter (Lingvistik, Stockholms universitet)

Inledning till Wavesurfer av Christine Ericsdotter (Lingvistik, Stockholms universitet) Inledning till Wavesurfer av Christine Ericsdotter (Lingvistik, Stockholms universitet) WaveSurfer är ett program för analys av tal utvecklat vid Centrum för talteknologi, Institutionen för tal, musik

Läs mer

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1).

Börja med att kopiera källkoden till din scheme-katalog (som du skapade i Laboration 1). Laboration 3 Grafiska figurer I den här laborationen skall du konstruera ett schemeprogram som kan rita rektanglar, punkter, cirklar, linjer och bilder som består utav en eller flera av nyss nämnda figurer.

Läs mer

Användarhandbok StepStones Recruiters Space

Användarhandbok StepStones Recruiters Space Användarhandbok StepStones Recruiters Space CV-Sökningar I denna del av Recruiters Space kan du söka efter passande kandidater i StepStones CV-databas. Du kan också registrera CV-agenter som automatiskt

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Institutionen för Data- och informationsteknik TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer. Denna tentamen gäller

Läs mer

Komponenter med COM (och COM+/VC++ 7.0)

Komponenter med COM (och COM+/VC++ 7.0) MÄLARDALENS HÖGSKOLA Komponenter med COM (och COM+/VC++ 7.0) Med Visual C++ 7.0 COM-komponent EI0230 Komponentbaserad applikationsutveckling oktober 2003 Om denna sammanfattning Denna sammanfattning innehåller

Läs mer

Nyheter i. Solen ORBIT 6.7

Nyheter i. Solen ORBIT 6.7 2014-02-12 Nyheter i Solen ORBIT 6.7 Cartesia GIS AB Nyheter i konceptet Mobila klienter och e-tjänst Till ORBIT finns nu två mobila klienter (HTML5-appar) tillgängliga. En för allmänheten, ORBIT Felanmälan,

Läs mer

Perception. Intonation och tonhöjd. Intrinsisk F0. Intonation och tonhöjd (ff) Akustiska och perceptoriska drag. Perception av prosodiska drag

Perception. Intonation och tonhöjd. Intrinsisk F0. Intonation och tonhöjd (ff) Akustiska och perceptoriska drag. Perception av prosodiska drag Perception Akustiska och perceptoriska drag Samband mellan akustiska och perceptoriska drag Tyngpunkt på perceptorisk relevanta drag Prosodi Vokaler Konsonanter Perception i största allmänhet Primära akustiska

Läs mer

Använda Python Laboration 1 GruDat, DD1344

Använda Python Laboration 1 GruDat, DD1344 Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Tentamen 9 dec 2014 Tillåtna hjälpmedel: Revised 6 Report on the Algorithmic Language Scheme och Tre olika s.k. Cheat Sheets för Scheme Sex olika s.k. Cheat Sheets för Python Tänk

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) I detta exempel kommer du att lära dig Att skapa en ny presentation från början Att skapa en enkel knapp Att använda händelseinställningar, events

Läs mer

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1. Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Ljud och interaktion. Kirsten Rassmus-Gröhn, Avd. för Rehabiliteringsteknik, Inst. för Designvetenskaper

Ljud och interaktion. Kirsten Rassmus-Gröhn, Avd. för Rehabiliteringsteknik, Inst. för Designvetenskaper Ljud och interaktion Innehåll och mål Om ljud och hörsel Om ljudinteraktion Lite om virtuellt 3D-ljud Tips och trix Mål: att ni ska få verktyg att resonera om ljudinteraktion, samt få lite exempel Ljudet

Läs mer

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query). Arbeta med databas Översikt Arbeta med Entity Data Models. LINQ (Language Integrated Query). Lektion 1: Arbeta med Entity Data Models Introduktion till ADO.NET Entity Framework. Stöd i ADO.NET Entity Framework.

Läs mer

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

+5V. start. Styrsystem. stopp. Tillståndsmaskiner Tillståndsmaskiner Beteendet hos en stor klass av tekniska system kan beskrivas, modelleras, med tillståndsmaskiner. En tillståndsmaskin är en sekvens av tillstånd som beror av händelser och som ger olika

Läs mer

Bildbaskontoret. Bruksanvisning. Handitek. anpassar tekniken till människan BRUX\...\809082 BILDBASKONTORET

Bildbaskontoret. Bruksanvisning. Handitek. anpassar tekniken till människan BRUX\...\809082 BILDBASKONTORET Bildbaskontoret Bruksanvisning Handitek BRUX\...\809082 BILDBASKONTORET anpassar tekniken till människan Innehållsförteckning Introduktion... 3 Datorkrav...3 Om bildbaser... 4 Vad är en bildbas?...4 Varför

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

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data Datahantering i Excel Grundbegrepp I alla typer av databaser finns alltid en tabell där informationen i databasen fysiskt finns lagrad. Tabellen har samma enkla uppbyggnad som en tabell i ordbehandlingsprogrammet

Läs mer

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg Introduktion till kursbyggarverktyg Contento Svenska AB Hornsgatan 103 117 28 Stocholm Table of Contents KAPITEL 1 Introduktion 2 Begrepp

Läs mer

Automatisk textsammanfattning

Automatisk textsammanfattning Språkteknologi 2001-10-14 Nada Kungliga Tekniska högskolan Automatisk textsammanfattning Per Karefelt (d98-pka) Marcus Hjelm (d98-mhj) Sammanfattning (manuell) Denna rapport belyser en del av de problem

Läs mer

Följande program utvecklades av BITTECH. De flesta såldes via Elevdata, Frölunda Data och VetaMer. De finns inte längre till försäljning.

Följande program utvecklades av BITTECH. De flesta såldes via Elevdata, Frölunda Data och VetaMer. De finns inte längre till försäljning. Programvaror utvecklade av BITTECH under åren 1990 till 2004 Följande program utvecklades av BITTECH. De flesta såldes via Elevdata, Frölunda Data och VetaMer. De finns inte längre till försäljning. Meteor

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning

Läs mer

INLEDNING... 2 MÅLSÄTTNING, EXPRIMENTPLATS OCH MÄTUTRUSTNING...

INLEDNING... 2 MÅLSÄTTNING, EXPRIMENTPLATS OCH MÄTUTRUSTNING... Sidan 1 av 7 Innehåll INLEDNING... MÅLSÄTTNING, EXPRIMENTPLATS OCH MÄTUTRUSTNING... TEST LOKALISERING OCH MÅLSÄTTNING... TEORI OCH RESULTAT... TEORI... RESULTAT... 3 UTVÄRDERING... 6 APPENDIX... 6 APPENDIX

Läs mer

EVO DEV. EvodevExcel.GarpReportAddin

EVO DEV. EvodevExcel.GarpReportAddin EVO DEV EvodevExcel.GarpReportAddin Evodev AB web www.evodev.se epost info@evodev.se Telefon 033-4300300 Fax 033-126697 Innehåll Installera programmet 1 Installation 1 Registerinställningar 1 Start av

Läs mer

Nitha Kunskapsbank Manual

Nitha Kunskapsbank Manual Nitha Kunskapsbank Innehållsförteckning Nitha Kunskapsbank...1 1 Inledning och läsanvisning...2 2 Att arbeta i Nitha...3 3 Funktioner i Nitha Kunskapsbank...4 3.1 Startsidan... 4 3.2 Logga in i Nitha kunskapsbank...

Läs mer

Smartair System. TS1000 Version 4.23

Smartair System. TS1000 Version 4.23 Smartair System TS1000 Version 4.23 Denna manual är ett komplement till: 2069-1001 Smartair System Installations och driftsättningsmanual version 4.20A Denna manual beskriver nyheter i Smartair TS1000

Läs mer

CW RefLevel - Användarbeskrivning

CW RefLevel - Användarbeskrivning C/W CadWare CW RefLevel - Användarbeskrivning OBS: Listan under CadWare kan variera mellan olika system. Modul i exemplet här kan saknas i vissa system. Allmänt Rationell hantering av modellfiler i ett

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Inställning av Nepomuk skrivbordssökning. Sebastian Trueg Anne-Marie Mahfouf Översättare: Stefan Asserhäll

Inställning av Nepomuk skrivbordssökning. Sebastian Trueg Anne-Marie Mahfouf Översättare: Stefan Asserhäll Inställning av Nepomuk skrivbordssökning Sebastian Trueg Anne-Marie Mahfouf Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 4 1.1 Grundinställningar..................................... 4 1.2 Indexerar...........................................

Läs mer

Axalon Process Navigator SP Användarhandledning

Axalon Process Navigator SP Användarhandledning Axalon Process Navigator SP Användarhandledning Axalon Process Navigator SP 2013, senast reviderad: den 11 juni 2014 Innehåll Innehåll... 2 Om denna användarhandledning... 3 Syfte... 3 Vem är denna handledning

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Att skriva rapporten för examensarbetet & sammanfattning av IMRAD. Ville Jalkanen TFE, UmU

Att skriva rapporten för examensarbetet & sammanfattning av IMRAD. Ville Jalkanen TFE, UmU Att skriva rapporten för examensarbetet & sammanfattning av IMRAD Ville Jalkanen TFE, UmU 2017-04-20 1 Att skriva och presentera rapporter http://www.teknat.umu.se/digitalassets/50/50357_att_skriva_rapport_umth_klar.pdf

Läs mer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer