# Handbok &kmyapplication;

## Inledning

&kmyapplication; är det huvudsakliga gränssnittet för Simon, ett program för taligenkänning med öppen källkod. Det är en Simond-klient och tillhandahåller ett grafiskt användargränssnitt för att hantera talmodellen och kommandona. Dessutom kan Simon köra alla möjliga kommandon, baserat på den indata som kommer från servern: Simond.

Som kontrast till befintliga kommersiella lösningar erbjuder Simon en unik gör-det-själv-metod för taligenkänning. Istället för fördefinierade, förinlärda talmodeller, levereras inte Simon med någon modell överhuvudtaget. Istället tillhandahåller det ett lättanvänt slutanvändargränssnitt för att skapa språk- och akustiska modeller från grunden.

Dessutom kan slutanvändare enkelt ladda ner skapade användarfall från andra användare och dela med sig av sina egna.

Den aktuella utgåvan kan användas för att skapa lösningar för styrning och kontroll som är särskilt lämpade för handikappade. Dock är inte kontinuerlig, fri diktering vare sig stödd eller realistisk med den nuvarande versionen av Simon, på grund av mängden inlärning som är nödvändig.

På grund av dess arkitektur kan samma version av Simon användas med alla språk och dialekter. Man kan till och med blanda språk inom en modell om det skulle behövas.

## Översikt

### Arkitektur

Den huvudsakliga igenkänningsarkitekturen i Simon består av tre program.

- &kmyapplication;

  Detta är det huvudsakliga grafiska gränssnittet.

  Det fungerar som en klient för Simond-servern.

- Simond

  Igenkänningsservern.

- Ksimond

  Ett grafiskt gränssnitt för Simond.

Dessa tre komponenter utgör en verklig klient-serverlösning för igenkänningen. Det innebär att det finns en server (Simond) för en eller flera klienter (&kmyapplication;, detta program). Ksimond är bara ett gränssnitt för Simond, vilket betyder att det inte tillför någon funktionalitet till systemet, utan snarare utgör ett sätt att grafiskt interagera med Simond.

Förutom Simon, Simond och Ksimond, ingår andra mer specialiserade program också i den här integrerade distributionen av Simon.

- Sam

  Tillhandahåller mer djupgående kontroll över talmodeller och gör det möjligt att prova den akustiska modellen.

- SSC och SSCd

  Dessa två program kan användas för att enklare samla in stora mängder talsamplingar från olika personer.

- Afaras

  Detta enkla verktyg låter användare snabbt kontrollera stora uppsättningar taldata för att hitta felaktiga samplingar.

Se de individuella handböckerna för dessa program för detaljerad information.

Arkitektur

&kmyapplication; används för att skapa och hantera en representation av ditt uttal och språk. Denna representation skickas sedan till servern Simond som kompilerar den till en användbar talmodell.

&kmyapplication; spelar sedan in ljud från mikrofonen och skickar det till servern som utför igenkänning av den mottagna indataströmmen. Simond skickar tillbaka igenkänningsresultatet till klienten (&kmyapplication;).

&kmyapplication; använder därefter igenkänningsresultatet för att utföra kommandon som att starta program, följa länkar, etc.

Simond identifierar sina anslutningar med en kombination av användarnamn och lösenord, som är helt oberoende av det underliggande operativsystemet och dess användare. Normalt skapas en standardanvändare både i Simon och Simond så att det typiska användarfallet med en Simond-server per Simon-klient fungerar direkt efter installation.

Varje Simon-klient loggar in på servern med en kombination av användarnamn och lösenord som identifierar en unik användare, och därigenom en unik talmodell. Varje användare underhåller sin sin egen talmodell, men kan använda den från olika datorer (olika fysiska instanser av Simon) genom att helt enkelt ansluta till samma Simond-server. En Simond-instans kan naturligtvis också användas av flera användare.

Om du vill öppna servern mot Internet, eller använda flera användare på en server, måste du ställa in Simond. Se handboken för Simond för detaljerad information.

### Nödvändiga resurser för en fungerande &kmyapplication;

För bakgrundsinformation om talmodeller se avsnittet Taligenkänning: Bakgrund.

För att få Simon att känna igen tal och reagera på det, behövs en talmodell ställas in.

Talmodeller beskriver hur en röst låter, vilka ord som finns, hur de låter, och vilka ordkombinationer (meningar eller strukturer) som finns.

En talmodell består egentligen av två delar:

- Språkmodell: Beskriver alla befintliga ord och vilka meningar som är grammatiskt riktiga

- Akustisk modell: Beskriver hur ord låter

Du behöver båda dessa komponenter för att få Simon att känna igen din röst.

I Simon skapas språkmodellen från aktiva scenarier och den akustiska modellen byggs antingen enbart från dina röstinspelningar (inlärning) eller med hjälp av en basmodell.

#### Scenarier

Ett scenario utgör ett fullständigt användarfall i Simon. För att exempelvis styra Firefox, installerar användaren bara Firefox-scenariet.

Med andra ord talar scenarier om för Simon vilka ord och meningar som ska lyssnas efter och vad som ska göras när de känns igen.

Eftersom scenarier inte innehåller information om hur orden och meningarna verkligen låter kan de delas och utbytas mellan olika användare av Simon utan problem. För att underlätta detta gemenskapsbaserade arkiv har en kategori med scenarier för Simon skapats på kde-files.org där scenarierna, som är helt vanliga textfiler (med XML-format), lätt kan spridas.

I de flesta fall är scenarier skräddarsydda för att fungera bäst med en särskild basmodell för att undvika problem med fonemuppsättningen.

För information om hur scenarier används i Simon, se avsnittet Scenarier i kapitlet om hur Simon används.

#### Akustisk modell

Som nämndes ovan, behöver du en akustisk modell för att aktivera Simon.

Du kan antingen skapa en egen, eller använda och till och med anpassa en basmodell. Basmodeller är redan skapade, i de flesta fall talaroberoende, akustiska modeller som kan användas med Simon.

Följande tabell visar vad som krävs, beroende på din inställning av Simon:

#### Sätt att få fram en akustisk modell

| Inlärning krävs | Basmodell krävs | Gränssnitt för att skapa modeller krävs
Statisk basmodell | Nej | Ja | Nej
Anpassad basmodell | Ja | Ja | Ja
Modell skapad av användare | Ja | Nej | Ja

##### Gränssnitt

Simon använder extern programvara för att skapa akustiska modeller och känna igen tal.

Oftast kan gränssnitten delas upp i två distinkta komponenter: Gränssnittet för "modellkompilering" eller "modellgenereringen" använt för att skapa eller anpassa akustiska modeller och "igenkänningen" använd för att känna igen tal med hjälp av dessa modeller.

Alla Simons användningslägen kräver inte ett gränssnitt för modellkompilering. Se nästa avsnitt för detaljerad information om när detta är fallet.

Två olika gränssnitt stöds:

- Julius / HTK

  Modeller skapas med HTK. Julius används för igenkänning.

  Försäkra dig om att du har en aktuell version av båda dessa verktyg installerad för att använda gränssnittet.

- CMU SPHINX

  Det här gränssnittet som ofta helt enkelt kallas "SPHINX", använder igenkänningsverktyget PocketSphinx och modellgenereringsgränssnittet SphinxTrain. Se webbsidan för CMU SPHINX för mer detaljerad information.

  CMU SPHINX-gränssnittet kräver att Simon byggs med det valfria SPHINX-stödet. Om du inte har kompilerat Simon från källkod, se din distribution för mer information.

Om du använder basmodeller, väljer Simon automatiskt lämpligt gränssnitt åt dig. Om du dock vill bygga egna modeller från grunden (användarskapade modeller, se nedan) och fördrar någonting särskilt, se inställning av Simond för mer information.

Basmodeller skapade för ett gränssnitt är inte kompatibla med något annat gränssnitt. Se kompatibilitetsmatrisen för detaljerad information.

##### Typer av basmodeller

Det finns tre typer av basmodeller:

- Statiska basmodeller

- Anpassad basmodell

- Modell skapad av användare

För information om hur basmodeller används i Simon, se avsnittet om basmodeller i kapitlet Använda Simon.

###### Statisk basmodell

Statiska basmodeller använder helt enkelt en förkompilerad akustisk modell utan att ändra den.

Eventuell inlärningsdata som samlas in via Simon kommer inte att användas för att förbättra igenkänningsnoggrannheten.

Modelltypen kräver inte att gränssnittet för att skapa modeller är installerat.

###### Anpassad basmodell

Genom att anpassa en förkompilerad akustisk modell kan du förbättra noggrannheten genom att anpassa den till din röst.

Insamlad inlärningsdata kommer att kompileras i en anpassningsmatris som sedan appliceras på den valda basmodellen.

Denna typ av modell kräver att gränssnittet för att skapa modeller är installerat.

###### Modell skapad av användare

När användarskapade modeller används, är användaren ansvarig för upplärning av den egna modellen. Ingen basmodell kommer att användas.

Inlärningsdata som kommer att användas för att kompilera en egen akustisk modell låter dig skapa ett system som direkt motsvarar din egen röst.

Denna typ av modell kräver att gränssnittet för att skapa modeller är installerat.

##### Krav

För att bygga, anpassa eller använda akustiska modeller av olika typer, kräver att viss programvara är installerad.

##### Krav för basmodeller

| CMU SPHINX | Julius / HTK
Statisk basmodell | PocketSphinx | Julius
Anpassad basmodell | SphinxTrain, PocketSphinx | HTK, Julius
Modell skapad av användare | SphinxTrain, PocketSphinx | HTK, Julius

Alla fyra verktygen, HTK, Julius, PocketSphinx och SphinxTrain, kan vara installerade samtidigt utan problem.

Stöd för SPHINX i Simon måste aktiveras vid kompileringstillfället och kanske inte är tillgängligt på din plattform. Kontrollera med din distribution.

Simons installationsprogram på Windows inkluderar Julius, PocketSphinx och SphinxTrain, men inte HTK. Se installationsavsnittet för information om hur man installerar det, om du skulle ha behov av det.

##### Var man hämtar basmodeller

Simons basmodeller paketeras som `.sbm`-filer. Om du råkar ha obehandlade basmodellfiler för ditt gränssnitt, kan du paketera dem till ett kompatibel SBM-arkiv inne i Simon. Se inställning av talmodell för detaljerad information.

Alla SBM-modeller kanske inte fungerar för dig. Se avsnittet om modellgränssnitt för detaljinformation.

För att hålla listan över tillgängliga basmodeller uppdaterad hänvisar vi till listan på vår Wiki.

##### Problem med fonemuppsättningar

För att basmodeller ska fungera, måste både scenarierna och basmodellen använda samma uppsättning fonem.

I praktiken betyder det ofta att du måste passa ihop scenarier med basmodellen. Namnet på basmodellerna i &kmyapplication; börjar troligtvis med en tagg som "[EN/VF/JHTK]". Försök att ladda ner scenarier som börjar med samma tagg.

Du kan inte använda scenarier utformade för andra fonemuppsättningar (annorlunda basmodell). Om Simon känner igen felet, görs ett försök att inaktivera påverkade ord genom att ta bort dem från den skapade talmodellen. Orden markeras med en röd bakgrund i scenariets ordförråd. För att aktivera dem igen, transkribera dem med den riktiga fonemuppsättningen eller använd en användarskapad modell.

###### Tips

Om du utformar ett nytt scenario är det därför en god idé att använda den ordbok som användes för att skapa basmodellen som en skuggordbok. På så sätt kommer Simon föreslå rätt fonem när ord läggs till automatiskt.

## Använda &kmyapplication;: Typisk användare

Följande avsnitt beskriver hur Simon används.

### Första körningsguiden

När Simon startas för första gången visas den här guiden för att leda dig igenom den inledande inställningen av &kmyapplication;.

Första körning: Välkommen

Inställningarna består av fem enkla steg som gås igenom nedan. Du kan hoppa över varje steg, och till och med hela guiden om du vill. I så fall ställs systemet in med standardvärden.

Observera dock att utan någon inställning sker ingen igenkänning.

#### Scenarier

I det här steget kan du lägga till eller ladda ner scenarier.

Första körning: Scenarier

För att ladda ner scenarier från nätarkivet, välj Öppna Ladda ner för att visa nerladdningsdialogrutan som åskådliggörs nedan.

Första körning: Hämta scenarier

Särskilt för nya användare rekommenderar vi att först prova några scenarier för att se hur systemet fungerar, innan exakt anpassning för det egna användarfallet påbörjas.

Efter att ha slutfört guiden kan du ändra inställningen av scenariot med dialogrutan för scenariohantering.

Om du planerar att använda en basmodell, försäkra dig om att du laddar ner motsvarande scenarier.

#### Basmodeller

I det här steget kan du ställa in Simon att använda basmodeller.

Första körning: Basmodeller

Återigen, du kan ladda ner basmodeller från ett nätarkiv via Öppna modell Ladda ner.

Första körning: Nerladdning av basmodell

Välj Använd inte en basmodell för att använda en användarskapad modell.

Efter att ha slutfört eller avbrutit guiden för första körning kan du ändra inställningsalternativen som definieras här i Simons inställningar.

#### Server

Internt är Simon ett klient-serverprogram. Om du vill dra nytta av en nätverksbaserad installation kan du ange serverns adress här.

Första körning: Server

Den förvalda inställningen är tillräcklig för en normal installation och antar att du använder en lokal simond-server som kommer att startas automatiskt och stoppas med Simon.

Efter att ha slutfört eller avbrutit guiden för första körning kan du ändra inställningsalternativen som definieras här i serverinställningarna.

#### Ljudinställning

Eftersom Simon känner igen ljud från en eller flera mikrofoner, måste du talar om för Simon vilka enheter du vill använda för igenkänning och inlärning.

Första körning: Ljudinställning

Simon kan använda en eller flera in- och utenheter för olika uppgifter. Du kan läsa mer hur Simon hanterar flera enheter i avsnittet om Simons ljudinställningar.

Om du inte har minst en inmatningsenhet som fungerar för igenkänning, kommer du inte att kunna aktivera Simon.

Efter att ha slutfört eller avbrutit guiden för första körning kan du ändra inställningsalternativen som definieras här i ljudinställningarna.

#### Volymkalibrering

För att Simon ska fungera riktigt måste du ställa in mikrofonens volym till en rimlig nivå.

Första körning: Volymkalibrering

För mer detaljerad information om detta, se den allmänna sektionen om volymkalibreringen.

### Simons huvudfönster

En skärmbild av &kmyapplication; Skärmbild

Simons huvudfönster är delat i fyra logiska delar. Längst upp till vänster visas scenariodelen, till höger om den finns inlärningsdelen, den akustiska modellen är längst ner till vänster, och till höger om den finns slutligen igenkänningsdelen.

Simons huvudfönster kan döljas när som helst genom att klicka på Simon-ikonen i systembrickan (oftast intill systemklockan i aktivitetsfältet), vilket minimerar Simon i systembrickan. Klicka på den igen för att visa huvudfönstret igen.

#### Huvudfönstret: Scenarier

