Title: Nuance Tutorial
1Nuance Tutorial Workshop
- Anders Green
- KTH/NADA
- IPLab
- 2002-06-03
2Nuance-tutorial/workshop
- 10 - 12 Intro till Nuance
- Var-finns-och-hur-komma-igång-varför-funkar-det-in
te-aha-nuså! - Verktyg
- Nuance Grammar Builder
- VBuilder
- APIer
- Java SpeechChannel
- C RCEngine, VRSAPI
- C, RCAPI
- Exempel/demo
- Nuance -gt Java lt-gt (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
3Nuance 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
4Varfö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/devel
oper/ - 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 APIt - 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?
5Verktyg
- V-Builder
- IDE
- VoiceXML
- Nuance SpeechObjectsTM.
- Bygger dialoger med hjälp av fördefinierade
objekt - Nuance Speech Channel
- APIer
- 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
6Om APIer
- 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.
7Design avFootFan?(Windows 2000 JAVA)
- Nuance-tutorial
- 2002-06-03
8FotbollFan
- 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
9Nuance SpeechChannel
- Java Speech Channel
- Java API (native-bibliotek)
- Något färre funktioner än övriga APIer
- 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.addresseslocalhost)
kodruta
start_nlm.bat
nlm ntk7-100062003-a-x12-00347a1f1ac4
lm.Addresseslocalhost
start_rec.bat
recserver package "c\Fotfan\fotfan\fotfan"
lm.Addresseslocalhost
10En minimal klass
- 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
- Importera Speech Channel
- Skapa en konfiguration
- med startNuance()
- Skapa ett SpeechChannel-objekt
- Skapa applikationsspecifika saker
- fönsterobjekt, knappar etc
- datakopplingar
Init
Functions
private class RunnableRecognition implements
Runnable public void run() RecResult
result try //get the result
result recognitionFunction()
displayRecResult(result.getString("results0.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. impo
rt nuance.core.util. public class Frame1
extends JFrame // Nuance stuff NuanceConfig
config NuanceSpeechChannel nsc
ltkonfigurera nuance (se nästa sida)gt ltfönstersak
ergt
11Initialisering
- --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/fotfa
n/fotfan", // Where is the server running
"lm.Addresseslocalhost", // Name of
log-directory "client.RecordDirectoryC/FotF
an/logs", // Fileformat
"client.RecordFilenamefotlog4d" try
config.buildFromCommandLine(params)
nsc new NuanceSpeechChannel(config)
catch (Exception e) System.out.println("S
tart Nuance failed" e)
12En minimal grammatik
- Använd Nuance Grammar Builder
Grammatik
kommentarer .FOTFAN öppna visa
starta? COUNTRYcountry
ltcountry countrygt COUNTRY
sverige return("swe") england
return("gbr") nigeria return("nig")
toppgrammatik
country är en slot
subgrammatik
fotfan_master.slot-definitions country
- Kompilera
- fotfan_master Swedish.1.2 -o fotfan -auto_pron
lm.Addresseslocalhost - Glöm inte att starta Nuance licenshantering(nlm)!
- Specificera lm.Addresses
13Att-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(ltkonfigstränggt)
- Skapa trådklass
- Deklarera en RecResult i run() metoden
- Anropa nsc.playAndRecognize(ltgrammatiknamngt)
- Definiera funktion som skapar en tråd
- Recognize()
- I Nuance Grammar Builder
- 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
14Workshop
- 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
15GU
16GU
- 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)
- 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-gtStaffan, 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