TTT4185 Taleteknologi Semesteroppgave 2



Like dokumenter
INSTALLASJONSVEILEDNING FOR KALK2010 KALKULASJONSPROGRAM

Læringsmål og pensum. v=nkiu9yen5nc

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Brukermanual for Quizbuilder

Velkomment til å installere BAS21

Installasjonsveiledning. DDS-CAD ByggMester

Installasjonsveiledning Oppgradering av tidligere versjon

Installasjonsdokument

Brukerveiledning for ArkN4

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Installasjonsveiledning DDS-CAD 7.3

Øving 0 - Xcode TDT4102

Kjøre Wordpress på OSX

2. Beskrivelse av installasjon av SQL Server 2005 og hvordan lage databasen som trengs av administrasjonsprogrammet:

Huldt & Lillevik Lønn og Personal - System 4. Oppdatering. Aditro HRM AS

Installasjonsveiledning Visma Avendo Lønn, versjon 7.60 Oktober 2011

Manual for AL500AC og AL100AC

Huldt & Lillevik Lønn 5.0. Oppdatere til ny versjon

Humanware. Trekker Breeze versjon

Brukerveiledning Custodis Backup Basic Epost:

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.5

Manual for å oppgrade TS 1000 fra:

Forord. Brukerveiledning

Installasjonsveiledning Oppgradering av tidligere versjon

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

HJEMMEKONTOR. Del 1 Installasjon på jobb Norsk Helsenett SF

Installasjonsveiledning. DDS-CAD Arkitekt & Konstruksjon 7

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Hvordan installere Java og easyio på Windows

KONVERTERING AV DATA FRA RAPP13.50

Installasjonsveiledning for Ordnett Pluss

Kom i gang med Python

)DVW3ODQ,QVWDOOHULQJ $%% $6 'LYLVMRQ $XWRPDVMRQVSURGXNWHU ΑΒΒ 3RVWERNV 6NLHQ

INF120: Oblig 3. Yngve Mardal Moe

Innhold. Kom i gang med IRiR. 1 Installer R & RStudio. 2 Last ned siste versjon av IRiR-skriptet

Huldt & Lillevik Lønn og Personal - System 4. Oppdatering. Personec AS. Veiledningen er oppdatert pr

Konvertere fra System 4. Innhold

Flytte Lønn 5.0 fra SQL 2000 til SQL 2005 / 2008

IN2110 Obligatorisk innlevering 1a

Dokumentasjon av Git. Vedlegg F

DDS-CAD 7 INSTALLERE PÅ TERMINALSERVER. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Felleskatalogens Nedlastbare CD-rom/web. Installasjonsveiledning Server (Flerbruker) for Windows

Velkommen til Brother's Keeper 6 for Windows!

TAIME DATABASE INSTALLASJONSVEILEDNING

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Installere JBuilder Foundation i Windows XP

Installasjonsveiledning, CGM Vision Installasjonskrav. 1 Innhold. 1 Formål. 2.1 Windows. 2.2 Oracle. 2.3 CGM Vision. Oppgradering v4.7 til v4.

1. Installasjon og lydtilpasning

Opus Dental 7.1 Oppdateringsveiledning

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012

Veiledning for oppdatering av Extensor 05 - versjon 1.16.

Manual for Eagle 100 og Lynx 500

Grafisk løsning av ligninger i GeoGebra

TI -programvare for grafiske enheter og informasjon om lokalisering

TMA4100 Matematikk 1, høst 2013

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx av 8

HJEMMEKONTOR. Del 1 Installasjon på jobb Norsk Helsenett SF

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

BRUKERMANUAL. Telsys Online Backup

IN1020. Obligatorisk oppgave 1. Formål

Installasjon av Nett-TV-meter Trinn for trinn

Installere programvare og alternativer for Polycom RealPresence Group Series og tilbehør

TMA4100 Matematikk 1, høst 2013

Felleskatalogens Nedlastbare CD-rom/web. Installasjonsveiledning Enbruker (PC og bærbar) Windows

PGZ - Hangman Ekspert Python Lærerveiledning

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