En lista över scenarier visar scenarierna som för närvarande är inlästa. Du kan hantera urvalet genom att klicka på Hantera scenarier vilket öppnar dialogrutan för hantering av scenarier.

För att ändra ett scenario, markera det i listan och öppna det genom att klicka på Öppna "<namn>".

#### Huvudfönstret: Inlärning

Den här delen visar alla inlärningstexter från alla scenarier som för närvarande är aktiva.

Att markera en inlärningstext markerar överliggande scenario i scenariodelen.

Du kan börja lära upp igenkänningen genom att markera en text och klicka på Starta inlärning. Observera att beroende på vald modelltyp, kan inlärning förbättra igenkänningsresultatet eller inte. Delen med den akustiska modellen (se nedan) i &kmyapplication;s huvudfönster talar om för dig om inlärning får någon effekt för din specifika inställning. För mer information, se avsnittet om basmodeller för bakgrund om ämnet.

Det insamlade inlärningsmaterialet kan hanteras genom att välja Hantera inlärningsdata som öppnar dialogrutan för hantering av samplingar.

För att hjälpa till att skapa allmänt, öppet taligenkänningsmaterial, överväg gärna att bidra med ditt inlärningsmaterial till Voxforge-projektet genom att välja Arkiv Bidra med samplingar för att visa guiden för uppladdning av samplingar.

#### Huvudfönstret: Akustisk modell

Här visar &kmyapplication; information om basmodell och aktiv modell som för närvarande används.

Välj Anpassa akustisk modell för att anpassa basmodellen.

#### Huvudfönstret: Igenkänning

Den här delen visar information om igenkänningens status.

Om &kmyapplication; är ansluten till servern, kan du aktivera och inaktivera igenkänning genom att klicka på knappen Aktivera. Om knappen inte är tillgänglig, försäkra dig om att du är ansluten genom att välja Arkiv Anslut i &kmyapplication;s meny.

En integrerad grafisk komponent för volymkalibrering övervakar de inställda igenkänningsenheterna. Ljudinställningen kan ändras genom att välja Anpassa ljud för att visa ljudinställningarna.

### Scenarier

Det här avsnittet beskriver hur man importerar och tar bort scenarier i Simons inställningar. För allmän information om scenarier, se bakgrundskapitlet. Om du vill skapa, redigera eller exportera scenarier, se avsnittet om avancerad användning.

För att ändra scenarieinställningen, öppna först dialogrutan för scenariohantering genom att klicka på Hantera scenarier i Simons huvudfönster.

Hantera scenarier

För att aktivera eller inaktivera ett scenario kan du använda pilknapparna mellan de två listorna eller helt enkelt dubbelklicka på alternativet du vill ladda eller stänga av.

Mer information om enskilda scenarier hittar du i listalternativens verktygstips.

#### Importera scenario

Scenarier kan importeras från en lokal fil med Simons XML-filformat för scenarier, men kan också laddas ner direkt och importeras från Internet.

När du laddar ner scenarier hämtas en lista från kategorin Simon Scenarios på OpenDesktop-sidan KDE-files.org.

Ladda ner scenarier

Om du skapar ett scenario som kan vara till nytta för andra användare av Simon, fundera gärna på att ladda upp det till detta Internetarkiv och hjälpa andra användare av Simon.

#### Ta bort scenario

Markera ett scenario och klicka på knappen Ta bort för att ta bort det.

Eftersom scenarier synkroniserar mot igenkänningsservern kan du återställa raderade scenarier genom säkerhetskopiering av modellsynkronisering.

### Inspelningar

Om du använder användarskapade eller anpassade modeller bygger Simon upp sin akustiska modell på transkriberade samplingar av användarens röst. Därför är inspelade samplingar ytterst viktiga för igenkänningsprestanda.

#### Volym

Det är viktigt att du kontrollerar mikrofonvolymen innan några samplingar spelas in.

##### Kalibrering av Simon

Den nuvarande versionen av &kmyapplication; innehåller ett enkelt sätt att försäkra sig om att volymen är riktigt inställd.

Volymkalibrering av Simon

Normalt visas volymkalibreringen innan någon inspelning startas i &kmyapplication;.

Läs helt enkelt upp texten som visas för att kalibrera.

Kalibreringen övervakar nuvarande volym och talar om för dig att antingen öka eller sänka volymen, men du måste göra det för hand i systemets ljudmixer.

Försök att tala normalt under kalibrering. Skrik inte, men var inte heller överdrivet tyst. Ta hänsyn till att samma volyminställning i allmänhet ska användas för all inlärning, och även för igenkänningen. Du kan (omedvetet) tala lite högre när du är upprörd eller vid ett annat klockslag, så försök att höja rösten en aning för att föregripa det. Det är mycket bättre att ha något tystare samplingar än att orsaka överstyrning.

Både texten som visas och nivåerna som anses korrekta kan ändras i &kmyapplication;s inställningar. Om du lämnar texten tom, visas standardtexten. Du kan också inaktivera kalibreringen helt och hållet i inställningarna. Se inställningsavsnittet för mer detaljerad information.

##### Kalibrering med Audacity

Annars kan du använda ett ljudredigeringsverktyg, som det fria verktyget Audacity för att övervaka inspelningsvolymen.

För tyst: Volym: För tyst

För hög: Volym: För hög

Perfekt volym: Perfekt volym

#### Tystnad

För att hjälpa Simon med den automatiska segmenteringen rekommenderas att lämna en eller två sekunders tystnad i inspelningen före och efter uppläsning av den visade texten.

För närvarande versioner av Simon inkluderar en grafisk underrättelse om när man ska tala under inspelningar. Meddelandet talar om för användaren att vänta ungefär en halv sekund. Vänta

... innan du ber användaren att tala: Tala

Det här sättet med visuell återkoppling visade sig vara särskilt värdefull vid inspelning med personer som inte kan läsa den efterfrågade texten själva, och därför behöver någon som talar om för dem vad de ska säga. Den färgrika visuella anvisningen talar om för dem när de ska börja repetera vad handledaren sagt, utan behov av otillförlitliga handgester.

#### Innehåll

I allmänhet rekommenderar vi att spela in ungefär samma meningar som Simon senare ska känna igen.

(Uppenbarligen gäller det inte omfattande samplingsinsamlingar där andra egenskaper som fonetisk balans är viktigare)

Se till att undvika inspelningar som Ett ett ett för att snabbt öka egenskapen igenkänningsfrekvens. Sådana inspelningar minskar ofta igenkänningsprestanda, eftersom uttalet varierar stort från att säga ordet för sig självt.

#### Mikrofon

För att Simon ska fungera bra, rekommenderas en mikrofon av hög kvalitet.

Dock åstadkommer även ganska billiga headsets (omkring 300 kr) mycket bra resultat - flera magnituder bättre än interna mikrofoner.

För maximal kompatibilitet rekommenderar vi USB-headsets, eftersom de i regel har stöd för den nödvändiga samplingsfrekvensen 16 kHz, har bra stöd både i Microsoft Windows och GNU/Linux, och i normala fall inte behöver speciella, användarspecifika drivrutiner för att fungera.

#### Kvalitetssäkring av samplingar

Simon kontrollerar varje inspelning mot vissa kriterier för att försäkra sig om att de inspelade samplingarna inte är felaktiga eller av dålig kvalitet.

Om Simon detekterar en problematisk sampling, varnas användaren för att kunna spela in samplingen igen.

För närvarande kontrollerar Simon följande kriterier:

- Toppvolymen hos samplingen

  Om volymen är för hög och mikrofonen började klippa ( klippning på Wikipedia), kommer Simon visa ett varningsmeddelande som råder användaren att sänka mikrofonvolymen.

- Signal-brusförhållande (SNR)

  Simon bestämmer automatiskt signal-brusförhållandet för varje inspelning. Om förhållandet understiger ett justerbart tröskelvärde kommer ett varningsmeddelande visas.

  Det förvalda värdet 2300 % betyder att toppvolymen måste vara 23 gånger högre än grundbruset (lägsta medelvärde under 50 ms) för att Simon ska acceptera samplingen som korrekt inspelad.

  Det kan ofta vara ett resultat av antingen en mikrofon av dålig kvalitet, hög nivå av bakgrundsljud, eller en låg inspelningsvolym tillsammans med alternativet microfone boost i systemets mixer.

Ett varningsmeddelande om signal-brusförhållandet som orsakats av ett tomt sampling. Informationsdialogrutan visas när knappen Mer information klickas i den grafiska inspelningskomponenten. Tom sampling som utlöser SNR-varningen

### Bidra med samplingar

Basmodeller som kan användas med Simon för att förbättra eller ersätta inlärning är skapade från andra personers talsamplingar. För att skapa basmodeller med hög kvalitet, krävs en stor mängd inlärningssamplingar.

Om du lärde upp den lokala installationen av Simon, samlade du in värdefulla samplingar som kan förbättra kvaliteten hos den allmänna modellen.

Via dialogrutan "Bidra med samplingar" i &kmyapplication; kan du ladda upp dessa inspelningar för att gagna Voxforge-projektet för att skapa öppna basmodeller av hög kvalitet.

Bidra med samplingar: Anslutning

Efter att ha anslutit till servern kommer &kmyapplication; att fråga efter viss grundläggande metainformation. Informationen innehåller uppenbarligen inte någon personlig information. Istället används den senare för att gruppera ihop samplingar av liknande inläsningsgrupper för att skapa noggrannare akustiska modeller.

Bidra med samplingar: Tillhandahålla information

Längden av själva uppladdningsprocessen beror på Internet-anslutningen. I allmänhet överförs relativt lite data, eftersom ljudsamplingarna som samlas in av &kmyapplication; i allmänhet är mycket små: omkring 0,1 Mibyte per sampling.

Bidra med samplingar: Uppladdning

### Hantera inlärningsdata

För att visa och ändra det personliga inlärningsmaterialet kan du komma åt dialogrutan för hantering av inlärningsdata genom att välja Hantera inlärningsdata i &kmyapplication;s huvudfönster eller inlärningsdelen i vilket öppet scenario som helst.

Hantera inlärningssamplingar

#### Ändra samplingar

Markera samplingen i listan och välj Öppna sampling för att lyssna på eller spela in en sampling igen.

Ändra en inlärningssampling

I den här dialogrutan kan du också ändra samplingens grupp efter den har spelats in.

Om du tar bort den öppnade samplingen och inte spelar in den igen, erbjuder sig &kmyapplication; att ta bort den från inlärningsmaterialet.

Ta bort en inlärningssampling

#### Rensa inlärningsdata

Efter en bekräftelsedialogruta, kommer detta att ta bort användarens alla personliga inlärningsdata.

#### Import av inlärningssamplingar

Genom att använda fältet för att importera inlärningsdata kan du importera tidigare insamlade inlärningssamplingar från äldre versioner av Simon eller manuell inlärning.

Funktionen är mycket specifik. Använd den med försiktighet och försäkra dig om att du vet exakt vad du gör innan du fortsätter.

Du kan antingen erbjuda en separat frågefil eller låta Simon extrahera transkriptioner från filnamnen.

När du använder frågebaserade transkriberingar måste frågefilen (UTF-8) innehålla rader med följande innehåll: [filnamn] [innehåll]. Filnamn skrivs utan filändelser, och innehållet måste använda stora bokstäver. Exempelvis: `demo_2007_03_20 DEMO` för att importera filen `demo_2007_03_20.wav` som innehåller det inlästa ordet Demo.

Eftersom frågefilen inte innehåller någon filändelse försöker Simon med wav, mp3, ogg, och flac (i den ordningen). Om en av dessa passar in provas ingen annan ändelse, och bara den första filen importeras (i motsats till filbaserad transkribering, där alla filer skulle importeras).

När filbaserade transkriberingar används måste en fil med namnet detta_är_ett_test.wav innehålla Detta är ett test och inget annat. Siffror och specialtecken (., -, ...) i filnamnet ignoreras och tas bort.

Filer som spelades in av Simon 0.2 följer denna namngivningskonventionen, så du kan med importera dem säkert genom att använda metoden med filnamnsextrahering. Filer som skapats av tidigare versioner av Simon ska inte importeras med den här funktionen, men du kan använda den frågebaserade importen för detta ändamål.

Importerade filer och deras transkribering läggs därefter till i inlärningsmaterialet.

Markera bara katalogen att importera och beroende på typ av import också frågefilen, för att importera en katalog som innehåller inlärningssamplingar. Guiden för import av inlärningsdata

Katalogen sökes igenom rekursivt. Det betyder att den angivna katalogen och alla dess underkataloger sökes igenom efter .wav-, .flac-, .mp3-, och .ogg-filer. Alla filer som hittas importeras.

När ljudfilerna importeras tillämpas alla inställda efterbehandlingsfilter.

Om du importerar något annat än WAV-filer ansvarar du för att de avkodas under importprocessen (exempelvis via efterbehandlingsfilter), annars misslyckas skapandet av modellen.

### Inställning

Simon konstruerades med stor inställningsbarhet i åtanke. På grund av det finns det gott om parametrar som kan finjusteras för dina specifika krav.

Du kan komma åt Simons inställningsdialogruta via programmets huvudmeny: Inställningar Anpassa Simon....

#### Allmän inställning

Den allmänna inställningssidan listar några grundinställningar.

Om du vill visa första körningsguiden igen, avmarkera Inaktivera inställningsguiden.

Allmän inställning

Observera att alternativet för att starta Simon vid inloggning fungerar både på Microsoft Windows och när du använder KDE:s Plasma på Linux. Stöd för andra skrivbordsmiljöer, som GNOME, XFCE, etc. kan kräva att du placerar Simon i sessionens autostart manuellt (se handboken för respektive skrivbordsmiljö).

När alternativet för att starta Simon minimerat väljes kommer Simon minimeras i systembrickan direkt efter start.

Om du avmarkerar alternativet för att varna dig när det finns problem med samplingar, inaktiveras kvalitetssäkring av samplingar.

#### Inspelningar

Simon använder en ganska avancerad intern ljudbehandling för att möjliggöra komplexa inställningar med flera enheter.

##### Enhetsinställning

Inställningar av ljudenhet låter dig välja vilken eller vilka ljudenheter som ska användas, anpassa dem och definiera ytterligare inspelningsparametrar.

Använd knappen Uppdatera enheter om du har kopplat in ytterligare ljudenheter efter att Simon startades.

Inställning av ljudenhet: Allmänt

I de flesta fall bör du använda en kanal och 16 kHz (vilket också är förval), eftersom igenkänningen bara fungerar för indata i mono, och fungerar bäst vid 16 kHz (8 kHz och 22 kHz är andra användbara alternativ). Vissa billigare ljudkort kanske inte stöder just detta läge, och i detta fall kan du aktivera automatisk omsampling i enhetens avancerade inställningar.

Ändra bara kanaler och samplingsfrekvens om du verkligen vet vad du gör. Annars kommer igenkänningen med största sannolikhet inte fungera.

Inställning av ljudenhet: Avancerade alternativ

Du kan använda Simon med fler än en ljudenhet samtidigt. Använd Lägg till enhet för att lägga till en ny enhet i inställningarna, och Ta bort enhet för att ta bort den från inställningarna. Den första enheten i ljudinställningarna kan inte tas bort.

