Innehåll 1 Inledning 1 2 Bakgrund 1 2.1 Svensk fonetik.................................. 1 2.1.1 IPA.................................... 1 2.1.2 ASTA................................... 1 2.2 Svensk fonotax.................................. 1 2.2.1 Genererande regler............................ 2 2.2.2 Kombinatoriska regler.......................... 3 2.2.3 Modifierande regler............................ 3 2.3 Finita transduktorer............................... 3 2.3.1 Specialtecken............................... 3 2.4 Taligenkänning.................................. 4 2.5 SRGS....................................... 4 3 Utförande 4 3.1 Resurser...................................... 4 3.1.1 Data.................................... 4 3.1.2 Grammar Builder............................ 5 3.2 (Implementation av) regler........................... 5 3.2.1 Genererande regler............................ 5 3.2.2 Kombinatoriska regler.......................... 5 3.2.3 Modifierande regler............................ 6 4 Utvärdering 7 5 Diskussion 7 1 Inledning 2 Bakgrund 2.1 Svensk fonetik 2.1.1 IPA 2.1.2 ASTA 2.2 Svensk fonotax Jag utgick från Sigurd (1965) för att bygga min fonotaktiska modell. Sigurd definierar regler för konstruktion av enkla ord (eng: simple words). Motsatsen till dessa är sammansättningar (eng: compounds), vilka är kombinationer av två rotmorfem, ett prefix och ett rotmorfem eller ett rotmorfem och ett suffix. Eftersom man kan kombinera, iallafall i teorin, hur långa sammansättningar i svenskan valde jag att se enkla ord som ord. Ett ord som jätteapa behandlar jag alltså som de två orden jätte och apa. Enkla ord beskrivs fonetiskt -logiskt, -taktiskt? som ett av följande: enkla ord 1. Ord som består av endast en, betonad stavelse, ex: å, ål, små. 1
2. Ord som består av en betonad stavelse, följd av en eller flera obetonade stavelseer, ex: apa, apor, adliga. 3. Ord som består av en, betonad stavelse, föregången konstigt ord av en eller flera obetonade stavelser, ex: hangar, apelsin. 4. Ord som består av en betonad stavelse, följd av en eller flera obetonade stavelser och föregången av en eller flera betonade stavelser, ex: hangarerna, apelsinens. Ursprungligen svenska ord (eng: genuine Swedish words) finns bara i grupp 1 och 2, medan lånord oftast finns i grupp 3 och 4. Sigurd skriver ofta om marginella fall (eng: marginal cases) och sekundära fall (eng: secondary cases). Marginella fall är konsonantkluster, som förekommer i ett fåtal låneord. Sekundära fall är konsonantkluster, som bildas genom böjningar av ord. Jag har valt att godkänna alla fall av båda dessa typer. 2.2.1 Genererande regler Vidare består ett ord av ett antal enheter, vilka kan vara antingen konsonantkluster eller vokaler. Dessa enheter ser olika ut beroende på deras position i förhållande till den betonade vokalen. Hur dessa enheter benämns visas i figuren nedan. I + (V a + M a ) + V 0 + F 1 F 2 M p1 + V p1 + M p1 + V p1 + { F3 M p3 + V p3 + F 4 } V står för vokal, alla andra enheter är någon form av konsonantkluster. Den betonade vokalen benämns V0, där nedsänkt 0 står för position noll, eftersom alla andra enheter får sina benämningar beroende på förhållandet till denna. I står för initialt konsonantkluster och är det kluster som inleder ett ord. F står för finala konsonantkluster och är kluster som förekommer sist i ett ord. M är mediala konsonantkluster, d.v.s. kluster som förekommer på en annan plats i ett ord än initialt eller finalt. Det nedsänkta a i Va och Ma står här för ante (lat: före) och innebär att enheten förekommer före V0. På liknande sätt står nedsänkt p för post (lat: efter), och visar att enheten förekommer efter V0. Siffran i F, Mp och Vp står för vilken position efter V0 de förekommer på. I tabell 1 visas vilka vokaler som tillåts på vilka positioner. Som synes begränsas antalet möjligheter mer och mer ju längre från V0 man kommer; i själva V0 kan alla vokaler förekomma. Det är också bara i V0 som långa vokaler kan förekomma, även om det finns viss ovisshet vad det gäller vokallängd se etc.. V0 initialt konsonantkluster finala konsonantkluster Va {i, e, y, ø, a, o, 0, au, eu} V0 {i, e, y, ø, a, o, u, 0, i:, e:, y:, ø:, E:, a:, o:, u:, 0:, au:, eu} Vp1 {i, e, a, o, 0, y} Vp2 {e, a, o, i, 0} Vp3 {e, a} Tabell 1: Vilka vokaler som tillåts i olika positioner, med hänsyn till den betonade vokalen. Vad det gäller konsonantkluster ta ingen hänsyn till positionen hos Ma. Detta motiveras med att enheter före V0 oftast är låneord, varför dessa enheter inte nödvändigtvis följer svensk fonotax. Kolla upp hur många olika kluster som kan förekomma var och dra någon fin sluts 2
2.2.2 Kombinatoriska regler Dessa regler ser till minst? två enheter och hur dessa kan kombineras. Kombinationer mellan V0 och efterföljande vokal är ganska tillåtande. Bland de I som bara består av en konsonant är det bara g som begränsar följande vokal överhuvudtaget, och det är bara y och ø som inte kan följa g. Statistik, för bövelen! När det gäller kombinationer mellan V0 och efterföljande konsonantkluster finns det två regler som jag valt att ta med: 1. V0 är alltid kort före ng och j. 2. V0 är alltid lång före. 2.2.3 Modifierande regler De två regeltyperna ovan begränsar hur enheter kan förekomma, beroende på position och kontext. Modifierande regler, å andra sidan, ändrar på fonem. Retroflexering Linell m.fl. (1971) kan infalla då r följs av t, d, n, s eller l. Då Retroflexering försvinner r och den efterföljande konsonanten omvandlas till ú, ã, ï, ù respektive í, d.v.s. motsvarande retroflex. Även om retroflexering ofta uppstår i normalt tal förekommer det inte i vissa dialekter, vid superartikulering eller i vissa fall då det ursprungliga r är långt; barrträd uttalas [bar:tre:d], inte [bar:úre:d] tagit direkt från Linell, ska jag skriva så?. Vokalsänkning? uppstår i svenskan då E:, e, ø: eller ø följs av r eller annan retroflex. Vokalsänkning Vokalena sänks då och realiseras då som æ:, æ, œ fl : respektive œ fl :. 2.3 Finita transduktorer fin bild? Finita transduktorer (eng: finite state transducers) (FSTs) ska det vara s där?, är Finita en utveckling av FSA:er. Till skillnad från FSA:er, som bara kan acceptera ett alfabet transduktorer sträng?, kan dessa generera en utsträng givet en insträng. Viktade finita transduktorer (eng: wheigted finite state transducers) (WFSTs) har även en vikt tilldelad varje båge. Det finns en mängd logiska? operationer som går att utföras på transduktorer. Exempel på dessa är komposition (eng: composition), där två transduktorer kombineras. Detta innebär att om man har två transduktorer: T 1, med in- respektive utalfabeten Σ 1 och 1, samt T 2 med Σ 2 och 2, går dessa att kombineras till transduktorn T 3, med Σ 1 och 2. Denna operation innebär att man kan kombinera ett godtyckligt antal transduktorer i en kaskad recognition=? (eng: recognition cascade). Detta används inom taligenkänning för kaskad att kombinera de olika steg som ingår i processen. Man kan även invertera transduktorer genom att helt enkelt byta plats på in- och utalfabeten. Detta kan användas inom maskinöversättning, där man på detta vis kan byta översättningsriktning. ska det här vara med? Det finns även operationer för sådant som snitt, att hitta kortaste stigen och att göra en transduktor deterministisk. 2.3.1 Specialtecken Det finns ett antal specialtecken som kan användas i FSM:er. Dessa kan sättas bättre ord på bågar som input och, i fallet med FST:er, output som vanliga symboler. Det speciella med dem är att de inte tolkas ordagrant bättre ord. 3
Symbolen ε tolkas som ingenting. Detta gör att man kan skapa bågar som inte kräver input eller inte ger output. Med operationen epsilon removal kan man modifiera en FSM så att man får en motsvarande FSM utan ε skriva ut epsilon?. Symbolen ρ motsvarar alla symboler i alfabetet som inte finns på utbågvr,ar från tillståndet. Har man t.ex. en FSM med Σ = {a, b, c} och en transition δ 1 = (q, a) vad heter en transition eg skulle δ 2 = (q, ρ) motsvara δ 3 = (q, b) och δ 4 = (q, c). 2.4 Taligenkänning Taligenkänning kan angripas som ett avkodningsproblem i vilket man gör en kaskad av transduktorer. Varje komponent i kaskaden tar hand om ett viss del av taligenkänningsprocessen, från rent akustiska problem? till grammatik. Det första steget i kaskaden, F, utvinner särdragsvektorer (eng: feature vectors) från ljudsignalen. Dessa vektorer representerar ett särdragen hos ett litet hur litet? fönster vardera. 2.5 SRGS F särdragsvektorer Speech Recognition Grammar Specification (SRGS) är en standard för representation av taligenkänningsgrammatik, framtagen av W3C källa. SRGS finns i två olika format: XML och Augmented BNF (ABNF ). Det senare är ett textformat som jag inte använder mig av och därför inte kommer förklara närmare. SRGS-syntaxen består av regler representerade av rule-taggar. En regel innehåller en eller flera saker (eng: items) bra översättning?, vilka representeras av taggen item. En sak kan innehålla tokens ord?, vilka representeras som vanliga textsträngar, avgränsade av mellanrum andra whitespacar? om man vill ha flera. Den kan även innehålla en referens till en regel med ruleref-taggen. Man kan omge en lista av saker med taggen one-of vilket medför att det går att välja varje sak i listan, jmf. (a b...) för reguljära uttryck. Använder man one-of kan man även ge saker vikter med attributet weight. Man kan också ange hur många gånger en sak ska få förekomma med attributet repeat, jmf.?, + respektive * för reguljära uttryck. Denna syntax är, som märks i föregående stycke, väl lämpad för att skapa grammatiker som kan representeras som reguljära uttryck. Därför går de också att översättas WFST:er. SRGS 3 Utförande 3.1 Resurser 3.1.1 Data För mitt projekt valde jag att skapa en mindre mängd inspelat ljud som data. Jag började med att komma på ett användningsområde för taligenkänning att utgå ifrån, då jag tyckte att detta skulle göra det hela mer intressant, även om det inte var nödvändigt för genomförandet. Jag beslutade mig för att utgå från domänen sjukhusjournaler och letade rätt på ett antal fall heter det så? + förklaring. Från dessa valde jag ut ett antal meningar för inspelning. Jag skapade också ett antal egna meningar med dessa syft som utgångspunkt i vilka jag bytte ut vissa ord. 4
3.1.2 Grammar Builder Grammar Builder är ett program utvecklat under utveckling av Veridict AB med vilket man kan skapa SRGS-grammatiker i XML-format. Programmet har ett grafiskt drag-anddrop-gränssnitt. 3.2 (Implementation av) regler För att kunna använda mig av de fonotaktiska regler jag hittat bättre verb; låter som nämen, en regel?! beskrivna i 2.2, i systemet SpeechCad? Nej? skapade jag FSM:er, som motsvarar dessa. Dessa kan vara både FSA:er eller FST:er beroende på typen av regel. 3.2.1 Genererande regler De genererande reglerna implementerades som en FSA. Enheterna sattes ihop på rad med konkatenering och där det kan vara finalt eller medialt kluster kombinerades dessa med union. I fallet Va och Ma, där det kan förekomma en, i teorin, oändlig kedja av dessa användes kleene-stjärna. I samband med konkatenering av enheter introducerades en uppmärkning av enhetsgränser. Detta för att kunna implementera regler som bara går att applicera på vissa platser i ett ord och för att lättare kunna se hur ord byggs upp av systemet. Denna uppmärkning visas och förklaras i tabell 2. Även symbolen - introducerades som representation av en tom enhet, eftersom många enhter som är konsonantkluster kan vara tomma. All uppmärkning av enhetsgränser kommer efter den korresponerande enheten. Uppmärkningen tas bort i ett senare steg för att ge korrekta utsträngar. Med denna uppmärkning ser ordet pingvinerna (p i ng v i: n e r n a) ut på följande vis: p /I i /Va ng v /Ma i: /I n /Mp1 e /Vp1 r n /Mp2 a /Vp2 - #3. Uppmärkning Förklaring Korresponderande enhet /I Initialt konsonantkluster. I /Ma Medialt konsonantkluster före V0. Ma /Mp1 Medialt konsonantkluster på position 1 efter V0. Mp1 /Mp2 Medialt konsonantkluster på position 2 efter V0. Mp2 /Mp3 Medialt konsonantkluster på position 3 efter V0. Mp3 /Va Vokal före V0. Va /V0 Betonad vokal. V0 /Vp1 Medial vokal på position 1 efter V0. Vp1 /Vp2 Medial vokal på position 2 efter V0. Vp2 /Vp3 Medial vokal på position 3 efter V0. Vp3 #1 Finalt konsonantkluster på position 1 efter V0. F1 #2 Finalt konsonantkluster på position 2 efter V0. F2 #3 Finalt konsonantkluster på position 3 efter V0. F3 #4 Finalt konsonantkluster på position 4 efter V0. F4 Tabell 2: Uppmärkning av enheter med förklaring och korresponderande enhet. 3.2.2 Kombinatoriska regler För att tillämpa de kombinatoriska reglerna använde jag FSA:er. Jag fann två typer av restriktioner: de som kräver att en enhet följs av en annan och de som kräver att en enhet föregås av en annan. Två typer av regler skapades för att ta hand om dessa två 5
fall. Båda typerna har tre element heter det så i regler? : (v, m, h) där v V, m M och h H. V innehåller alla symboler som kan vara vänsterled, M alla som kan vara mellanled får det heta så? och H alla som kan vara högerled. I alla fall som används i den här uppsatsen är v och h någon typ av enhet medan m är en enhetsgräns. Dessa regler går sedan att realisera? som FSA:er. Figur 1 och 2 visar hur dessa FSA:er ser ut. De streckade bågarna och tillstånden symboliserar att ett led kan bestå av en sekvens av symboler. I dessa fall kan FSA:n FSA:en? återgå till starttillståndet om det kommer en symbol som bryter sekvensen. Figur 1: Regeltyp 1 som en FSA. Figur 2: Regeltyp 2 som en FSA. Reglerna för I-V-kombinationer implementerades som regeltyp 1, men då bara för instanser av I som hade några restriktioner, d.v.s. vr, spr, spl, sv, tv, dv, kv, skv, fj, mj, nj, bj, pj, spj, fn, sk samt g. Man skulle kunna skapa en variant av regeltyp 1 som istället för att tillåta de högerled som definieras i regeln nekade de högerled som inte definieras, och använda denna för regler där det är fler högerled som tillåts än nekas. Jag valde dock att bara använda den ursprungliga regeltypen eftersom H aldrig blir särskilt stor och för att vara konsekvent. Båda reglerna för kombinationer av V0-C implementerades som typ 2 regler. V = {i, e, y, OE, a, A, o, u} M = {V0} H = {ng, j} 3.2.3 Modifierande regler Retroflexering... Vokalsänkning implementerades som en FST... 6
4 Utvärdering 5 Diskussion Referenser Linell, Per, Svensson, Bengt, och Öhman, Sven. Ljudstruktur. Gleerups, 1971. Sigurd, Bengt. Phonotactic Structures in Swedish. Berlingska boktryckeriet, 1965. Att klura på Förkortningar? På engelska? Hur mycket om finita transduktorer? Vilka operationer? Behöver man upprepa finita (automater, transduktorer)? eller Ω som utalfabet? Hur är det med dubbla vokaler i svenskan? ex. gående Är det en eller flera regler? Ex. genererande... Vad kalla konsonantkluster/vokaler(kluster)? Nu enheter. Led? Regler som bilagor? De blir nog ganska stora p.g.a. oregelbundenhet. Fonetisk representation? IPA, ASTA, konsekvens är nog bra... Konstiga referenser med flera författare. 7