1. NetBeans IDE: Lage en enkel mobilapplikasjon

Installere JBuilder Foundation i Mandrake Linux 10.0

Brukerdokumentasjon Promed Online Booking

Innføring i bruk av CGI4VB

Software installasjon og andre ettertanker

Lablink 2.x brukerveiledning

INSTALLASJONSVEILEDNING

DDS-CAD 7 INSTALLERE PÅ TERMINALSERVER. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Kom i gang med programmering i Java

Hvordan setteopp en wordpress site med wampserver. Lokal site på din pc.

Installasjonsveiledning for Ordnett Pluss

Brukerveiledning. Searchdaimon AS phone: Østensjøveien 34 fax:

Bytte til PowerPoint 2010

Installere konverteringsprogrammet. Innholdsfortegnelse

Hvordan laste ned og installere Java på Windowsplattformen

Instruksjoner for installering og fjerning av Windows PostScript- og PCLskriverdrivere

Office Synchronizer. Versjonsinformasjon. Versjon 1.66

Trinnvis veiledning for oppdatering til Windows 8.1

Controller Brukerstøttedatabase Ottar Holstad/Cantor 09.

Installasjonsveiledning Visma Avendo, versjon 5.2

MP3 Manager Software for Sony Network Walkman

Dokumentasjon av Installasjon

Filer i Linux og Bourne-again shell

Hvordan man kobler til printeren, laster ned CardPresso, installerer skrifttypen og får kommet i gang med produktet.

Presentasjon av oblig 2

Maestro Klientadministrasjon

Installasjonsveiledning

Om verktøyet. Installering av MySQL Migration Toolkit. Installer toolkitet. Brukerveiledning til Intelligent Converters MySQL Migration Toolkit

Programvareoppdateringer

Installasjons veiledning for QuickNG SuperService integrasjon

Lær QGIS med OSGIS Academy sitt online QGIS-kurs på norsk. OSGIS Academy online QGIS kursprogram utgave

Velkommen som ny bruker av Uni Økonomi!

Gå til Nedlastninger på menylinjen for Visma Skolelisens og velg Visma Lønn versjon 9.5.

Lisensiering og aktivering av programvare: Rulle ut programvare med Apple Remote Desktop

Transkript:

TTT4185 Taleteknologi Semesteroppgave 2 1 Introduksjon Denne semesteroppgaven er en praktisk øvelse i å lage en siffer-gjenkjenner basert på helordsmodeller ved hjelp av programpakken for talegjenkjenning Hidden Markov Model Toolkit (HTK) og skriptspråket Python. HTK er laget for Unix-baserte operativsystemer, og basiskunnskaper i Unix/Linux vil derfor være nødvendig. Trening og test av gjenkjenneren vil bli basert på talldelen av den norske taledatabasen Speech- Dat. Denne databasen ble tatt opp over telefonlinje med punktprøvingsfrekvens 8 khz. Zip filen semoppg2.zip inneholder eksempler på Python-skripter for egenskapsuttrekning, trening og testing, og kan lastes ned fra fagets hjemmeside. Disse skriptene kan relativt enkelt modifiseres til å lage en vilkårlig gjenkjenner. 2 Læringsmål Målet med oppgaven er å illustrere hvordan en talegjenkjenner designes i praksis og knytte sammen de teoretiske kunnskapene som presenteres i forelesningene til en enkel applikasjon. Det forventes at du tilegner deg basiskunnskaper i Unix og Python og setter deg inn i HTK-funksjonene som brukes for design av gjenkjennere baserte på helordsmodeller. Det forventes videre at du forstår hvordan disse funksjonene henger sammen med teorien. 3 Forberedelse For å kunne gjennomføre semesteroppgaven er det nødvendig å installere HTK og Python (evt. annet skriptspråk) samt sette seg inn i basisfunksjonalitet i HTK og gjøre seg kjent med eksempelskriptene som finnes på hjemmesiden. 1