För varje enhet kan du bestämma vad du vill använda den till: Inlärning eller igenkänning (det senare gäller bara inenheter).

Om du använder fler än en enhet för inlärning kommer du skapa flera ljudfiler varje gång du läser in något. När du använder flera enheter för igenkänning ger var och en en separat ljudindataström till servern, och du får då igenkänningsresultat för varje ström.

Om du använder flera utenheter sker uppspelning av inlärningssamplingarna på alla inställda ljudenheter.

När du använder olika samplingsfrekvenser för inenheter spelas utdata bara upp på matchande utenheter. Om du till exempel har en inenhet inställd att använda 16 kHz, och den andra att använda 48 kHz, sker uppspelning av samplingar som skapats av den första bara via 16 kHz-utgångar, och den andra bara via 48 kHz-enheter.

I enhetens avancerade inställning kan du också definiera samplingsgruppens etikett för inlärningssamplingarna som skapas och ställa in aktiveringens sammanhangsvillkor.

Om du ställer in att enheten ska användas för igenkänning och (något av) dess aktiveringskrav inte är uppfyllda, kommer enheten inte att spela in. Det kan användas för att förbättra eller till och med ersätta traditionell röstaktiveringsdetektering med sammanhangsinformation.

Lägg exempelvis till ett villkor för ansiktsdetektering i aktiveringskraven för inspelningsenheten för att bara aktivera igenkänning när du tittar på webbkameran.

##### Upptäckt av röstaktivitet

Igenkänningen sker på Simond-servern. Se avsnittet om arkitektur för mer information.

Ljudströmmen är inte kontinuerlig, men delas in i segment av Simon-klienten. Det görs med hjälp av någonting som kallas upptäckt av röstaktivitet.

Upptäckt av röstaktivitet

Här kan du anpassa segmenteringen via följande parametrar:

- Gränsnivå

  Allt under denna nivå anses vara tystnad (bakgrundsbrus).

- Nivåmarginal

  Lagra ända till nivåmarginalen för att börja betrakta det som en riktig sampling. Under denna period måste innivån vara ovanför gränsnivån.

- Avslutningsmarginal

  Efter att inspelningen understeg gränsnivån, väntar Simon så länge som avslutningsmarginalen för att anse nuvarande inspelning som en färdig sampling.

- Hoppa över samplingar kortare än

  Samplingar som är kortare än detta värde skickas inte vidare för igenkänning (hostningar, etc.).

##### Inlärningsinställningar

Inlärningsinställningar

När alternativet Avancerad inlärning som standard är valt kommer Simon automatiskt starta och stoppa inspelning när inspelningstexten visas respektive döljs under inlärning. Värdet anger bara alternativets standardvärde, användaren kan ändra det när som helst innan en inlärningssession påbörjas.

Teckensnittsinställningen här gäller texten som spelas in för att träna den akustiska modellen (genom explicit träning eller när ett ord läggs till).

Alternativet har tillkommit efter att vi arbetat med några användare som lider av spastiska funktionsnedsättningar. Medan vi vi använde musen för att styra Simon vid inlärning skulle de läsa upp vad som fanns på skärmen. I början var det problematiskt, eftersom den vanliga teckenstorleken är relativt liten, och de hade problem att urskilja vad som skulle läsa upp. Det är orsaken till att vi gjorde inspelningstextens teckensnitt och teckenstorlek anpassningsbar.

Här kan du också definiera signal-brusförhållandet som krävs för att Simon ska anse att en inlärningssampling är korrekt. Se avsnittet om kvalitetssäkring av samplingar för mer information.

På den här inställningssidan kan du också ange parametrarna för volymkalibreringen.

Den kan inaktiveras i både dialogrutan för att lägga till ord och inlärningsguiden genom att avmarkera själva grupprutan.

Själva kalibreringen använder röstaktivitetsigenkänningen för att utvärdera ljudinställningen.

Den visade texten kan anpassas genom att skriva in text i inmatningsfältet därunder. Om redigeringsrutan är tom används en förvald text.

##### Efterbehandling

Alla inspelade (inlärning) och importerade (genom import av inlärningsdata) samplingar kan behandlas med en serie efterbehandlingskommandon. Efterbehandlingskedjor är en avancerad funktion och ska inte behövas av vanliga användare.

Efterbehandling av ljudinställning

Efterbehandlingskommandon kan ses som en kedja av filter som inspelningarna måste passera igenom. Genom att använda dessa filter kan man definiera kommandon för att dämpa bakgrundsljud i inlärningsdata eller normalisera inspelningarna.

Givet programmet process_audio, som tar in- och utdatafiler som argument (t.ex.: `process_audio in.wav ut.wav`) skulle efterbehandlingskommandot vara: `process_audio %1 %2`. De två platsmarkörerna %1 och %2 ersätts av respektive in- och utdatafilnamn.

Väljaren för att tillämpa filter på inspelningar som spelats in med Simon aktiverar efterbehandlingskedjorna för samplingar som spelats in vid inlärning (inklusive den första inlärningen när ordet läggs till). Om du inte använder väljaren utförs efterbehandlingskommandona bara för importerade samplingar (via guiden för import av inlärningsdata).

##### Sammanhang

Varje sampling som spelas in med Simon tilldelas en samplingsgrupp.

När den akustiska modellen skapas från inlärningssamplingarna kan Simon ta hänsyn till den aktuella situationen för att bara använda en delmängd av all insamlad inlärningsdata.

Ljudinställning: Sammanhang

Exempelvis, i ett system där flera, mycket olika högtalare använder en delad inställning, kan sammanhangsvillkor ställas in för att automatiskt skapa separata modeller för båda användare beroende på den aktuella situationen.

Ovanstående skärmbild visar exempelvis en inställning där den aktiva akustiska modellen bara innehåller den aktuella användarens egna samplingar, givet att alla samplingar av "peter" gavs etiketten "peters_samples" och att alla samplingar av "mathias" gavs etiketten "mathias_samples" (se enhetsinställningen för mer information om hur man ställer in samplingsgrupper), och under förutsättningen att filen `/home/bedahr/.username` innehåller antingen "peter" eller "mathias".

Ett annat exempel på användarfall skulle vara att byta till en mer brusokänslig akustisk modell när användaren börjar spela musik.

#### Talmodell

Här kan du justera talmodellens parametrar.

##### Basmodell

Det går valfritt att använda basmodeller för att begränsa eller undvika inlärning, eller för att undvika installation av ett gränssnitt för att skapa modeller. Se det allmänna avsnittet om basmodeller för mer detaljerad information om dem.

Inställning av basmodell

För att använda en användarkskapad modell, välj Använd inte en basmodell. För att använda en statisk basmodell, välj en basmodell och välj inte Anpassa basmodell med inlärningssamplingar. För att använda en anpassad basmodell istället, markera Anpassa basmodell med inlärningssamplingar efter att ha valt en basmodell.

Simons basmodeller är paketerade i `.sbm`-filer.

För att lägga till basmodeller i urvalet, kan du antingen importera lokala modeller (Öppna modell Importera), ladda ner dem från ett nätarkiv (Öppna modell Ladda ner) eller skapa nya från obehandlade filer (Öppna modell Skapa från modellfiler).

Importera en basmodell från Internet

Om du har obehandlade modellfiler skapade av endera gränssnittet för att skapa modeller som stöds, kan du paketera dem i ett SBM-arkiv för att använda med &kmyapplication;.

Skapa basmodeller från obehandlade filer

Det går också att exportera modellen som för närvarande är aktiv genom att välja Exportera aktiv modell. Den exporterade SBM-filen innehåller den fullständiga akustiska modellen (men ignorerar aktuellt sammanhang) som kan delas med andra användare av Simon.

##### Inlärningsdata

Den här delen gör det möjligt att anpassa inlärningssamplingarna.

Inställning av inlärningsdata

Samplingsfrekvensen som anges här är målfrekvensen för den akustiska modellen. Den har inget att göra med inspelningens samplingsfrekvens, och det är användarens ansvar att kontrollera att samplingarna verkligen finns tillgängliga med detta format (oftast genom att spela in i just den samplingsfrekvensen, eller genom att använda efterbehandlingskommandon som samplar om filerna. Se avsnittet om ljudinställningar för mer information).

Oftast byggs och används antingen 16 kHz- eller 8 kHz-modeller. 16 kHz-modeller har bättre noggrannhet än 8 kHz-modeller. Att gå högre än 16 kHz rekommenderas inte eftersom det är väldigt processorkrävande, och i praktiken antagligen inte leder till bättre igenkänningsfrekvens.

Dessutom kan sökvägen till inlärningssamplingarna justeras. Försäkra dig dock om att tidigare insamlade inlärningssamplingar också flyttas till den nya platsen. Om du använder automatisk synkronisering skulle Simond annars också tillhandahålla de saknade samplingarna åt Simon, men att kopiera dem manuellt rekommenderas ändå av prestandaskäl.

##### Språkprofil

I språkprofildelen går det att välja en tidigare skapad eller nerladdad språkprofil för att hjälpa till vid transkribering av nya ord.

Inställning av språkprofil

#### Modellutökningar

Här kan du ställa in bas-webbadressen som ska användas vid automatisk import av BOMP. Den förinställda adressen leder till kopian på servern hos Simon lyssnar.

Modellutökningar

#### Igenkänning

Här kan du anpassa igenkänningen och modellsynkroniseringen med Simond-servern.

##### Server

Under serverinställningarna kan du ange parametrarna för anslutningen till Simond.

###### Allmänt

Simons huvudprogram ansluter till Simond-servern (se arkitekturavsnittet för mer information).

Anpassa server: Allmänt

För att identifiera enskilda användare av systemet (en Simond-server kan givetvis betjäna flera Simon-klienter) använder sig Simon och Simond av användare. Varje användare har sin egen talmodell. Användarnamnet och lösenordet som anges här används för att logga in på Simond. Om Simond inte känner igen användarnamnet, eller om lösenordet inte stämmer, misslyckas anslutningen. Se handbok Simond om hur man lägger till användare i Simond.

Själva igenkänningen, som görs på servern, kanske inte alltid är tillgänglig. Det är till exempel omöjligt att starta igenkänningen så länge användaren inte har en kompilerad akustisk modell och språkmodell, som först måste skapas (vid synkronisering när alla ingredienser finns tillgängliga: ordförråd, grammatik, inlärning). Vid användning av alternativet för att starta igenkänningen automatiskt så snart den är tillgänglig, begär Simon att få starta igenkänningen när information om att den är redo tas emot (när alla nödvändiga komponenter är tillgängliga).

Med alternativet Anslut till servern vid start påbörjar Simon automatiskt anslutningen till de inställda Simond-servrarna efter att inläsningen av användargränssnittet är färdig.

###### Nätverk

Simon som ansluter till Simond via TCP/IP.

Anpassa server: Nätverk

För närvarande stöds kryptering inte ännu (Simon 0.4).

Inställningen av tidsgräns anger hur länge Simon ska vänta på det första svaret när värddatorerna kontaktas. Om du använder ett väldigt långsamt nätverk, och/eller använder anslut vid start på en väldigt långsam dator, kan du behöva öka värdet om du får fel på grund av att tidsgränsen överskrids och kan lösa problemet genom upprepade försök.

Simon stöder att ställas in för att använda fler än en Simond. Det är praktiskt om du exempelvis ska använda Simon på en bärbar dator som ansluter till en annan server beroende på var du befinner dig. Du kan till exempel lägga till servern du använder hemma, och servern du använder på jobbet. Vid anslutning försöker Simon ansluta till var och en av servrarna (i tur och ordning) tills en server hittas som accepterar anslutningen.

För att lägga till en server, ange värdnamn eller IP-adress och portnummer (åtskilda av :) eller använd dialogrutan som visas när du klickar på den blåa pilen intill inmatningsfältet.

##### Synkronisering och säkerhetskopiering av modeller

Här kan du ställa in modellsynkroniseringen och återställa äldre versioner av talmodellen.

Synkronisering och säkerhetskopiering av modeller

Simon skapar indatafiler med tal som sedan kompileras och används av Simond-servern (se avsnittet om arkitektur för mer detaljerad information).

Processen att skicka talindatafilerna, kompilera dem och ta emot de kompilerade versionerna kallas synkronisering. Ändringarna börjar inte gälla förrän talmodellen har synkroniserats och en ny återställningspunkt skapats. Det är orsaken till att Simon normalt alltid synkroniserar modellen med servern när den ändras. Det kallas Automatisk synkronisering och är den rekommenderade inställningen.

Men om du vill ha mer kontroll kan du be Simon att fråga dig innan synkroniseringen startas efter att modellen ändrats, eller förlita dig helt på manuell synkronisering. När du väljer manuell synkronisering måste du manuellt använda menyalternativet Åtgärder Synkroniseringi Simons huvudfönster varje gång du vill kompilera talmodellen.

Simon-servern behåller en kopia av de senaste fem iterationerna av modellfiler. Men det omfattar bara källfilerna (ordförrådet, grammatiken, etc.), inte den kompilerade modellen. Den kompilerade modellen skapas dock automatiskt om från de återställda källfilerna.

Efter du har anslutit till servern kan du välja en av de tillgängliga modellerna och återställa den genom att klicka på Välj modell.

#### Åtgärder

I åtgärdsinställningarna kan du anpassa reaktionerna på igenkänningsresultaten.

##### Igenkänning

Simons igenkänning beräknar inte bara det mest sannolika resultatet, utan istället de tio mest sannolika.

Varje resultat tilldelas ett konfidensvärde mellan 0 och 1 (där 1 är 100 % säkert).

Med Minsta konfidens kan du ange ett minsta konfidensvärde för att igenkänningsresultat ska anses giltiga.

Om fler än ett igenkänningsresultat får högre poäng än det minsta konfidensvärdet visar Simon en lista över de mest sannolika möjligheterna som du kan välja bland.

Menade du ...?

Rutan kan inaktiveras genom att använda kryssrutan Visa informationsruta för val av tvetydiga resultat.

##### Dialogrutans teckensnitt

Många insticksprogram för Simon har ett grafiskt användargränssnitt.

Teckensnitten i dessa gränssnitt kan anpassas centralt här, oberoende av systemets teckensnittsinställningar.

Nummerinmatning med eget teckensnitt

##### Listor

Här hittar du inställningar för globala listelement. Det utgör en mall för nya scenarier, men används också direkt för rutan för tvetydiga igenkänningsresultat.

#### Text-till-tal

Vissa delar av &kmyapplication;, särskilt insticksprogrammet för dialogkommandon, utnyttjar text-till-tal (eller "TTT") för att läsa upp text.

##### Gränssnitt

Flera externa TTT-lösningar kan användas för att låta &kmyapplication; läsa text. Flera gränssnitt kan aktiveras på samma gång och kontrolleras i den inställda ordningen till ett hittas som kan syntetisera det begärda meddelandet.

Följande gränssnitt är tillgängliga:

- Inspelningar

  Istället för ett gränssnitt för att konvertera godtycklig text till tal, kan textfragment spelas in i förväg, och helt enkelt spelas upp igen.

- Jovie

  Använder Jovie TTT-systemet. Det kräver en giltig inställning av Jovie.

