Ladda ner presentationen
Presentation laddar. Vänta.
1
Nuance Tutorial & Workshop Anders Green KTH/NADA IPLab 2002-06-03
2
© Anders Green 2001 Nuance-tutorial 3/6 2002 Nuance-tutorial/workshop 10 - 12 Intro till Nuance Var-finns-och-hur-komma-igång-varför-funkar-det-inte-aha-nuså! Verktyg —Nuance Grammar Builder —VBuilder API:er —Java SpeechChannel —C++: RCEngine, VRSAPI —C, RCAPI Exempel/demo —Nuance -> Java (Prolog) »Prologdelen utgår (tidsbrist/off-topic) 12 - 13 Lunch 13 - 16 (eller när vi vill gå hem) Diskussionsämnen —Tillämpningar & möjligheter —Begränsningar —Omvägar, genvägar, tips & tricks
3
© Anders Green 2001 Nuance-tutorial 3/6 2002 Nuance taligenkänning-varfördå-vardå? Taligenkänning på svenska Kostnadsfri utvecklarlicens (1 igenkännare) Kan hantera telefonikort Väldokumenterat API Unix & Windows Dock ej linux (vad det verkar) http://www.nuance.com/ ASR & Verifiering: US/Canadian English, UK English, Australian/New Zealand English, Singapore English, South African English, European French, Canadian French, Latin American Spanish, European Spanish, Brazilian Portuguese, Italian, German/Austrian German, Swiss German, Dutch, Swedish, Norwegian, Danish, Czech, Greek, Hebrew, Turkish, Korean, Japanese, Cantonese (Hong Kong-China), Mandarin Chinese (China, Taiwan), and Arabic (Jordan). Ladda ner på: http://extranet.nuance.com/developer/ Installera på en maskin med rätt* ljudkort** eller telefonikort*** *) Soundblasterkompatibelt —IBM Thinkpad t22 — Dell Latitude CPt —PC med ett vanligt hederligt kort (inga specialkort) **) Kort som har ESS chipset verkar fungera sämre ***) Till exempel ett DSP-kort som Dialogic
4
© Anders Green 2001 Nuance-tutorial 3/6 2002 Varför funkar det inte? Native-igenkänning funkar inte med ljudkortet i maskinen Arghh!! Åtgärd, byt maskin, typ Ej startat licenshanterare Starta en licenshanterare med rätt licensnummer som du hittar på http://extranet.nuance.com/developer/ Sökväg till grammatikpaket fel Se till att det finns ett kompilerat grammatikpaket Ange var servern körs med lm.addresses Vad kan man inte göra? Få det att fungera på Linux Få ut tidsstämplar från igenkänningsresultat direkt från API:t —Omväg finns genom partiella resultat –dock ej via JAVA Använda för diktering Köra det på valfri bärbar PC Fler problem?
5
© Anders Green 2001 Nuance-tutorial 3/6 2002 Verktyg V-Builder IDE VoiceXML Nuance SpeechObjectsTM. Bygger dialoger med hjälp av fördefinierade objekt Nuance Speech Channel —API:er Nuance Verifier Talarverifiering Nuance Grammar Builder IDE Skapa, kompilera och testa grammatikpaket I ett BNF-liknande format Har viss typkonvertering Semantik (enkel) kan specificeras med hjälp av slottar
6
© Anders Green 2001 Nuance-tutorial 3/6 2002 Om API:er RCEngine: C++ class that gives you direct access to recognition client functionality, including recognition, recording and playback, and call control. The RCEngine gives you a high level of control over event flow through a set of asynchronous notifications. —Finns tillgängligt som exempel med socket-koppling —Kräver t ex Visual Studio med C++ för att kunna kompilera VRSAPI: C++ class that lets you access recognition functionality as if you were communicating directly with the recognition server. —Alternativ till RCEngine (vet ej skillnad) Java SpeechChannel: The Java SpeechChannel interface defines methods you can implement to enable access to the Nuance recognition engine on a specific platform, including access to dynamic grammar and speaker verification functionality. —Verkar fungera med jdk 1.3 —Se senare exempel RCAPI: Provides functionality similar to the RCEngine via a set of C functions.
7
Design av FootFan (Windows 2000 + JAVA) Nuance-tutorial 2002-06-03
8
© Anders Green 2001 Nuance-tutorial 3/6 2002 FotbollFan Säg namnet på ett lag och du får se lagets resultat Ex: “visa nigeria” “få se england” “Sverige” “England” Taligen- känning Dialog hantering Text- generator GameResult DB
9
© Anders Green 2001 Nuance-tutorial 3/6 2002 Nuance SpeechChannel Java Speech Channel Java API (native-bibliotek) Något färre funktioner än övriga API:er Implementerar API till en igenkänningsklient Server startas med bat-fil (dos) —Grammatiker anges vid start —Grammatiker förkompileras Nuance licenshanterare (nlm) –Måste vara startad vid kompilering av grammatiker samt vid körning av server –Utvecklingslicensen medger att man kör en klient –”lm.addresses” berättar var serv ern körs (ex lm.addresses=localhost) recserver –package "c:\Fotfan\fotfan\fotfan" lm.Addresses=localhost nlm ntk7-100062003-a-x12-00347a1f1ac4 lm.Addresses=localhost start_nlm.bat: start_rec.bat: kodruta
10
© Anders Green 2001 Nuance-tutorial 3/6 2002 En minimal klass Importera Speech Channel Skapa en konfiguration med startNuance() Skapa ett SpeechChannel-objekt Skapa applikationsspecifika saker fönsterobjekt, knappar etc datakopplingar RunnableRecognition: Tråd som visar resultatet från en igenkänning (dör sedan) RecResult Sätter igång en igenkännare recognize Skapar tråden Init private class RunnableRecognition implements Runnable { public void run() { RecResult result; try { //get the result result = recognitionFunction(); displayRecResult(result.getString("results[0].text")); } catch (Exception e) { } } // grammar name is “.FOTFAN” (top grammar) protected RecResult recognitionFunction () throws Exception { return nsc.playAndRecognize(".FOTFAN"); } // called whenever we should recognize stuff void recognize() { new Thread(new RunnableRecognition()).start(); } } // Frame1 end import vcommerce.core.util.*; import vcommerce.core.sc.*; import nuance.core.sc.*; import nuance.core.util.*; public class Frame1 extends JFrame { // Nuance stuff NuanceConfig config; NuanceSpeechChannel nsc; Functions Recognize Result x
11
© Anders Green 2001 Nuance-tutorial 3/6 2002 Initialisering --package: Säger var den kompilerade grammatiken är lm.addresses Talar om för NSC var den kan hitta igenkänningsklienten (recserver) client.RecordDirectory Var ska loggarna hamna client.RecordFilename %NUANCE%\doc\api\index.html %NUANCE%\doc\api\parameters\frame.html Initialize Nuance Speech Channel void startNuance() { // Requires a running recognition server config = new NuanceConfig(); String[] params = { // Grammar location "-package","C:/FotFan/fotfan/fotfan", // Where is the server running "lm.Addresses=localhost", // Name of log-directory "client.RecordDirectory=C:/FotFan/logs", // Fileformat "client.RecordFilename=fotlog%4d" }; try { config.buildFromCommandLine(params); nsc = new NuanceSpeechChannel(config); } catch (Exception e) { System.out.println("Start Nuance failed:" + e); }
12
© Anders Green 2001 Nuance-tutorial 3/6 2002 En minimal grammatik Nuance Grammar Builder Använd Nuance Grammar Builder Kompilera fotfan_master Swedish.1.2 -o fotfan -auto_pron lm.Addresses=localhost Glöm inte att starta Nuance licenshantering(nlm)! Specificera lm.Addresses Grammatik ;kommentarer.FOTFAN [ [öppna visa starta]? COUNTRY:country { } ] COUNTRY [ sverige {return("swe")} england {return("gbr")} nigeria {return("nig")} ] toppgrammatik subgrammatik ”country” är en slot fotfan_master.slot-definitions: country
13
© Anders Green 2001 Nuance-tutorial 3/6 2002 Att-göra-lista Java: (skapa en java-applikation med knappar etc) Inititera Nuance Speech Channel NuanceConfig (nsc) Bygg konfigstränglista (String[]) —Var körs (lm.addresses) —Grammatikens plats (--package) —Logginfo (client. etc) buildFromCommandLine( ) Skapa trådklass —Deklarera en RecResult i run() metoden —Anropa nsc.playAndRecognize( ); Definiera funktion som skapar en tråd —Recognize() I Nuance Grammar Builder Skapa en grammatik Definiera slottar Kompilera Dos Starta NLM Ange lm.addresses Starta en recserver med –package Ange lm.addresses Starta java-applikationen Det är möjligt att starta både nlm och recserver inifrån java men det är krångligt att sätta alla nödvändiga parametrar. Förslag emottages… Prolog Kan användas Jasper funkar utmärkt
14
© Anders Green 2001 Nuance-tutorial 3/6 2002 Workshop Diskussionsämnen Format Tillämpningar & möjligheter —Göteborg —Robot Begränsningar Omvägar, genvägar, tips & tricks —Dialogic —Ljud på andra sätt Voxi X10 Lägga upp -maila ut
15
© Anders Green 2001 Nuance-tutorial 3/6 2002 GU
16
GU Göteborg Ljudkort Ingen dokumentation för ljudkort Extigy kanske är lösningen Barge-in IP-telefoni kan användas, men svårt pga dålig dokumentation IP-telefoni —Ophone —Netmeeting —Linux: H323 paket för ip-telefoni Licens-problem För få licenser (t ex vid flerspråkighet) Nlm lämnar inte tillbaka licenser tillräckligt snabbt Asynkron taligenkänning/talsyntes kräver att man kör två versioner recserver Auto-generera grammatiker HPSG, Typteoretiska ramverk VoiceXML (sun har en teknik preview/early access) Statistiska språkmodeller Parallella igenkännare Global och lokal grammatik Alt: dynamisk viktning Flexibel turtagning Barge-in Parsning av feedback vs. bidrag Hålla reda på när användare avbruter (vad var det som sades när avbrott skedde?) Betoning Hitta betonade ord Telefonkort Telefonkortet ip-telefoni Utforska semantik Nu separat modul Talarspecifik igenkännng från talaroberoende Frågor: Erfarenhet av fyllda pauser (Gabriel->Staffan, David) GU: Vi har inte gjort några studier, men vi har fått det att funka för demos Vi vill känna igen fraser
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.