3.1 HTK 3.1.1 Installasjon HTK kan lastes ned gratis fra http://htk.eng.cam.ac.uk/download.shtml under forutsetning at du registrerer deg og godtar lisensvilkårene. Last ned HTK 3.4 og pakk ut zip filen. Windows Selv om det er mulig å installere HTK i Windows (med Visual Studio), anbefales det å installere Cygwin, som er en emulering av et Linux-basert operativsystem som kan kjøre under Windows, og å installere og bruke HTK i Cygwin. Installer Cygwin fra www.cygwin.com Bruk standard-oppsett med følgende tillegg Få med gcc og g++ (verktøy for kompilering og lenking av C og C++ programmer) Få med Python og Perl Følg installasjonsinstruksen for Unix/Linux/OSX i README-fila som er i rotkatalogen til HTKdistribusjonen, men ved konfigurasjonen, bruk kommandoen:./configure disable-hslab (NB! 2 bindestreker før disable...) Ta kontakt med Torbjørn Svendsen hvis det er problemer. Unix/Linux/OSX Installering av HTK gjøres enkelt ved noen få steg. En beskrivelse av installeringsprosedyren finner du her: http://htk.eng.cam.ac.uk/docs/inst-nix.shtml. Dersom du har OSX, pass på at du har XCode installert (kan lastes ned gratis her: http://developer.apple.com/tools/xcode/, men finnes også på en av installasjonsfilene som hører til OSX). Dersom du får en feilmelding om at enkelte mapper ikke eksisterer, oppretter du disse f.eks med UNIX kommandoen mkdir dirname. 3.1.2 Grunnleggende HTK Du vil ha bruk for HTK-dokumentasjon som kan lastes ned fra hjemmesiden (HTKBook). Kapitlene 1.1-1.5 gir en fin oppsummering av nødvendig teori, mens kapitlene 2.2-2.3 gir en oversikt over programpakken. Beskrivelse av alle programmene i alfabetisk rekkefølge finnes i kapittel 17. Andre deler av boka gir mer detaljert beskrivelse. For eksperimenter med forskjellige typer egenskapsuttrekning er det nyttig å lese kapittler 5.1-5.4 og 5.6-5.9. For eksperimenter med modellstrukturen bør man lese kapittel 7.2, for live gjenkjenning, er kapitler 3.5 og 5.12 nyttige. Det anbefales å gjøre tutorialen som er beskrevet i kapittel 3 i HTK dokumentasjonen. I denne tutorialen beskriver steg for steg hvordan en genererer og tester en talegjenkjenner. Her blir du kjent 2

med metodene som benyttes senere i denne semesteroppgaven. Tutorialen er ikke spesielt vanskelig eller tidkrevende. HTK kjøres fra kommandolinjen og hver metode har et sett med obligatoriske og et sett med valgfrie parametere. De valgfrie parameterene har alltid et minustegn foran seg for å skille dem fra de obligatoriske. Et eksempel på hvordan en kan kjøre en fiktiv HTK-metode HFoo HFoo -T 1 -C config -f 34.3 -a -s minfil fil1 fil2 Alle valgfrie parametere som har stor bokstav har den samme betydningen for alle metoder i HTK. F.eks -T kontrollerer hvor mye output som skal gies og -C leser en spesifisert konfigurasjonsfil(her config). Ellers har denne metoden 3 valgfrie parametre og 2 obligatoriske, fil1 og fil2. 3.1.3 HTK konfigurasjonsfil Konfigurasjonsfilen kan brukes til å skreddersy HTK miljøet etter behov. Filen består av et sett med parameter-verdi par og kan spesifiseres med -C alternativet i de fleste HTK-metodene (se eksempelet over). I denne oppgaven kan parameterene TARGETKIND, NUMCEPS, ENORMALISE og LPCORDER modifiseres for å gjennomføre de ulike deloppgavene. For å finne de rette verdiene for disse parameterene anbefales det å søke i HTK boken. TARGETKIND: Definerer hvilken type egenskapsvektorer som skal benyttes. NUMCEPS: Definerer hvor mange kepstral-koeffisienter som skal benyttes. ENORMALISE: Dersom denne verdien er satt til T (True) så utføres energinormalisering på lydfilene. LPCORDER: Definerer antall LPC koeffisienter. 3.1.4 HTK-metoder benyttet i semesteroppgave 2 En kort beskrivelse av HTK kommandoene som benyttes i semesteroppgaven er gitt under. Dersom du ønsker mer informasjon om de ulike kommandoene se kapittel 17 i HTK boken. HCopy: Metode som kopierer en eller flere datafiler til en output fil i HTK format. HCopy brukes ofte til å konvertere filer til HTK format, segmentere eller koble filer sammen, og for å parametrisere resultatet. HList: Denne metoden lister ut innholdet av alle filer som har et format støttet av HTK. Brukes til å se på innholdet av talefiler og til å bekrefte at konverteringer er blitt korrekt utført. HCompV: Oppdaterer verdiene for varians og middelverdi basert på observasjonssekvensene i treningssettet. 3