- Webbtjänst

  Webbtjänst-gränssnittet kan användas för att kommunicera med vilket TTT-gränssnitt som helst med ett webbgränssnitt som returnerar `.wav`-filer.

TTT: Val av gränssnitt

##### Inspelningar

Istället för att använda ett externt TTT-gränssnitt kan du också spela in dig själv eller någon annan som läser texterna högt. Simon kan därefter spela upp dessa förinspelade fragment när de begärs av dess text-till-tal-gränssnitt.

Dessa inspelade ljudavsnitt organiseras i "uppsättningar" med olika uppläsare som också kan importeras och exporteras för att dela dem med andra användare av &kmyapplication;.

TTT: Inspelningar

##### Webbtjänst

Visa webbtjänstgränssnittet kan &kmyapplication; använda webbaserade TTT-gränssnitt som MARY.

TTS: Webbtjänst

Du kan tillhandahålla vilken webbadress som helst. &kmyapplication; ersätter varje förekomst av "%1" inne i den inställda webbadressen med texten att syntetisera. Gränssnittet förväntar sig att webbtjänsten som anropas returnerar en `.wav`-fil som strömmas och skickas ut via &kmyapplication;s ljudlager, vilket följer inställningen av ljudenheten.

#### Socialt skrivbord

Scenarier kan laddas upp och laddas ner inne i Simon.

Vi använder KDE:s funktioner för socialt skrivbord och vår egen kategori med scenarier för Simon på kde-files.org för det.

Om du redan har ett konto på opendesktop.org kan du mata in användarinformationen här. Annars kan du registrera dig direkt från inställningsmodulen.

Registreringen är förstås utan avgift.

#### Webbkamerainställning

I webbkamerainställningen, kan du ställa in bilder per sekund (fps) och välja vilken webbkamera att använda när fler än en webbkamera är ansluten till systemet.

Webbkamerainställning

Bilder per sekund är hastigheten som webbkameran skapar unika bilder i följd. Det optimala värdet är mellan 5 - 15 för bra prestanda.

#### Avancerat: Manuell justering av igenkänningsparametrarna

Simon är avsedd för slutanvändare. Gränssnittet är utformat för att göra det möjligt även för användare utan bakgrund i talteknologi att utforma sina egna språk- och akustiska modeller genom att ha rimliga förinställningar för enklare användningsområden.

I särskilda fall (till exempel svåra talfel) kan specialanpassning behövas. Därför respekterar Simon även de opåverkade konfigurationsfilerna för igenkänning, och de kan förstås justeras för att passa dina behov.

##### Julius

Det finns i princip två delar i inställningarna av Julius som kan justeras:

- adin.jconf

  Detta är Simon-klientens inställningar av ljudströmmen som skickas från Simon till Simond. Filen läses direkt av adinstreamer.

  Simon levereras med en förinställd adin.jconf utan några särskilda parametrar. Du kan ändra dessa systemomfattande inställningarna, vilket påverkar alla användare, om det finns flera användarkonton på datorn som använder Simon. För att bara ändra inställningarna för en av användarna, kopiera filen till användarens sökväg (se nedan) och redigera denna kopia.

- julius.jconf

  Detta är en inställning av Simond-servern och påverkar igenkänningen direkt. Filen tolkas direkt av libjulius och libsent.

  Simond levereras med en förinställd julius.jconf. När en ny användare läggs till i Simonds databas kopierar Simond automatiskt denna systemomfattande inställning till den nya användaren. Efteråt har användaren förstås full frihet att ändra den, men det påverkar inte andra användare. På så sätt kan mallen (den systemomfattande inställningen) ändras utan att påverka andra användare.

Sökvägen till Julius inställningsfiler beror på plattformen:

##### Julius inställningsfiler

Fil | Microsoft Windows | GNU/Linux
adin.jconf (system) | (installationssökväg)\share\apps\simon\adin.jconf | `kde4-config --prefix`/share/apps/simon/adin.jconf
adin.jconf (användare) | %appdata%\.kde\share\apps\simon\adin.jconf | ~/.kde/share/apps/simon/adin.jconf
julius.jconf (mall) | (installationssökväg)\share\apps\simond\default.jconf | `kde4-config --prefix`/share/apps/simond/default.jconf
julius.jconf (användare) | %appdata%\.kde\share\apps\simond\models\(användare)\active\julius.jconf | ~/.kde/share/apps/simond/models/(användare)/active/julius.jconf

## Avancerat: Skapa nya scenarier med &kmyapplication;

Följande kapitel är inriktat på mer avancerade användare som vill skapa sina egna scenarier.

För allmänna användningsinstruktioner, se kapitlet Använda &kmyapplication;: Typisk användare.

### Inledning

För att lägga till ett nytt scenario skapar du först det nya scenariets "skal" genom att lägga till ett nytt scenario-objekt och därefter öppna det i &kmyapplication;s huvudfönster.

För att istället ändra ett befintligt scenario, måste du förstås bara öppna det.

Ett scenario i &kmyapplication; innehåller följande komponenter:

- Ordförråd

- Grammatik

- Inlärningstexter

- Sammanhang

- Kommandon

Innan beskrivningen av hur dessa element anpassas i Simon, tillhandahåller nästa avsnitt bakgrundsinformation som hjälper till att förstå grundprinciperna i talmodellering. Denna grundläggande kunskap är nödvändig för att kunna konstruera vettiga scenarier.

### Taligenkänning: Bakgrund

Innan vi förklarar exakt hur man kan skapa nya scenarier med Simon, introducerar det här avsnittet några av taligenkänningens allmänna grunder.

Taligenkänningssystem tar röstindata (ofta från en mikrofon) och försöker översätta den till skriven text. För att göra det förlitar de sig på statistiska representationer av mänskliga röster. Enkelt uttryckt: Datorn lär sig hur ord låter, eller snarare ljuden som orden består av.

En talmodell består av två distinkta delar:

- Språkmodell

- Akustisk modell

#### Språkmodell

Språkmodellen definierar ordförrådet och grammatiken du vill använda.

##### Ordförråd

Ordförrådet definierar vilka ord igenkänningsprocessen ska känna igen. Varje ord du vill kunna använda med Simon måste finnas i ordförrådet.

Ett objekt i ordförrådet definierar precis ett ord. I motsats till den vanliga betydelsen av ordet ord innebär ett ord i Simon en unik kombination av följande:

- Ordnamn

  (själva det skrivna ordet)

- Kategori

  (grammatisk kategori; till exempel: substantiv, verb, etc.)

- Uttal

  (hur ordet uttalas; Simon godtar all sorts fonetik, förutsatt att den inte använder specialtecken eller siffror)

Det innebär att plural eller till och med olika kasus är olika ord i Simon. Det är ett viktigt konstruktionsval för att tillåta mer kontroll när en sofistikerad grammatik används.

I allmänhet är det tillrådligt att behålla ordlistan så sparsmakad som möjligt. Ju fler ord, desto större chans att Simon kan missförstå dig.

Exempel på ordförråd (observera att kategorierna har med avsikt satts till substantiv/verb här för att göra det lätt att förstå. Se grammatikavsnittet om varför det kanske inte är en god idé):

##### Ordförrådsexempel

Ord | Kategori | Uttal
Computer (dator) | Substantiv | k ax m p y uw t er
Internet | Substantiv | ih n t er n eh t
Mail (brev) | Substantiv | m ey l
close (stäng) | Verb | k l ow s

###### Aktiv ordlista

Ordlistan som används vid igenkänning kallas den aktiva ordboken eller ordlistan.

###### Skuggordbok

Som nämndes tidigare bör användaren se till att ordförråd/ordbok är så sparsamma som möjligt. Eftersom ett ord i ordförrådet också måste ha information om uttal skulle det dock även vara bra att ha en stor ordbok där det går att slå upp uttal och andra egenskaper hos orden.

Simon tillhandahåller en sådan funktionalitet. Vi kallar denna stora referensordbok för skuggordbok. Denna skuggordbok skapas inte av användaren, men kan importeras från olika källor.

Eftersom Simon är en lösning för flera språk levererar vi inte skuggordböcker med Simon. Det är dock enkelt att själv importera dem med guiden för import av ordböcker. Detta beskrivs i avsnittet Importera ordbok.

###### Språkprofil

Förutom en skuggordbok kan SImon använda en språkprofil för att tillhandahålla hjälp vid transkribering av ord.

En språkprofil består av regler för hur ord uttalas på målspråket. Den kan jämföras med det sätt som människor använder för att ofta uttala ett ord de aldrig hört enbart på grund av att de kan några underförstådda "uttalsregler" för språket.

Precis som med människor är inte processen perfekt, men kan ge en solid startpunkt.

Den automatiska härledningen av en fonemtranskribering från ett skrivet ord kallas "konvertering av grafem till fonem".

Simon kräver att konverteringsprogrammet från grafem till fonem Sequitur G2P är installerat och inställt så att språkprofiler fungerar.

Om du har valt en fördefinierad språkprofil eller skapat din egna, transkriberar Simon automatiskt nya ord med den när de inte hittas i skuggordboken.

##### Grammatik

Grammatiken definiera vilka kombinationer av ord som är riktiga.

Låt oss ta en titt på ett exempel: Simon ska användas för att starta program och stänga dess fönster när du är färdig med dem. Följande kommandon ska användas:

- Computer, Internet för att öppna en webbläsare

- Computer, Mail

  För att öppna ett e-postprogram

- Computer, close

  För att stänga det nuvarande fönstret

Ordlistan skulle innehålla följande, om engelsk grammatik följs:

##### Ordförrådsexempel

Ord | Kategori
Computer (dator) | Substantiv
Internet | Substantiv
Mail (brev) | Substantiv
close (stäng) | Verb

För att tillåta meningarna som definieras ovan, skulle Simon behöva följande grammatik:

- Substantiv Substantiv för meningar som Computer Internet

- Substantiv Verb för meningar som Computer close

Medan det skulle fungera, tillåter det också kombinationerna Computer Computer, Internet Computer, Internet Internet och så vidare, vilka givetvis inte är rimliga. För att förbättra igenkänningsnoggrannheten kan vi försöka skapa en grammatik som bättre speglar vad vi försöker göra med Simon.

Det är viktigt att komma ihåg att du definierar ett eget språk när du använder Simon. Det innebär att du inte är bunden till de grammatikregler som finns i vilket språk du än vill använda Simon med. Med ett enkelt användningsområde för styrning och kontroll, skulle det exempelvis vara lämpligt att hitta på nya grammatiska regler för att eliminera skillnaderna mellan olika kommandon som kommer från grammatisk information som inte är relevant för detta användningsområde.

I exemplet ovan är det exempelvis inte relevant att close är ett verb, eller att Computer och Internet är substantiv. Varför inte istället definiera dem som något som bättre stämmer överens med vad vi vill att de ska vara:

##### Förbättrad exempelordlista

Ord | Kategori
Computer (dator) | Utlösare
Internet | Kommando
Mail (brev) | Kommando
close (stäng) | Kommando

Nu ändrar vi grammatiken till följande:

- Trigger Command

Det möjliggör alla kombinationer som beskrevs ovan, men det begränsar också möjligheterna till exakt dessa tre meningar. Särskilt i större modeller kan en väl genomtänkt grammatik och ordförråd innebära en enorm skillnad för igenkänningsresultaten.

#### Akustisk modell

Den akustiska modellen representerar ditt uttal på ett maskinläsbart format.

Låt oss ta en titt på följande ordförrådsexempel:

#### Ordförrådsexempel

Ord | Kategori | Uttal
Computer (dator) | Substantiv | k ax m p y uw t er
Internet | Substantiv | ih n t er n eh t
Mail (brev) | Substantiv | m ey l
close (stäng) | Verb | k l ow s

Uttalet av varje ord består av separata ljud som delas upp av mellanrum. Exempelvis består ordet close (stäng) av följande ljud:

- k

- l

- ow

- s

Den akustiska modellen använder sig av det faktum att talade ord består av ljud i stort sätt som skrivna ord består av bokstäver. Genom att använda denna kunskap kan vi dela upp ord i ljud (som representeras av uttalet) och sätta ihop dem igen vid igenkänning. Dessa byggblock kallas fonem.

Eftersom den akustiska modellen faktiskt representerar hur du säger ordens fonem, delas inlärningsmaterial mellan alla ord som använder samma fonem.

Det betyder att om du lägger till ordet clothes (kläder) i språkmodellen har den akustiska modellen redan en idé om hur delen clo kommer låta, eftersom de delar samma fonem (k, l, ow) i början.

För att lära upp den akustiska modellen (med andra ord tala om hur du uttalar fonemen) måste du lära den ord från din språkmodell. Det innebär att Simon visar ett ord som du ska läsa upp. Eftersom ordet finns i ditt ordförråd vet Simon redan vilka fonem det innehåller, och kan således lära sig från ditt uttal av ordet.

### Scenarier

Det här avsnittet utökar det tidigare om grundläggande hantering av scenarier och talar om hur man skapar, redigerar och exporterar scenarier.

Hantera scenarier

#### Hierarkier av scenarier

Det går att skapa hierarkier av scenarier genom att dra och släppa aktiva scenarier ovanpå varandra.

Hantera scenarier: Hierarkier av scenarier

Hierarkier av scenarier tjänar två syften:

- Sammanhangssystemet respekterar hierarkier av scenarier: Om ett överliggande scenario inaktiveras, blir också alla dess underliggande scenarier inaktiverade.

- Om du försöker exportera ett scenario som har underliggande scenarier, låter &kmyapplication; dig exportera dem i ett gemensamt scenariopaket. På så sätt kan du dela flera logiskt medberoende scenarier (t.ex. ett "kontorsscenario" som innehåller flera delscenarier för "Word", "Excel", etc.).

#### Lägga till ett nytt scenario

Använd knappen Lägg till för att lägga till ett nytt scenario. En ny dialogruta visas då.

Lägg till scenario

När ett nytt scenario skapas, ge det helst ett begripligt namn. Om du senare laddar upp det till KDE files, ber vi dig följa en viss namngivningspraxis, även om det givetvis inte är ett krav: [<språk>/<basmodell>] <namn>. Om du till exempel skapar ett scenario på engelska som fungerar med basmodellen Voxforge och styr Mozilla Firefox blir det: [EN/VF] Firefox. Om scenariet inte är anpassat till en fonemuppsättning (basmodell), utelämna bara den andra beteckningen på detta vis: [EN] Firefox.

Scenarioversionen är bara ett versionsnummer som räknas upp och gör det lättare att skilja på olika utgåvor av ett scenario.

Om scenariet kräver en särskild funktion i Simon (om exempelvis ett nytt insticksprogram används) kan du definiera minsta och största versionsnummer för Simon här.

Scenariets licens kan anges via kombinationsrutan. Du kan naturligtvis också lägga till en godtycklig licenstext i inmatningsfältet.

Därefter kan du lägga till ditt namn (eller alias) i listan med scenarioupphovsmän. Där blir du också tillfrågad om kontaktinformation. Fältet tillhandahålls enbart som ett bekvämt sätt att kontakta en scenarioupphovsman angående ändringar, problem, beundrarbrev, etc. Om du inte känner dig bekväm med att tillhandahålla din e-postadress kan du helt enkelt skriva in ett streck - som anger att du inte är villig att dela med dig av denna information.

