Datadriven formantsyntes
|
|
- Maja Samuelsson
- för 5 år sedan
- Visningar:
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 Anders Lundgren Handledare: Jonas Beskow Godkänd:... Examinator:... Rolf Carlson Examensarbete vid institutionen för Tal, Musik
Läs merText-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 merRapport 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 merHandledning 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 merRemoteBud. 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 merInledning. 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 merRegression 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 merHandbok 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 merFormantextraktion 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 merInlä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 merCDC 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 merOnlinetester 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 merPipelining 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 merkl 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 merObjektorienterad 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 merTentamen 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 merObjektorienterad 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 merUppgift 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 merSTOCKHOLMS 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 merRev 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 merObjektorienterad 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 merText-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 merTENTAMEN 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 merTDDC30 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 merHistogram ö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 merMä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 merLaboration 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 merTor 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 merLjudinteraktion. 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 merTDDI16: 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 merResultat 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 merDagens 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 merProgrammeringsteknisk ö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 merTDDC30 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 merMö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 merModel 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 merInnehå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 merMetoder (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 merUniversitetet 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 merF 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 merDagens 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 merTitel: 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 merGuide 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 merJohan 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 merVanliga 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 merPubMed (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 merFrå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 merUppgift 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 merOBJEKTORIENTERAD 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 merFö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 merBilaga 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 merWord-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 merProgrammeringsteknik 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 merFrontPage 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 merAbstrakta 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 merLaboration 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 merImportera 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 merTDDC74 - 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 merManual 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 merInledning 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 merBö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 merAnvä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 merOBJEKTORIENTERAD 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 merKomponenter 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 merNyheter 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 merPerception. 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 merAnvä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 merDatalogi, 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 merTUTORIAL: 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 merFö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 merGran 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 merObjektorienterad 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 merTentamen 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 merLjud 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 merChapter 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 merDagens 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 merArbeta 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
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 merBildbaskontoret. 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 merGrafisk 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 merPROGRAMMERINGSTEKNIK 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 merkl 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 merFä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 merversion 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 merAutomatisk 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 merFö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 merSKOLFS. 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 merINLEDNING... 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 merEVO 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 merNitha 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 merSmartair 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 merCW 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 merJava, 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 merInstä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 merAxalon 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 merNetBeans 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 merAtt 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 merSQLs 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 merMANUAL 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