HERest: Brukes i trening av HMM modellene. Utfører embedded Baum-Welch re-estimering av HMM parametere ved hjelp av et sett med observasjonssekvenser. HHed: Laster inn et sett med HMM-er og utfører et sett med spesifiserte operasjoner på modellene og lagrer de transformerte HMM modellene. Typiske operasjoner kan være endre antall blandingskomponenter, endre varighetsparametere, endre transisjonsmatriser ol. HParse: Genererer et ordnettverk fra en grammatikkfil. Dette ordnettverket benyttes videre i gjenkjenningen. HVite: Denne metoden er en Viterbi gjenkjenner som matcher en talefil med et nettverk av HMM-er og returnere en transkripsjon. HResults: HTK s analyseverktøy. Leser inn det gjenkjente resultatet og sammenlikner det med den korresponderende korrekte transkripsjonen. Returnerer statistikk for et sett med filer. 3.2 Python Installasjon Siste versjon av Python kan lastes ned gratis fra: http://www.python.org/download/releases/3.1.2. Grunnleggende Python Sett deg inn i de nødvendige Python-kommandoene i eksempelskriptene. Du finner mye informasjon på www.python.org hvor du også kan søke etter kommandoer du er usikker på. Dersom du trenger en grunnleggende innføring i Python finner du en god beginners guide her: http://wiki.python.org/moin/beginnersguide. 3.3 Filer fra fagets hjemmeside Kopier semoppg2.zip fra fagets hjemmeside og pakk den ut (bruk f.eks. unzip semoppg2.zip -d semoppg2). Pakken inneholder: Skriptfiler semoppg2 inneholder tre python skript som utfører egenskapsuttrekking, trening av akustiske modeller og testing av modellene. featureextraction.py : Utfører egenskapsuttrekning av filer spesifisert i fillisten i variablen files. Metoden makefrontendconfig lagrer konfigurasjonsparametere som f.eks hvilken type egenskapsvektorer og hvilken vindustørrelse som skal benyttes i filen config. Dersom det er ønskelig å endre på disse konfigurasjonsparameterene kan disse endres direkte i denne metoden. Denne konfigurasjonsfilen brukes videre i egenskapsutrekkingen som gjøres av HTK-metoden HCopy og lagres i mappen mfcc. 4