#### Redigera scenario

Använd bara Redigera i dialogrutan Hantera scenarier för att redigera scenarier.

Dialogrutan fungerar på exakt samma sätt som dialogrutan lägg till scenario.

#### Exportera scenario

Scenarier kan exporteras till en lokal fil med Simons XML-filformat för scenarier och kan laddas upp direkt till kategorin Simon Scenarios på OpenDesktop-sidan KDE-files.org.

För att ladda upp till OpenDesktop-sidor måste du ha ett konto där. Registrering är mycket enkel, och naturligtvis utan kostnad.

Simon låter dig direkt ladda upp nytt innehåll inifrån i Simon (Exportera - Publicera).

Guiden för uppladdning av scenarier: 1 av 4

Guiden för uppladdning av scenarier: 2 av 4

Guiden för uppladdning av scenarier: 3 av 4

Guiden för uppladdning av scenarier: 4 av 4

För att komma åt denna funktionalitet, skriv helt enkelt in din användarinformation under inställningarna för socialt skrivbord i Simons inställningar.

### Ordförråd

Ordlistemodulen definierar scenariets orduppsättning. Simons ordlista

Normalt visas den aktiva ordlistan. För att visa skuggordlistan, välj fliken Skuggordlista.

Varje ord visar dess igenkänningsfrekvens, vilket för närvarande bara är en räknare av hur ofta ordet har spelats in (ensamt eller tillsammans med andra ord).

Skuggordförråd

#### Lägga till ord

Använd ordtilläggsguiden för att lägga till nya ord i den aktiva ordlistan.

Lägga till ord i Simon är i huvudsak en tvåstegsprocedur:

- Definiera ordet

- Inledande inlärning

##### Definiera ordet

Först blir användaren tillfrågad om viket ord som ska läggas till. Välj ordet att lägga till

När användaren går till nästa sida försöker Simon automatiskt hitta så mycket information om ordet som möjligt i skuggordboken.

Om ordet listas i skuggordboken, fyller Simon automatiskt i alla nödvändiga fält (kategori och uttal). Fält som automatiskt fylls i av skuggordboken

Alla förslag från skuggordboken räknas upp i tabellen Liknande ord. Normalt visas bara exakta ordträffar. Det kan dock ändras genom att markera kryssrutan Inkludera liknande ord under förslagstabellen. Genom att använda liknande ord kan du snabbt gissa dig till det korrekta uttalet av ordet du faktiskt försöker lägga till. Se nedan för detaljerad information.

Detta beror förstås i själva verket på skuggordboken. Om skuggordboken inte innehåller ordet du försöker lägga till måste de nödvändiga fälten fyllas i manuellt.

Vissa ordböcker som kan importeras med Simon (SPHINX, HTK) skiljer inte mellan stora och små bokstäver. Förslag som baseras på dessa ordböcker visas alltid med stora bokstäver. Du får förstås ändra förslagen till rätt skiftläge.

Vissa ordböcker som kan importeras med Simon (SPHINX, PLS och HTK) tillhandahåller ingen grammatisk information alls. Dessa kommer tilldela alla orden till kategorin Okänd. Du bör ändra det till något lämpligt när dessa ord läggs till.

###### Välja en kategori manuellt

Ordets kategori definieras som den grammatiska kategori ordet tillhör. Det kan vara Substantiv, Verb eller helt nya kategorier, som Kommando. För mer information, se grammatikavsnittet.

Listan innehåller alla kategorier som används både i den aktiva och skuggordboken samt i grammatiken.

Du kan lägga till nya kategorier i kombinationsrutan genom att använda det gröna plustecknet intill den.

###### Manuellt tillhandahålla en fonetisk transkribering

Uttalet är lite knepigare. Simon behöver inte en viss typ av fonetik, så du får använda vilken metod du vill, så länge som den bara använder ASCII-tecken och inga siffror. Om du däremot vill använda en skuggordbok, och vill använda den till dess fulla potential, ska du använda samma fonetik som skuggordboken.

Om du inte vet hur ett ord ska transkriberas själv kan du enkelt ta hjälp av skuggordboken, även om ordet inte listas i den. Låt oss säga att vi vill lägga till ordet Firefox (för att starta Firefox), vilket förstås inte finns i vår skuggordbok.

(Jag importerade den engelska voxforge HTK-ordboken från voxforge som skuggordbok.)

Firefox listas inte i vår skuggordbok, så vi får inga förslag alls. Lägga till ett okänt ord

Vi vet dock att firefox låter som fire och fox tillsammans. Så låt oss bara öppna ordförrådet (du kan låta guiden vara öppen) genom att välja Ordförråd i Simons huvudverktygsrad.

Byt till skuggordlistan genom att klicka på fliken Skuggordlista.

Använd rutan Filter ovanför listan för att söka efter Fire: Lägga till ett okänt ord: Sök efter uttalet

Vi kan se att ordet Fire transkriberas som f ay r. Filtrera nu för fox istället för Fire så ser vi att Fox transkriberas som f ao k s. Vi kan anta att firefox då bör transkriberas som f ay r f ao k s.

Att använda den här metoden för att sluta sig till uttalet från ordets delar har den definitiva fördelen att vi inte bara får en transkribering av hög kvalitet, utan också automatiskt använder samma fonemuppsättning som de andra orden som hämtades korrekt ur skuggordboken.

Nu kan vi mata in uttalet och ändra kategorin till någonting lämpligt. Helt definierat ord

##### Inlärning av ordet

För att slutföra guiden kan vi nu lära in ordet två gånger. Om du inte vill göra det, eller exempelvis använder en statisk basmodell, kan du hoppa över dessa två sidor.

Eftersom du just ska spela in några inlärningssamplingar visar Simon volymkalibreringen för att säkerställa att mikrofonen är riktigt inställd. För mer information, se avsnittet om volymkalibrering.

Simon försöker fråga dig om exempel ur verkliga livet. För det ändamålet hämtar Simon automatiskt grammatikstrukturer genom att använda ordets kategori, och byta ut de generella kategorierna mot exempelord ur den aktiva ordboken.

Exempel: Du har grammatikstrukturen Utlös Kommando, och ordet Dator för kategorin Utlös i ordförrådet. Du lägger sedan till ett nytt ord, Firefox i kategorin Kommando. Simon frågar dig nu automatiskt om Dator Firefox eftersom det är en giltig mening enligt grammatiken.

Om Simon inte kan hitta lämpliga meningar som använder ordet (dvs. ingen grammatik, inte tillräckligt med ord i den aktiva ordboken, etc.) efterfrågas bara själva ordet.

Även om Simon ser till att de automatiskt skapade exemplen är giltiga, kan du alltid åsidosätta förslagen. Byt helt enkelt till fliken Exempel på sidan Definiera ord. Redigera ordexempel

Du får ändra de exemplen till vad du än vill. Du kan till och med gå så långt som att använda ord som ännu inte finns i den aktiva ordboken, förutsatt att du lägger till dem innan du synkroniserar modellen, även om det inte rekommenderas.

Allt som återstår är att spela in exemplen. Inspelning

Försäkra dig om att du följer riktlinjerna angivna i inspelningsavsnittet.

#### Redigera ett ord

Markera helt enkelt ett ord i ordlistan och klicka på Redigera för att redigera ett ord.

Redigera ord

Där kan du ändra namn, kategori och uttal av det valda ordet.

#### Ta bort ett ord

Markera ett ord i ordlistevyn och klicka på Ta bort för att ta bort det från språkmodellen. Inspelning

Dialogrutan erbjuder fyra val:

- Flytta ordet till kategorin Oanvänd.

  Eftersom du (förhoppningsvis) inte använder kategorin Oanvänd i grammatiken, kommer ordet inte längre användas vid igenkänning. Det kommer i själva verket tas bort från det aktiva ordförrådet innan modellen kompileras, eftersom ingen grammatisk mening hänvisar till det.

  Om du vill använda kategorin Oanvänd i grammatiken kan du förstås använda en annan kategori för oanvända ord. Ange då kategorin i dialogrutan Redigera ord.

  Ange bara rätt kategori igen för att återanvända ordet. Ingen data går förlorad.

- Flytta ordet till skuggordboken

  Det tar bort det markerade ordet från den aktiva ordboken (och därigenom från igenkänningen) men behåller en kopia i skuggordboken. Alla inspelningar som innehåller ordet bevaras.

  Lägg åter till ordet i det aktiva ordförrådet för att använda det igen. När ett nytt ord med samma namn läggs till, visas värdena för det flyttade ordet som ett förslag. Därför kommer ingen data att gå förlorad.

- Ta bort ordet men behåll samplingarna

  Tar bort ordet fullständigt men behåller associerade samplingar. Så fort du lägger till ett annat ord med samma ordnamn associeras samplingarna igen.

  Var försiktig med det här alternativet, eftersom det nya ordet du lägger till igen kan ha transkriberats annorlunda, och denna skillnad kan inte automatiskt tas hänsyn till (Simon försöker därefter påtvinga de gamla inspelningarna den nya transkriberingen vid modellkompilering).

  Använd inte alternativet om samplingarna du spelade in för ordet var felaktiga.

- Ta bort ordet fullständigt

  Ta bara bort ordet. Alla inspelningar som innehåller ordet kommer också att tas bort.

  Alternativet lämnar inga spår av vare sig ordet själv eller de associerade samplingarna.

  Eftersom samplingar är globala (inte tilldelade till scenarier), kan också samplingar som spelats in vid inlärningssessioner för andra scenarier tas bort om de innehåller ordet. Använd alternativet med försiktighet.

#### Särskild inlärning

Se avsnittet om särskild inlärning i inlärningsavsnittet.

#### Importera en ordbok

Simon tillhandahåller funktionalitet för att importera stora ordböcker som referens. Denna referensordbok kallas skuggordbok.

När användaren lägger till ett nytt ord i modellen, måste följande karaktäristik definieras för att definiera ordet:

- Ordnamn

- Kategori

- Fonetisk definition

Dessa egenskaper tas ur skuggordboken om det innehåller ordet ifråga. En stor skuggordbok av hög kvalitet kan därför hjälp användaren att enkelt lägga till nya ord i modellen utan att behöva hålla ordning på fonemuppsättningen, och i många fall till och med göra det möjligt att glömma att den fonetiska transkriptionen över huvud taget behövs.

Importera ordbok: Inledning

Sedan version 0.3 kan ordböcker också importeras direkt till den aktiva ordboken. Alternativ finns i huvudsak för att göra det enklare att byta till Simon från egna lösningar, och för att uppmuntra till import av äldre modeller (exempelvis en som användes med Simon 0.2). Man vill nästan aldrig importera en mycket stor ordbok som aktiv ordbok.

En lista med tillgängliga ordböcker som fungerar med Simon finns på Simons Wiki.

Simon klarar av att importera fem olika typer av ordbok:

- HADIFIX

- HTK

- PLS

- SPHINX

- Julius

##### HADIFIX ordbok

Simon kan importera HADIFIX ordböcker.

Ett exempel på en HADIFIX-ordbok är den tyska HADIFIX BOMP.

HADIFIX ordböcker tillhandahåller både kategorier och uttal.

På grund av ett särskilt undantag i deras licens, är Simon lyssnar-gruppen stolt över att kunna erbjuda dig att direkt ladda ner den utmärkta HADIFIX BOMP inne i Simon.

Importera ordbok: Automatisk import från BOMP

Genom att använda automatisk import av BOMP kan du direkt ladda ner och importera ordboken från servern hos Simon lyssnar, efter att ha uppgett namn och e-postadress för gruppen på Bonns universitet.

##### HTK-ordbok

Simon kan importera HTK-lexikon.

Ett exempel på en HTK-ordbok är den engelska Voxforge ordboken.

HADIFIX-ordböcker tillhandahåller uttalsinformation men inga kategorier. Alla ord blir tilldelade kategorin Okänd.

##### PLS-ordbok

Simon kan importera PLS ordböcker.

Ett exempel på en PLS-ordbok är den tyska GPL-ordboken från Voxforge.

PLS-ordböcker tillhandahåller uttalsinformation men inga kategorier. Alla ord blir tilldelade kategorin Okänd.

##### SPHINX-ordbok

Simon kan importera SPHINX ordböcker.

Ett exempel på en SPHINX-ordbok är den här ordboken för mexikansk spanska.

SPHINX-ordböcker tillhandahåller uttalsinformation men inga kategorier. Alla ord blir tilldelade kategorin Okänd.

##### Julius-ordbok

Simon kan importera Julius ordlistor.

Ett exempel på en Julius-ordlista är ordlistorna från Simon 0.2.

Julius-ordböcker tillhandahåller uttalsinformation samt information om kategori.

#### Skapa språkmodell

Här kan du skapa en språkprofil från skuggordboken.

Skapa språkmodell

Efter att ha valt Skapa profil kommer &kmyapplication; analysera den nuvarande skuggkatalogen och försöka sluta sig till transkriberingsreglerna från den.

Detta är i allmänhet en mycket långvarig process, och kan ta upp till flera timmar, beroende på skuggordboken.

Den skapade profilen väljes automatiskt efter att processen är klar.

### Grammatik

Simon tillhandahåller ett lättanvänt textbaserat gränssnitt för att ändra grammatiken. Du kan helt enkelt lista alla tillåtna meningar (utan skiljetecken, förstås) som de beskrivs ovan. Grammatik

När en mening markeras till vänster, visar högerrutan automatiskt möjliga riktiga meningar med orden i din ordlista till höger.

Exempelavsnittet listar som mest 35 exempel, så om fler meningar än så matchar det markerade grammatikobjektet kanske listan inte är fullständig.

#### Importera en grammatik

Utöver att skriva in din önskade grammatik mening för mening kan Simon automatiskt sluta sig till tillåtna grammatikstrukturer genom att läsa vanlig text med guiden Importera grammatik. Importera grammatik

Simon kan läsa och importera textfiler, men tillhandahåller också ett inmatningsfält om du helt enkelt vill skriva in texten i Simon.

Låt oss säga att vi har en ordlista som den i det allmänna avsnittet ovan:

#### Förbättrad exempelordlista

Ord | Kategori
Computer (dator) | Utlösare
Internet | Kommando
Mail (brev) | Kommando
close (stäng) | Kommando

Vi vill att Simon ska känna igen meningen Computer Internet!. Så vi skriver antingen in texten med alternativet Importera text, eller skapar en enkel textfil med innehållet: Computer Internet! (alla skiljetecken fungerar) och sparar den som `simongrammar.txt` för att använda med alternativetImportera filer. Importera grammatik: Ange text Importera grammatik: Textfil Importera grammatik: Välj filer

Simon läser sedan den inskrivna texten, eller alla angivna textfiler (i detta fall är den enda angivna textfilen `simongrammar.txt`) och slår upp varje ord i både den aktiva ordboken och skuggordboken (definitionen i den aktiva ordboken har större vikt, om ordet är tillgängligt i båda). Därefter ersätts ordet med dess kategori.

