1 / 16

Nuance Tutorial & Workshop

Nuance Tutorial & Workshop. Anders Green KTH/NADA IPLab 2002-06-03. 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

december
Download Presentation

Nuance Tutorial & Workshop

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nuance Tutorial & Workshop Anders Green KTH/NADA IPLab 2002-06-03

  2. 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. 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. 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. 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 Verktyg

  6. 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 avFootFan(Windows 2000 + JAVA) Nuance-tutorial 2002-06-03

  8. FotbollFan • Säg namnet på ett lag och du får se lagets resultat • Ex: • “visa nigeria” • “få se england” • “Sverige” • “England” GameResult DB Dialog hantering Taligen-känning Text- generator

  9. 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) kodruta start_nlm.bat: nlm ntk7-100062003-a-x12-00347a1f1ac4 lm.Addresses=localhost start_rec.bat: recserver –package "c:\Fotfan\fotfan\fotfan" lm.Addresses=localhost

  10. 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 x Result Recognize En minimal klass Init Functions 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; <konfigurera nuance (se nästa sida)> <fönstersaker> privateclass 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

  11. --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 Initialisering 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. 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 En minimal grammatik Grammatik ;kommentarer .FOTFAN [ [öppna visa starta]? COUNTRY:country {<country $country>} ] COUNTRY [ sverige {return("swe")} england {return("gbr")} nigeria {return("nig")} ] toppgrammatik ”country” är en slot subgrammatik fotfan_master.slot-definitions: country

  13. 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(<konfigsträng>) Skapa trådklass Deklarera en RecResult i run() metoden Anropa nsc.playAndRecognize(<grammatiknamn>); 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 Att-göra-lista

  14. 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 Workshop

  15. GU

  16. 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 GU

More Related