train.py Utfører trening av akustiske modeller med data generert fra egenskapsuttrekkingen (filer spesifisert i trainset.scp). Metoden MakeTrainingConfig generer en konfigurasjonsfil for treningen. Deretter genereres initielle modeller vha. HTK-metoden HInit som lagres i mappen hmm0. Disse modellene re-estimeres vha. HTK-metoden HRest. Deretter vil antallet blandingskomponenter økes med en faktor på 4 til maksimalt antall komponenter nås. Denne verdien kan spesifiseres i variabelen nummix. HTK-metoden HHEd benyttes for å øke antall blandingskomponenter. Modellene reestimeres så igjen. test.py Evaluerer av gjenkjennerens ytelse. Dette skriptet benytter modellene generert av treningsskriptet, leksikonet lexicon.dct og gramatikken grammar til å gjenkjenne filer spesifisert i et testsett spesifisert i variabelen testset. Metoden MakeConfig setter konfigurasjonsvariabler for gjenkjenneren. HTK-metoden HParse konverterer grammatikkfilen til HTK format som igjen benyttes av gjenkjenneren som i HTK er metoden HVite. Resultatet fra denne metoden lagres i filen result/out.mlf. Resultatet sammenliknes så med transkripsjonene vha. metoden HResults. Resultatet lagres i filen result/result.res. makeproto.py Dette skriptet generer en ny protomodell. Kjør python makeproto.py -h for mer informasjon om bruk av dette skriptet. Fillister trainset.scp : Inneholder filer med sifferstrenger som brukes for trening av akustiske modeller. testset1.scp og testset2.scp inneholder filer med hhv. ett siffer og ti sifre for evaluering av gjenkjennerens ytelse. Database Hovedkatalog for databasen. Databasen må pakkes ut og legges i samme katalog som eksempelskriptene da fillistene inneholder filnavn i forhold til denne katalogen. Filene i databasen er lagret i 8 khz, 16 bit, lineær PCM format uten header. Du kan høre på dem med play -sw -t raw -r 8000 filnavn. Transkripsjonfiler MLF filene train.mlf, test1.mlf og test2.mlf inneholder transkripsjoner for filene i fillistene beskrevet ovenfor. Filen train.mlf inneholder i tillegg informasjon om start- og sluttidspunkt for alle sifre i en sifferstreng. Denne informasjonen er generert automatisk og er derfor ikke helt korrekt. Prototypmodeller En protomodell beskriver topologien til HMM-modellene som skal trenes. I denne semesteroppgaven finner du et eksempel på en slik protomodell i lib/proto10. Denne protomodellen beskriver en 10-5

tilstandsmodell basert på MFCC 0 D A egenskaper med 12 kepstralkoeffisienter. I denne oppgaven er det nødvendig å endre denne topologien når antall tilstander, kepstralkoeffisienter eller type egenskapsvektorer endres. Dette gjøres med python-skriptet makeproto.py beskrevet over. Modelliste En modelliste inneholder en liste over de modellene som skal genereres. I en helordsgjenkjenner vil denne listen bestå av ord. I denne oppgaven finner du modellisten i lib/models.list Uttaleordbok En hver talegjenkjenner trenger et leksikon. I denne oppgaven finner du leksikonet her lib/lexicon.dct Gramatikk Grammatikken beskriver hvilke ord som kan følge etter et annet ord. Filen lib/grammar kan benyttes for gjenkjenning av et siffer med stillhet foran og bak. 4 Gjennomføring 1. Utfør egenskapsuttrekning, tren og test gjenkjenneren ved hjelp av eksempelskriptene. 2. Utfør minst et eksperiment fra hver kategori nedenfor (gjør nødvendige modifikasjoner i skriptene): Egenskapsuttrekning: Sammenlign forskjellige typer egenskapsvektorer (MFCC, LPCC, LPC, PLP). Finn effekten av bruk av dynamiske parametre. Finn effekten av bruk av energi eller c 0 i egenskapsvektoren. Varier antall cepstrelparametre i MFCC. Modellstruktur: Gramatikk: Varier antall tilstander i siffermodellene. Varier antall blandingskomponenter i siffermodellene. Gjenkjenning av sifferstrenger når antall sifre er spesifisert (testset2.scp). Gjenkjenning av sifferstrenger når antall siffer er ukjent (testset2.scp, testset1.scp). 6

3. Frivillig oppgave: Live gjennkjenning Test ut gjenkjenner i live modus med dine egne ytringer. Bruk trykk for å snakke heller enn endepunktdeteksjon (les slutten av kap. 5.12.). Hvor godt fungerer gjenkjenneren? Merk: Live gjenkjenning i HTK er kun støttet for Windows og Linux. 4. Skriv en lab-rapport som inneholder følgende: Hvilke eksperimenter som er valgt. Presentasjon av resultater. Diskusjon av resultater. Hvordan stemmer resultatene med det du forventet? Forklar. Dine synspunkter om semesteroppgaven. 7