I vårt exempel skulle det innebära att meningen Computer Internet skulle hittas. och Simon skulle få reda på att Computer tillhör kategorin Trigger och att Internet tillhör kategorin Command. Därför lär sig Simon att Trigger Command är en giltig mening, och lägger till den i sin grammatik.

Importen segmenterar automatiskt indatatexten enligt skiljetecken (., -, !, etc.), så vilken vanlig text som helst bör fungera. Importen sammanfogar automatiskt duplicerade meningsstrukturer (till och med mellan olika filer) och lägger till flera meningar (alla möjliga kombinationer) när ett ord har flera kategorier tilldelade till sig.

Importen ignorerar meningar där ett eller flera ord inte kunde hittas i språkmodellen om du inte markerar kryssrutan Importera också okända meningar, i vilket fall dessa ord ersätts med Okänd.

#### Byta namn på kategorier

Guiden för namnbyte av kategorier låter dig byta namn på kategorier både i den aktiva ordlistan, skuggordboken och grammatiken. Byt namn på kategori

#### Sammanfoga kategorier

Guiden för att sammanfoga kategorier låter dig sammanfoga två kategorier till en ny kategori i både den aktiva ordboken, skuggordboken och grammatiken. Sammanfoga kategori

Funktionen är särskilt användbar om du vill förenkla grammatikstrukturen.

### Inlärning

Genom att använda inlärningsmodulen kan du förbättra den akustiska modellen.

Gränssnittet listar alla installerade inlärningstexter i en tabell med tre kolumner:

- Namn

  Ett beskrivande namn på texten.

- Sidor

  Antal sidor texten består av. Varje sida representerar en inspelning.

- Igenkänningsfrekvens

  Motsvarighet till ordförrådet. Representerar sannolikheten för att Simon ska känna igen orden (högre är bättre). Igenkänningsfrekvensen för inlärningstexten är den genomsnittliga igenkänningsfrekvensen för alla ord i texten.

Inlärning

För att förbättra den akustiska modellen, och därigenom igenkänningsfrekvensen, måste du spela in inlärningstexter. Det innebär att Simon i princip får tillgång till två viktiga delar:

- Samplingar av din röst

- Transkriberingar av samplingarna

Den aktiva ordboken används för att transkribera orden som texten består av (avbilda dem från det faktiska ordet till dess fonetiska transkribering), så alla ord som finns i inlärningstexten du vill läsa in (lära in) måste finnas i den aktiva ordboken. Simon varnar dig om så inte är fallet, och ger dig möjligheten att lägga till alla de saknade orden på en gång.

Inlärning: Varning om saknade ord

Proceduren är den samma som om du skulle lägga till ett enstaka ord, men guiden frågar automatiskt efter information och inspelningar för alla saknade ord. Proceduren kan avbrytas när som helst, och Simon tillhandahåller ett sätt att lägga till alla redan fullständigt definierade ord eller ångra alla hittills gjorda ändringar. När användaren har lagt till alla ord som frågas efter (alla saknade ord), sparas ändringarna av den aktiva ordboken/ordförrådet, och inlärningen av den tidigare markerade texten startar automatiskt.

Inlärningen (uppläsningen) av inlärningstexten fungerar på exakt samma sätt som den inledande inlärningen när ett nytt ord läggs till.

Försäkra dig om att du följer riktlinjerna angivna i inspelningsavsnittet.

Inlärning pågår

#### Lagringskataloger

Inlärningstexter lagras på två olika ställen:

- Linux: `~/.kde/share/apps/simon/texts`

  Windows: `%appdata%\.kde\share\apps\simon\texts`

  Den nuvarande användarens texter. Kan tas bort och läggas till med Simon (se nedan).

- Linux: ``kde4-config --prefix`/share/apps/simon/texts`

  Windows: `(install folder)\share\apps\simon\texts`

  Systemomfattande texter. De visas för varje användarkonto som använder Simon på den här datorn och kan inte raderas inne i Simon, naturligtvis på grund av åtkomstbegränsningarna för systemfiler.

  Katalogen kan användas av systemadministratörer för att tillhandahålla en gemensam uppsättning inlärningstexter för alla användare på ett system.

XML-filerna (en för varje text) kan bara flyttas från en plats till en annan, men det kräver troligtvis rättighet som systemadministratör.

#### Lägga till texter

Guiden för import av inlärningstexter Guiden för tillägg av texter tillhandahåller ett enkelt sätt att lägga till nya inlärningstexter i Simon.

När textfiler importeras försöker Simon automatiskt känna igen enskilda meningar och dela upp texten i lämpliga sidor (inspelningar). Algoritmen behandlar text mellan normala skiljetecken (., !, ?, ..., ",...) och radbrytningar som meningar. Varje mening visas på en egen sida.

Simon stöder två olika källor för nya inlärningstexter.

##### Lägg till inlärningstexter

Guiden för import av inlärningstexter: Lägg till inlärningstexter Skriv helt enkelt in inlärningstexten i ett inmatningsfält.

##### Lokala textfiler

Guiden för import av inlärningstexter: Lokala textfiler Simon kan importera normala textfiler för att använda dem som inlärningstexter.

#### Inlärning i farten

Förutom inlärningstexter, tillåter Simon också inlärning av enstaka ord eller kombinationer av ord i farten.

Funktionen finns i Simons ordlistemeny

Särskild inlärning: Välja orden

Välj orden att lära in från ordförrådet till vänster och dra dem helt enkelt till markeringslistan till höger (du skulle också kunna markera dem i tabellen till vänster och lägga till dem genom att klicka på Lägg till i inlärning).

Starta inlärningen genom att välja Lär valda ord. Inlärningen själv är exakt samma som om den vore en förberedd inlärningstext.

Särskild inlärning: Inlärning av orden

Om det finns mer än nio ord att lära in, delar Simon automatiskt texten jämnt över flera sidor.

Du kan förstås lägga till ord från skuggordboken i listan med ord att lära in, men Simon ber dig lägga till orden innan inlärningen startar, precis som om du skulle lära in en text som innehåller okända ord (se ovan).

### Sammanhang

&kmyapplication; innehåller ett sammanhangslager som låter Simon automatiskt anpassa sin inställning, beroende på sammanhanget.

Man kan exempelvis ställa in &kmyapplication; att bara tillåta kommandon som "Ny flik" om Mozilla Firefox kör och är fönstret som för närvarande är aktivt.

Det finns tre huvudområden som sammanhangsinformation kan påverka:

- Val av scenario

- Samplingsgrupper

- Aktiva mikrofoner

#### Val av scenario

Scenarier kan ange att de bara ska vara aktiva under vissa sammanhangsberoende situationer. Om dessa omständigheter inte är uppfyllda, inaktiverar &kmyapplication; tillfälligt de påverkade scenarierna.

Scenariesammanhang

Scenariets lokala sammanhangsvillkor visas i listan Aktiveringskrav och kan läggas till, redigeras och tas bort via respektive knapp.

Sammanhangsvillkoren följer en eventuell hierarki av scenarier: Aktiveringskraven för alla direkta eller indirekta överliggande scenarier gäller också för de underliggande scenariot eller scenarierna. Detta "arv" av villkor visas på höger sida.

Huvudfönstret i &kmyapplication; visar också en lista med scenarier som för närvarande används. Scenarier som är inaktiverade på grund av sina aktiveringskrav (sammanhangsvillkor) listas med ljusgrått och kursiv stil. I skärmbilden nedan visas exempelvis ett tillfälligt inaktiverat Amarok-scenario.

Identifiera inaktiverade scenarier

Samma visuella ledtrådar (grå, kursiv stil för aktiveringskriterier som inte uppfylls) gäller också för enskilda sammanhangsvillkor i den sammanhangsberoende menyn.

#### Samplingsgrupper

Varje sampling som spelas in med Simon tilldelas till en samplingsgrupp. Samplingsgrupper kan ställas in att bara användas för att bygga akustiska modeller när vissa sammanhangsberoende villkor är uppfyllda. Om det inte är fallet, tas alla samplingar märkta med den inaktiverade samplingsgruppen tillfälligt bort från inlärningsmaterialet.

För mer information, ett exempel på användarfall, och instruktioner om hur man arbetar med samplingsgrupper, se avsnittet om samplingsgrupper.

#### Sammanhangsvillkor

I Simon övervakas sammanhang via en uppsättning insticksprogram med sammanhangsvillkor.

I allmänhet kombineras sammanhangsvillkor via en "och"-association. Om aktiveringen av en resurs exempelvis är kopplad till två villkor A och B, aktiveras den bara om både villkoren A och B är uppfyllda. För att istället modellera alternativ ("A eller B eller båda"), använd en eller-villkorsassociation.

Alla villkor kan valfritt inverteras. Att invertera ett villkor betyder att det utvärderas till sant om det annars skulle ha utvärderats till falskt och vice versa.

##### Aktivt fönster

Sant om namnet på fönstret i förgrunden som för närvarande är aktivt matchar det angivna fönsternamnet.

Aktivt fönstervillkor

##### D-Bus

D-Bus villkorsinsticksprogrammet gör det möjligt att övervaka program från tredje part som exporterar tillståndsinformation via D-Bus.

Det övervakade programmet måste tillhandahålla två metoder: En signal för att underrätta om ändringar, och en annan metod som returnerar det aktuella tillståndet.

D-Bus villkor

Skärmbilden ovan ställer exempelvis in ett D-Bus villkor som utvärderas till sant när musikspelaren "Tomahawk" spelar och till falskt annars.

##### Ansiktsdetektering

Villkoret för ansiktsdetektering utvärderas till sant om &kmyapplication;s synlager har identifierat att en person sitter framför den inställda webbkameran.

Villkor för ansiktsdetektering

##### Filinnehåll

Detta villkorsinsticksprogram returnerar sant om den angivna filen innehåller det angivna innehållet.

Filen kommer att övervakas efter ändringar.

Villkor för filinnehåll

##### Läppdetektering

Villkoret för läppdetektering utvärderas till sant om &kmyapplication;s synlager har identifierat att en person sitter framför den inställda webbkameran och säger någonting (läpparna rör sig).

Villkor för läppdetektering

Inlärning av läppdetektering försöker bestämma det optimala värdet för detekteringens känslighet genom att övervaka dina läpprörelser. För bättre noggrannhet vid läppdetektering, sluta inlärningen när skjutreglagets känslighetsvärde är nästan konstant under inlärningen.

##### Eller-villkorsassociation

Eller-villkorsassociation gör det möjligt att ställa in ett metavillkor som rapporterar att det är uppfyllt så snart ett eller flera av dess ingående villkor utvärderas som sanna.

Eller-villkorsassociation kan ha ett godtyckligt antal ingående villkor, som till och med också kan vara eller-villkorsassociationer.

Eller-villkorsassociation

##### Öppnad process

Det är uppfyllt om en process kör med det tillhandahållna namnet på den körbara filen.

Villkor för öppnad process

### Kommandon

När Simon är aktivt och känner igen något, skickas igenkänningsresultatet till de laddad kommandoinsticksprogrammen (i ordning) för behandling.

Simons kommandodialogruta

Kommandosystemet kan jämföras med en grupp fabriksarbetare. Var och en vet hur man utför en viss uppgift (t.ex. kan Karl starta ett program, och Johan kan öppna en katalog, etc.). Så fort Simon känner igen något skickas det till Karl som kollar om instruktionen gäller honom. Om han inte vet vad han ska göra med den skickas den vidare till Johan, och så vidare. Om ingen av de inlästa insticksprogrammen vet hur indata ska hanteras, ignoreras den. Ordningen som igenkänningsresultatet skickas till de individuella kommandona (personerna) ställs in i kommandoalternativen (Kommandon > Hantera insticksprogram).

Simons inställning av åtgärder

Varje insticksprogram kan associeras med en utlösare. Genom att använda utlösare kan ansvaret hos varje insticksprogram enkelt delas upp.

Med fabriksarbetarabstraktionen ovan kan det jämföras med att säga namnet på den som ska behandla din begäran. Så istället för Öppna min hemkatalog säger du Johan, öppna min hemkatalog, och Johan (insticksprogrammet som ansvarar för att öppna kataloger) vet omedelbart att begäran är riktad till honom.

I praktiken skulle du kunna göra så att kommandon som det körbara kommandot Firefox öppnar den välkända webbläsaren, och att platskommandot Google öppnar söktjänsten på Internet. Om du tilldelar utlösaren Start till insticksprogrammet för körning och utlösaren Open till platskommandot, skulle du behöva säga Start Firefox (istället för bara Firefox om du inte använder en utlösare för insticksprogrammet för körning)och Open Google för att gå till söktjänsten (istället för bara Google).

Utlösare är förstås inget krav, och du kan lätt använda Simon utan att definiera några utlösare för insticksprogram (även om många insticksprogram inkluderar den förvalda utlösaren Computer, som du skulle behöva ta bort). Men även om du bara använder en utlösare för alla kommandon (som Computer för att säga Computer, Firefox och Computer, Google) har det fördelen att avsevärt minska antalet felaktiga positiva resultat.

Simons kommandodialogruta visar den fullständiga frasen som associeras med ett kommando i det övre högra hörnet i kommandoinställningen.

Du kan ladda flera instanser av ett insticksprogram, till och med i ett scenario. Varje instans kan naturligtvis också ha olika insticksprogramutlösare.

Varje kommando har ett namn (för utlösning av dess utförande), en ikon och fler fält beroende på insticksprogrammets typ (se nedan).

Vissa kommandoinsticksprogram kan tillhandahålla inställningar av själva insticksprogrammet (inte för de kommandon det innehåller). Dessa inställningssidor placeras direkt i inställningsdialogrutan för åtgärder (under menyalternativet Allmänt) när det associerade insticksprogrammet läses in.

Insticksprogram som tillhandahåller ett grafiskt användargränssnitt (som exempelvis kommandoinsticksprogrammet för nummerinmatning) kan anpassas genom att ställa in Röstkommandon. Du kan till exempel ändra det associerade ordet som utlöser knappen, men också ändra den ikon som visas, etc. Om du tar bort alla röstkommandon för gränssnittet från ett grafiskt element kommer elementet döljas automatiskt.

Kommandon för röstgränssnittet läggs till precis som normala kommandon via kommandoinställningen.

Anpassa röstgränssnittets kommandon

För att lägga till ett nytt gränssnittskommando till en funktion, välj den åtgärd du vill associera med ett kommando, klicka på Skapa från åtgärdsmall och anpassa det resulterade kommandot enligt dina behov.

Vissa insticksprogram (till exempel skrivbordsrutnät eller räknaren) kan också tillhandahålla ett menyalternativ i menyn Åtgärder.

Kommando inläst i huvudfönstret

Scenarier kan valfritt definiera ett kommando som omedelbart körs när scenariet initieras. Om du kräver att mer än ett kommando körs automatiskt, överväg att använda ett sammansatt kommando. Kommando att köra automatiskt

Kommandoutlösare kan innehålla platsmarkörer på formen "%<index>", som hänvisar till ett godtyckligt enstaka ord, eller "%%<index>" som beskriver ett eller flera utelämnade ord. Exempelvis matchas igenkänningsresultatet "Nästa fönster" av utlösarna "Nästa %1", "Nästa %%1" och "%%1", men inte av utlösarna "%1", "Nästa fönster %1", "%%1 nästa fönster".

#### Körbara kommandon

Körbara kommandon associeras med en körbar fil (program), som startas när kommandot utförs.

Körbara kommandon

Argument till kommandon stöds. Om antingen sökvägen till den körbara filen eller parametrarna innehåller mellanslag, måste de omslutas av citationstecken.

Givet den körbara filen `C:\Program\Mozilla Firefox\firefox.exe` och den lokala HTML-filen `C:\test fil.html` skulle den korrekta raden för Körbar fil vara: `"C:\Program\Mozilla Firefox\firefox.exe" "C:\test fil.html"`.

Arbetskatalogen definierar var processen ska startas från. Med arbetskatalogen `C:\katalog` skulle kommandot `"C:\Program\Mozilla Firefox\firefox.exe" fil.html` få Firefox att leta efter filen `C:\katalog\fil.html`.

Arbetskatalogen behöver oftast inte ställas in och kan för det mesta lämnas tom.

##### Importera program

För ännu enklare inställning, tillhandahåller Simon en importdialogruta som låter dig direkt välja program i KDE:s meny.

Alternativet är inte tillgängligt på Microsoft Windows.

Importera program

Dialogrutan listar alla program som har ett alternativ i KDE:s programmeny i sina respektive kategorier.

Delkategorier stöds inte, och listas sålunda på samma nivå som toppnivåkategorierna.

Välj bara programmet du vill starta med Simon och klicka på Ok. De korrekta värdena för den körbara filen och arbetskatalogen, såväl som ett lämpligt kommandonamn och en beskrivning fylls automatiskt i åt dig.

#### Platskommandon

Med platskommandon kan du låta Simon öppna vilken angiven webbadress som helst. Eftersom Simon bara skickar adressen vidare till plattformarnas webbadresshantering finns stöd för specialprotokoll som remote:/ (på &Linux;/&kde;), eller till och med &kde;:s webbgenvägar.

Istället för kataloger kan filer också anges som kommandots webbadress, vilket gör att filen öppnas med programmet som är associerat med den när kommandot utförs.

Platser

För att associera en särskild webbadress med kommandot kan du skriva in den manuellt i webbadressfältet (välj först Manuell) eller importera den med platsimportguiden.

##### Importera platser

Dialogrutan för att importera platser låter dig enkelt skapa rätt webbadress för kommandot.

Välj Lokal plats och välj katalogen eller filen med filväljaren för att lägga till en lokal katalog eller fil. Importera platser: Lokal

För att lägga till en webbadress (HTTP, FTP, etc.) välj Webbadress.

Importera platser: Fjärr

Observera att för webbadresser med behörighetsinformation kommer lösenordet att lagras som klartext.

#### Genvägskommandon

Genom att använda genvägskommandon kan användaren associera kommandon med tangentbordskombinationer.

Kommandot simulerar tangentbordsinmatning för genvägar såsom &Ctrl;C eller &Alt;F4.

Insticksprogrammet kan trycka ner, släppa, eller både trycka ner och släppa den inställda tangentkombinationen. Definiera genvägskommandon

Växla bara genvägsknappen och tryck på tangentkombinationen på tangentbordet för att välja genväg som du vill simulera.

Simon registrerar genvägen och kopplar ihop den med kommandot.

På grund av tekniska begränsningar finns det flera genvägar i Microsoft Windows som inte kan tas om hand av Simon (de omfattar t.ex. &Ctrl;&Alt;Del och &Alt;F4). Dessa specialgenvägar kan väljas från en lista nedanför tidigare nämnda genvägsknapp.

Urvalsrutan är inte synlig på skärmbilden ovan, eftersom listan bara visas i Simons version för Microsoft Windows.

#### Textmakro-kommandon

Med textmakro-kommandon kan användaren associera text med ett kommando. När kommandot utförs skrivs den associerade texten genom att simulera tangenttryckningar.

Definiera textmakro-kommandon

#### Listkommandon

Listkommandot är utformat för att kombinera flera kommandon (alla typer av kommandon stöds) i en lista. Användaren kan sedan välja det n:te alternativet genom att säga motsvarande siffra (1-9).

Det är mycket användbart för att begränsa mängden inlärning som krävs och ger möjlighet att hålla ordlistan till ett minimum.

Definiera listkommandon

Listkommandon är särskilt praktiska vid användning av kommandon med komplicerade utlösare, eller kommandon som kan grupperas i ett allmänt tema. Ett typiskt exempel skulle kunna vara kommandot Startmeny för att visa en lista över program att starta. På så sätt kan de specifika körbara kommandona fortfarande behålla tydligt beskrivande namn (som OpenOffice.org Writer 3.1), utan att användaren måste inkludera dessa ord i ordförrådet och ta hänsyn till dem i grammatiken bara för att utlösa dem.

Kommandon av olika typer kan förstås blandas.

##### Visa listkommandon

När kommandot utförs, visar det listan centrerad på skärmen. Listan expanderas automatiskt för att följa sina alternativ.

Definiera listkommandon

Användaren kan köra kommandona som finns i listan genom att helt enkelt säga den motsvarande siffran. (I detta exempel Ett för att starta Mozilla Firefox).

Medan en lista är aktiv (visas) ignoreras all indata som inte riktas till själva listan (andra kommandon, etc.). Processen kan avbrytas genom att trycka på knappen Avbryt eller genom att säga avbryt.

Om det finns fler än nio objekt lägger Simon till knapparna Nästa och Bakåt i listan (Noll motsvarar Bakåt och Nio motsvarar Nästa). Listkommandon med många poster

##### Anpassa listelement

I standardutförandet använder listkommandot följande utlösningsord. För att dra full nytta av listkommandon, se till att språket och den akustiska modellen innehåller och tillåter följande meningar:

- Noll

- Ett

- Två

- Tre

- Fyra

- Fem

- Sex

- Sju

- Åtta

- Nio

- Avbryt

Du kan förstås också anpassa orden i Simons inställning:

- Kommandon - Hantera insticksprogram - Allmänt - Listor för scenarioomfattande listinställningar.

- Inställningar - Anpassa Simon... - Åtgärder - Listor för globala inställningar. När du skapar ett nytt scenario initieras scenarioinställningarna med en kopia av dessa listinställningar.

Listkommandon används också internt av andra insticksprogram, som till exempel skrivbordsrutnätet. Inställningarna av utlösarna påverkar också de listor som visas.

#### Sammansatta kommandon

Sammansatta kommandon låter användaren gruppera flera kommandon i en följd.

När de utförs körs kommandona i tur och ordning. Fördröjningar mellan kommandon kan infogas.

Sammansatta kommandon kan också fungera som "transparenta omgivningar" genom att välja Skicka igenkänningsresultat vidare till andra kommandon. I detta fall hanteras igenkänningsresultatet som "obehandlat" även om det sammansatta kommandot utfördes.

Antag exempelvis att du har ett kommando för att tända ljuset i ett scenario. Förutom att tända ljuset vill du nu lägga till någon form av rapport i aktiviteten genom att utföra ett skript via ett körningsinsticksprogram. Då skulle du kunna ställa in ett rapportscenario som innehåller ett transparent sammansatt kommando med samma utlösare som kommandot att tända ljuset, och försäkra dig om att detta scenario anges före det ursprungliga i scenarielistan. Därefter kan du aktivera eller inaktivera rapporten genom att helt enkelt läsa in eller stänga av detta scenario.

Definiera sammansatta kommandon

Med ett sammansatt kommando kan användaren skapa komplicerade makron. Som ett exempel gör skärmbilden ovan följande:

- Starta Kopete (körbart kommando)

- Vänta 2000 ms på att Kopete ska startas

- Skriv Mathias (text-makrokommando), vilket kommer välja Mathias i min kontaktlista

- Tryck på Enter (genvägskommando)

- Vänta 1000 ms för att chattfönstret ska visas

- Skriv Hi! (text-makrokommando); texten associerad med kommandot innehåller en radbrytning i slutet, så att meddelandet skickas.

- Tryck &Alt;F4 (genvägskommando) för att stänga chattfönstret

- Tryck på &Alt;F4 (genvägskommando) för att stänga Kopetes huvudfönster

#### Skrivbordsrutnät

Skrivbordsrutnätet låter användaren styra musen med rösten.

Skrivbordsrutnätet Skrivbordsrutnätet delar upp skärmen i nio delar, vilka numreras från 1-9. Genom att säga en av dessa siffror delas det valda fältet åter upp i nio fält, numrerade 1-9, etc. Detta upprepas tre gånger. Efter den fjärde gången stängs skrivbordsrutnätet, och Simon klickar i mitten av det valda området.

Den exakta klickåtgärden kan anpassas, men förval är att fråga användaren. Därför presenteras en lista med möjliga klickalternativ för dig. Om du väljer drag och släpp visas skrivbordsrutnätet igen för att välja släpp-punkten.

Skrivbordsrutnät: Markering med klick

Medan skrivbordsrutnätet är aktivt (visas) ignoreras all indata som inte riktas till själva rutnätet (andra kommandon, etc.). Säg avbryt när som helst för att avbryta processen.

Insticksprogrammet skrivbordsrutnät placerar en inställningsskärm direkt i kommandoinställningarna när det laddas.

Anpassa skrivbordsrutnätet Utlösaren som startar skrivbordsrutnätet är givetvis fullständigt anpassningsbar. Dessutom kan användaren använda äkta eller falsk genomskinlighet. Om den grafiska miljön möjliggör sammansatta effekter (skrivbordseffekter) kan du lugnt använda äkta genomskinlighet, vilket gör skrivbordsrutnätet genomskinligt. Om plattformen inte stöder sammansatt grafik simulerar Simon genomskinlighet genom att ta en skärmbild av skärmen innan rutnätet visas, och visar den bilden bakom rutnätet.

Om skrivbordsrutnätet är anpassat för att använda äkta genomskinlighet och systemet inte har stöd för sammansatt grafik kommer det att visa en helgrå bakgrund.

Dock har i stort sett alla moderna system stöd för sammansatt grafik (äkta genomskinlighet).

Det omfattar:

- Microsoft Windows 2000 eller senare (XP, Vista, 7)

- GNU/Linux som använder en sammansättningshanterare som Compiz, Kwin4, xcompmgr, etc.

Normalt använder skrivbordsrutnätet siffror för att välja de enskilda fälten. För att använda skrivbordsrutnätet, se till att språket och den akustiska modell innehåller och tillåter följande meningar:

- Ett

- Två

- Tre

- Fyra

- Fem

- Sex

- Sju

- Åtta

- Nio

- Avbryt

För att anpassa dessa utlösare, anpassa bara kommandona som är associerade med insticksprogrammet.

Skrivbordsrutnät: Anpassa listelement

#### Nummerinmatning

Genom att använda insticksprogrammet nummerinmatning kan användaren enkelt mata in stora tal.

Med insticksprogrammen för diktering eller text-makron skulle man kunna associera nummer med motsvarande siffror, och använda det som inmatningsmetod. För att mata in större nummer finns det då två sätt som båda har stora nackdelar:

- Lägga till orden elva, tolv, etc.

  Även om det verkar vara den elegantaste lösningen, eftersom det låter användaren säga femhundrasjuttiotvå kan vi lätt se att det skulle bli väl problematiskt att lägga till alla dessa ord, för att inte tala om att lära in dem. Hur blir det med tvåtusenniohundratvå? Var ska man sluta?

- Dela upp talet genom att använda de enskilda siffrorna

  Medan det inte är lika elegant som att ange det fullständiga numret är det mycket mer praktiskt.

  Dock förlitar sig många program (som det fantastiska tilläggsprogrammet för musfri webbläsning för Firefox) på att användaren kan mata in stora nummer utan alltför mycket tid mellan separata tangenter (musfri webbläsning väntar exempelvis exakt 500 ms som förval innan det anser att inmatningen av numret är färdig). Så om du vill skriva 52 skulle du först säga Fem (paus) Två. På grund av den nödvändiga pausen skulle programmet (som tilläggsprogrammet för musfri webbläsning) betrakta inmatningen av Fem som färdig.

Insticksprogrammet för nummerinmatning visar ett miniräknarliknande gränssnitt för att mata in ett nummer när det utlöses. Inmatningen kan rättas genom att säga bakåt. Det har ett decimaltecken som du använder genom att säga komma. När du säger okej skrivs numret ut. Eftersom all röstinmatning och korrigering hanteras av själva insticksprogrammet, kommer programmet som till slut tar emot inmatningen bara märka några millisekunder mellan de enskilda siffrorna. Insticksprogrammet för nummerinmatning

Medan insticksprogrammet för nummerinmatning är aktivt (användaren håller på att mata in ett nummer) ignoreras all indata som inte riktas till nummerinmatningen (andra kommandon, etc.). Säg avbryt när som helst för att avbryta processen.

Eftersom inga kommandoinstanser ska skapas för det här insticksprogrammet, listas det inte i dialogrutan Nytt kommando. Dock placerar insticksprogrammet för nummerinmatning en inställningsskärm direkt i kommandoinställningarna när det laddas.

Insticksprogrammet för nummerinmatning

Utlösaren definierar vilket ord eller vilken fras som utlöser visningen av gränssnittet.

Normalt använder insticksprogrammet för nummerinmatning siffror för att välja de enskilda siffrorna och ett par kontrollord. För att använda insticksprogrammet, se till att språket och den akustiska modellen innehåller och tillåter följande meningar:

- Noll

- Ett

- Två

- Tre

- Fyra

- Fem

- Sex

- Sju

- Åtta

- Nio

- Bakåt

- Komma

- Ok

- Avbryt

För att anpassa dessa utlösare, anpassa bara kommandona som är associerade med insticksprogrammet.

Insticksprogrammet för nummerinmatning

#### Diktering

Dikteringsinsticksprogrammet skriver igenkänningsresultat det får med simulerade tangenttryckningar.

Med antagandet att du inte definierade en utlösare för dikteringsinsticksprogrammet, tar det emot alla igenkänningsresultat och skriver ut dem. Utskriven inmatning betraktas som behandlad indata och skickas därför inte vidare till andra insticksprogram. Det innebär att inga av insticksprogrammen nedanför det i listan Valda insticksprogram i kommandoinställningarna kommer att ta emot någon indata, om du laddade dikteringsinsticksprogrammet men aldrig definierade en utlösare för det.

Eftersom inga kommandoinstanser ska skapas för det här insticksprogrammet, listas det inte i dialogrutan Nytt kommando.

Dikteringsinsticksprogrammet kan ställas in att lägga till text sist i igenkänningsresultatet för att exempelvis lägga till ett mellanslag efter varje igenkänt ord.

Anpassa diktering

#### Artificiell intelligens

Insticksprogrammet för artificiell intelligens är mest för nöjes skull, och emulerar ett vanligt mänskligt samtal.

Genom att använda text till tal-system kan datorn prata med användaren.

Insticksprogrammet använder AIML:er för den faktiska intelligensen. De flesta AIML-uppsättningar bör kunna användas. Den populära roboten A.L.I.C.E och en tysk version fungerar, och levereras med insticksprogrammet.

AI-insticksprogram

Insticksprogrammet placerar en inställningsskärm i kommandoinställningsmenyn där du kan välja vilken AIML-uppsättning som ska laddas.

Simon söker efter AIML-uppsättningar i följande kataloger:

- GNU/Linux: `'kde4-config --prefix'/share/apps/ai/aimls/`

- Microsoft Windows: `[installationskatalog (normalt C:\Program\simon 0.2\)]\share\apps\ai\aimls\`

För att lägga till en ny uppsättning, skapa bara en ny katalog med ett beskrivande namn och kopiera .aiml-filerna till den.

Ta en titt på filerna bot.xml och vars.xml i följande katalog för att justera botens personlighet:

- GNU/Linux: ``kde4-config --prefix`/share/apps/ai/util/`

- Microsoft Windows: `[installationskatalog (normalt C:\Program Files\simon 0.2)]\share\apps\ai\util\`

Eftersom inga kommandoinstanser ska skapas för det här insticksprogrammet, listas det inte i dialogrutan Nytt kommando.

Det rekommenderas att inte använda någon utlösare för insticksprogrammet för att erhålla en mer naturlig känsla under konversationen.

#### Miniräknare

Insticksprogrammet Miniräknare är en enkel röststyrd räknare.

Insticksprogrammet Miniräknare

Miniräknaren utökar insticksprogrammet för nummerinmatning genom att erbjuda ytterligare funktioner.

När insticksprogrammet laddas läggs en inställningsskärm till i insticksprogrammets inställningar.

Insticksprogrammet Miniräknare: Inställning

Där kan du också anpassa miniräknarens kontrollmöjlighet. Anger du den som något annat än Fullständig miniräknare döljs vissa möjligheter från den visade grafiska komponenten.

Insticksprogrammet Miniräknare: Minimal

Dock kommer de dolda kontrollerna fortfarande reagera på de inställda röstkommandona, i stället för att helt enkelt ta bort alla associerade kommandon från funktionerna.

När du klickar på Ok frågar miniräknaren normalt vad du vill göra med det beräknade resultatet. Du kan till exempel mata ut beräkningen, resultatet, både och, etc. Förutom att alltid välja det i den visade listan efter att ha klickat på knappen Ok, kan det också anges med de inställda alternativen.

Insticksprogrammet Miniräknare: Lägesval för utmatning

#### Filter

Genom att använda filtreringsinsticksprogrammet kan du hejda igenkänningsresultat från att skickas vidare till ytterligare kommandoinsticksprogram. Genom att använda detta insticksprogram kan du till exempel inaktivera igenkänningen med rösten.

Insticksprogrammet för kommandofiltrering placerar en inställningsskärm i kommandoinställningarna där du kan ändra vilka resultat som ska filtreras.

Filterinsticksprogram: Inställning

Mönstret är ett reguljärt uttryck som utvärderas varje gång ett igenkänningsresultat tas emot av insticksprogrammet för behandling.

Insticksprogrammet lägger också till röstgränssnittskommandon för aktivering och inaktivering av filtret.

Totalt sett har filtret därför tre tillstånd:

- Inaktiv

  Normaltillståndet. Alla igenkänningsresultat skickas vidare.

- Halvaktiv (om Tvåstegsaktivering är vald)

  - Om nästa kommando är "Inaktivera filter", går filtret till det "inaktiva" tillståndet.

  - Om nästa resultat dock är någonting annat och Skicka vidare resultat i steg ett vid tvåstegsaktivering är markerat, skickas detta resultat vidare till andra insticksprogram. Filtret återställs till "Aktivt" efteråt.

- Aktiv

  När det aktiveras sväljer filtret alla resultat som motsvarar det angivna mönstret. Normalt betyder det att alla resultat som Simon känner igen accepteras av filtret och därför inte skickas vidare till något av insticksprogrammen som följer efter filterinsticksprogrammet.

  Om Tvåstegsaktivering är aktiverad och filterinsticksprogrammet tar emot kommandot att direkt gå till det "inaktiva" tillståndet, ignoreras kommandot. Med andra ord, om tvåstegsaktivering är aktiverad kan filtret bara inaktiveras genom att passera det mellanliggande tillståndet.

#### Uttalsövning

Uttalsövningen, kombinerad med en bra statisk basmodell, kan vara ett kraftfullt verktyg för att förbättra ditt uttal av ett nytt språk.

Uttalsövning

Huvudsakligen ber insticksprogrammet dig säga specifika ord. Igenkänningen känner därefter igen ditt uttal av ordet och jämför det med talmodellen, som måste vara en basmodell av personer med språket som modersmål för att det ska fungera korrekt. Därefter visar Simon igenkänningsfrekvensen (hur liknande din version och den lagrade basmodellen är).

Ju närmare den infödda talaren, desto högre poäng.

Insticksprogrammet lägger till ett alternativ i menyn Kommandon för att visa dialogrutan med uttalsövningen.

Själva övningen består av flera sidor. Varje sida innehåller ett ord som hämtas ur det aktiva ordförrådet. De identifieras med en kategori som måste väljas i kommandoinställningarna innan övningen startas.

Uttalsövning: Inställning

#### Tangentbord

Tangentbordsinsticksprogrammet visar ett virtuellt, röststyrt, tangentbord.

Tangentbord

Tangentbordet består av flera flikar, som var och en kan innehålla flera tangenter. Helheten av flikar och tangenter samlas i uppsättningar.

Du kan välja uppsättningar i inställningarna, men också skapa nya från grunden i inställningen av tangentbordskommandon.

Tangentbord: Inställning

Tangenter avbildas i regel till enstaka tecken, men kan också innehålla långa texter och till och med genvägar. Därför kan tangentbordsuppsättningar innehålla specialtangenter, som en tangent för att markera alla eller en lösenordstangent (skriver ditt lösenord).

Intill flikarna som innehåller tangenterna i en uppsättning kan tangentbordet också visa specialtangenter, som &Ctrl;, &Shift;, etc. Dessa tangenter tillhandahålls som kommandon för röstgränssnittet, och visas oavsett vilken flik i uppsättningen som för närvarande är aktiv.

Som med alla röstutlösare döljs även knapparna när det associerade kommandot tas bort.

Dessutom tillhandahåller tangentbordet ett numeriskt tangentbord som kan visas genom att välja lämpligt alternativ i tangentbordsinställningarna.

Tangentbord: Numeriskt tangentbord

Intill de numeriska tangenterna och delete-tangenten för det numeriska inmatningsfältet (numeriskt baksteg), tillhandahåller det numeriska tangentbordet två alternativ för vad som ska hända med det inmatade numret.

När Skriv nummer används skrivs det inmatade numret med simulerade tangenttryckningar. När Välj nummer används görs ett försök att hitta en tangent eller flik i den aktiva uppsättningen som har just det här numret som utlösare. På så sättet kan du kontrollera ett fullständigt tangentbord genom att bara använda nummer.

Tangentbord: Nummerbaserat

Tangenterna på det numeriska tangentbordet är inställningsbara kommandon för röstgränssnittet.

#### Dialoger

Dialoginsticksprogrammet gör det möjligt för användare att utföra en manusstyrd dialog med &kmyapplication;.

##### Dialogkonstruktion

&kmyapplication; behandlar dialoger som följder av olika tillstånd. Varje tillstånd kan ha en text och flera tillhörande alternativ.

Dialogkonstruktion

Dialoger kan ha mer än en textversion, där en av dem väljes slumpmässigt när dialogrutan visas. Det kan hjälpa till att få dialoger att kännas mer naturliga genom att tillhandahålla flera, alternativa formuleringar.

Texterna kan använda bundna värden och mallalternativ.

Dialogkonstruktion: Alternativ

Dialogalternativ inkapslar konversationens logik. De är de aktiva komponenterna i dialogen.

Dialogkonstruktion: Lägga till ett alternativ

I liket med kommandon kan dialogalternativ ha ett namn (utlösare) som gör att alternativet aktiveras, när det känns igen medan dialogen är aktiv och i alternativets överliggande tillstånd. Det går också att ställa in alternativ att utlösas automatiskt efter en angiven tidsperiod. Tiden är relativ i förhållande till när tillståndet aktiverades.

När dialogalternativ visas via den grafiska modulen kan de visa en godtycklig text (som troligtvis är ekvivalent med utlösaren, men inte behöver vara det) och en valfri ikon. Om text-till-tal modulen används, kommer texten (inte utlösaren) att läsas upp om det inte är inaktiverat genom att välja alternativet Tyst.

Varje tillstånd kan också ha en valfri avatar som visas när den grafiska modulen används.

Dialogkonstruktion: Avatar

##### Dialog: Bundna värden

Texten i dialogtillstånd kan innehålla variabler, så kallade "bundna värden", som fylls i vid körning.

Exempelvis skulle dialogtexten "Det här är en $variabel$" ersätta "$variabel$" med resultatet av det bundna värdet kallat "variabel".

Bundna värden

Det finns fyra typer av bundna värden:

- Statiska

  Bundna värden: Statiska

  Statiska bundna värden kommer alltid att resultera i samma text. De är användbara för att tillhandahålla inställningsalternativ som kan fyllas i för att göra dialogrutan personlig (t.ex. användarens namn).

- QtScript

  Bundna värden: QtScript

  QtScript-bundna värden löses upp till resultatet av den angivna QtScript-koden.

- Kommandoargument

  Bundna värden: Kommandoargument

  Om dialogens utlösande kommando (det kommando i &kmyapplication; som initierar dialogen) använder platsmarkörer kan de kommas åt via bundna kommandoargumentvärden. Talet Argument anger index av platsmarkören som du vill komma åt.

  Om dialogen exempelvis startas med kommandot "Ring %1", och "namn" är ett bundet kommandoargumentvärde, ändras dialogens text "Är du säker på att du vill ringa $namn$?" till "Är du säker på att du vill ringa Peter?" om dialogen startas efter att ha känt igen "Ring Peter".

- Plasma datagränssnitt

  Bundna värden: Plasma datagränssnitt

  Den här sortens bundna värde kan enkelt komma åt en omfattande mängd högnivå-information via Plasma datagränssnitt.

##### Mallalternativ

Dialogens texter kan parametriseras ytterligare via mallalternativ.

Mallalternativ

Dessa Booleska värden väljer mellan olika eller valfria textfragment.

Mallalternativet "formell" ovan skulle exempelvis ändra dialogtexten "Kan {{{formell}}ni inte vara tyst{{elseformell}}du inte hålla käften{{endformell}}" till "Kan ni inte vara tyst" eller "Kan du inte hålla käften" beroende på om mallalternativet är inställt till sant eller falskt. Else-delen kan utelämnas om det inte behövs (t.ex. "Kan du {{formell}}vara vänlig att {{endformell}}hålla käften").

##### Avatarer

Varje tillstånd kan potentiellt visa en annorlunda avatar.

Bilderna kan gå från bilden av en (simulerad) person till en bild av något som är lämpligt för ämnet.

Dialog: Avatarer

För att använda en avatar, lägg först till den här och definiera senare var den ska användas under dialogkonstruktion.

##### Utdata

Dialoger kan visas grafiskt, använda text-till-tal eller kombinera båda metoderna.

Dialog: Utmatning

Avskiljare för alternativ kommer att läsas upp mellan dialogtexten och det nuvarande tillståndets alternativ (om det finns några). Om tillståndet saknar alternativ eller är inställt att vara tyst, läses den inte upp. Alternativet för att lyssna på hela meddelandet igen utlöses när något av värdena inställda med Upprepa vid utlösare känns igen. Dessutom kan utmatning via text-till-tal valfritt ställas in att upprepa listan med tillgängliga alternativ (inklusive den inställda avskiljaren) när användaren säger ett kommando som inte matchar något av de tillgängliga alternativen i dialogen.

#### Akonadi

Akonadi-insticksprogrammet låter &kmyapplication; kopplas in i KDE:s infrastruktur för personlig informationshantering.

Kommandoinställning av Akonadi

Insticksprogrammet uppfyller två huvudsyften:

- Kör Simon-kommandon vid schemalagda tider

  Akonadi-insticksprogrammet kan övervaka en specifik samling (kalender) och reagera på poster vars sammanfattning börjar med ett särskilt prefix. Normalt är prefixet "[simon-command]", vilket betyder att händelser på formen "[simon-command] <insticksprogramnamn>//<kommandonamn>" utlöser lämpligt kommando i &kmyapplication; vid händelsens "starttid".

  Namnen på insticksprogrammen och kommandona är ekvivalenta med de som visas i kommandodialogen och behöver inte nödvändigtvis hänvisa till kommandon i samma scenario som instansen av Akonadi-insticksprogrammet.

- Visa påminnelser för händelser i den angivna kalendern

  Om det är inställt för att göra det, kan Akonadi-insticksprogrammet visa påminnelser för kalenderhändelser med en inställd alarmflagga. Dessa påminnelser visas via dialoggränssnittet i &kmyapplication;.

#### D-Bus

Med D-Bus kommandoinsticksprogrammet kan Simon direkt anropa exporterade metoder i programvara från tredje part.

Skärmbilden nedan anropar exempelvis metoden "Pause" i MPRIS-gränssnittet i musikuppspelningsprogramvaran Tomahawk.

D-Bus kommando

#### JSON

På liknande sätt som D-Bus kommandoinsticksprogrammet, gör också JSON-insticksprogrammet det möjligt att kontakta program från tredje part för att direkt utföra funktioner (istället för att simulera användaraktivitet).

JSON-kommando

#### VRPN

Med VRPN-kommandoinsticksprogrammet kan Simon fungera som en VRPN-server och exportera röststyrda knappar.

Inställning av VRPN-insticksprogram

Inställningen av insticksprogrammet låter dig ställa in porten som servern ska utnyttja och definiera en godtycklig lista med knappar. Var och en av dessa knappobjekt kommer att ha exakt en "knapp" (i VRPN kan en knapp teoretiskt ha mer än ett klickbart objekt).

Efter att ha ställt in knapparna kan du nu ställa in kommandon i Simon att påverka dem. Du kan ställa in kommandon att antingen trycka och släppa (i följd), trycka, släppa eller växla knappen som de påverkar.

VRPN-kommandoinställning

Exempelvis skulle kommandot som visas i skärmbilden ovan, trycka och släppa ("klicka") på VRPN-knappen med index 0 i knappenheten som kan kommas åt som "ButtonB@localhost".

## Frågor och svar

För att alltid försöka hålla avsnittet uppdaterat är det tillgängligt på vår wiki.

## Tack till och licens

&kmyapplication;

Program copyright 2006-2009 Peter Grasch peter.grasch@bedahr.org, Phillip Goriup, Tschernegg Susanne, Bettina Sturmann, Martin Gigerl

Dokumentation Copyright © 2009 Peter Grasch peter.grasch@bedahr.org

Översättning Stefan Asserhäll stefan.asserhall@bredband.net

Översättning Arve Eriksson 031299870@telia.com

&underFDL; &underGPL;

## Installation

Se vår wiki för installationsinstruktioner.

&documentation.index;