Annotated logs for utterance
capturing.
Turn on micro trace VUI : Capture Utterances
Look in diag_CuCsMgr_X.log
files.
07/28/2008 16:34:13.975 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Calling OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMessagesCount.cde!PlayMessagesCount] [Src/CsStateMachine.cpp:139]|
07/28/2008
16:34:16.065 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,VUI,5,Phrase='PlayMessagesCount',
Grammar='VuiSubMenuGrammar', Event='SpeechMatch', Meaning='Help', Input='help',
Confidence='93',
WaveformFile='/var/opt/cisco/connection/log/asr/EIIOFHHFAAAMKENEAAAAAAAA/20080728163413_980683.wav',
Session='EIIOFHHFAAAMKENEAAAAAAAA' (Src/CsPhrase.cpp:921)|
This log provides information about
a speech event. The Input field is the actual text that the ASR engine matched
in the grammar. The Confidence field is a score from 0 to 100 indicating the
likelihood of this being the correct result. The WaveformFile
field is the path to the utterance wave file. The Session is the MRCP session
id. Note that you can retrieve the wave files using RTMT.
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMessagesCount.cde!PlayMessagesCount] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Event is [Help] [Src/CsStateMachine.cpp:168]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Next state is [NULL] [Src/CsStateMachine.cpp:190]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Exiting state machine. [Src/CsStateMachine.cpp:227]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!RunVuiSubMessagesCount] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Event is [Help] [Src/CsStateMachine.cpp:168]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Next state is [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] [Src/CsStateMachine.cpp:190]|
07/28/2008 16:34:16.066 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Calling OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] [Src/CsStateMachine.cpp:139]|
07/28/2008 16:34:19.518 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,VUI,2,DOMDocument::getDocumentElement returned NULL (Src/CsVuiSpeechResult.cpp:74)|
07/28/2008
16:34:19.518 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,VUI,5,Phrase='PlayHelp',
Grammar='VuiSubMenuGrammar', Event='SpeechNoMatch', Meaning='', Input='', Confidence='',
WaveformFile='/var/opt/cisco/connection/log/asr/EIIOFHHFAAAMKENEAAAAAAAA/20080728163416_069678.wav',
Session='EIIOFHHFAAAMKENEAAAAAAAA' (Src/CsPhrase.cpp:921)|
In this case, the user uttered
something that the ASR engine couldn’t match. Listen to the captured utterance
file to debug the situation. Note that the Event field is set to SpeechNoMatch instead of SpeechMatch.
07/28/2008 16:34:19.519 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]|
07/28/2008 16:34:19.519 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Event is [SPEECH_NOMATCH_EVENT] [Src/CsStateMachine.cpp:168]|
07/28/2008 16:34:19.519 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Next state is [/opt/cisco/connection/share/tui/VuiSubMenu.cde!SorryIMissedThat2] [Src/CsStateMachine.cpp:190]|
07/28/2008 16:34:19.519 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Calling OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!SorryIMissedThat2] [Src/CsStateMachine.cpp:139]|
07/28/2008 16:34:21.229 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!SorryIMissedThat2] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]|
07/28/2008 16:34:21.229 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Event is [NULL] [Src/CsStateMachine.cpp:168]|
07/28/2008 16:34:21.229 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Next state is [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] [Src/CsStateMachine.cpp:190]|
07/28/2008 16:34:21.230 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Calling OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] [Src/CsStateMachine.cpp:139]|
07/28/2008
16:34:23.889 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,VUI,5,Phrase='PlayHelp',
Grammar='VuiSubMenuGrammar', Event='SpeechMatch', Meaning='SendRequest',
Input='send message', Confidence='96',
WaveformFile='/var/opt/cisco/connection/log/asr/EIIOFHHFAAAMKENEAAAAAAAA/20080728163421_233483.wav',
Session='EIIOFHHFAAAMKENEAAAAAAAA' (Src/CsPhrase.cpp:921)|
Here is another case of a speech
match. Notice that the Input is “send message.” If you listen to the utterance
file, it should roughly sound like “send message.”
07/28/2008 16:34:23.889 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : OnEntry for state [/opt/cisco/connection/share/tui/VuiSubMenu.cde!PlayHelp] returned 0x00000000 S_OK [Src/CsStateMachine.cpp:143]|
07/28/2008 16:34:23.889 |2734,PhoneSystem-1-001,9B0F4461536C4D4799F22A4F2956C9B3,CDE,10,CCsStateMachine::Execute : Event is [SendRequest] [Src/CsStateMachine.cpp:168]|
In addition, the Remote Port Status
Monitor (rPSM) also contains this information in a
more dynamic and readable form.
16:42:58, New Call, CallerId=3000,
CalledId=8000, RedirectingId=,
Origin=16, Reason=1, CallGuid=9B0F4461536C4D4799F22A4F2956C9B3,
CallerName=, LastRedirectingId=,
LastRedirectingReason=1024, PortDisplayName=PhoneSystem-1-001
[Origin=Unknown] [Reason=Direct]
16:42:58,
Changed the current search by extension search space from <No
scope> to 'cuc-install-1 Search Space' ({ddd84682-bb01-4189-9245-18d18bbc4dee})
16:42:58,
Changed the current search by name search space from <No
scope> to 'cuc-install-1 Search Space'
({ddd84682-bb01-4189-9245-18d18bbc4dee})
16:42:58,
AttemptSignIn
16:42:58,
State - AttemptSignIn.cde!Dummy
16:42:58,
Event is [NULL]
16:42:58,
SubSignIn
16:42:58,
Subscriber Sign-In
16:42:58,
State - SubSignIn.cde!AnswerPhone
16:42:58,
Event is [TrueEvent]
16:42:58,
State - SubSignIn.cde!AuthenticateUser
16:42:58,
-->SubAuthenticate
16:42:58,
State - SubAuthenticate.cde!TryCounter
16:42:58,
Event is [NULL]
16:42:58,
State - SubAuthenticate.cde!GatherID
16:42:58,
Event is [FalseEvent]
16:42:58,
State - SubAuthenticate.cde!LoadSubscriberMinimalData
16:42:58,
Event is [NULL]
16:42:58,
State - SubAuthenticate.cde!GatherPIN
16:42:58,
-->SubAuthenticatePW
16:42:58,
State - SubAuthenticatePW.cde!ValidatePwd
16:42:59,
Subscriber sign-in successful. Alias - benshan.
Extension - 3000. Caller Id - 3000.
16:42:59, Changed the current search by
extension search space from 'cuc-install-1 Search Space'
({ddd84682-bb01-4189-9245-18d18bbc4dee}) to 'all' ({fc96c663-cb05-426a-8437-181afb0b28f8})
16:42:59, Changed the current search by
name search space from 'cuc-install-1 Search Space'
({ddd84682-bb01-4189-9245-18d18bbc4dee}) to 'all'
({fc96c663-cb05-426a-8437-181afb0b28f8})
16:42:59,
Event is [TrueEvent]
16:42:59,
State - SubAuthenticatePW.cde!ReturnAuthenticated
16:42:59,
Event is [Authenticated]
16:43:00,
<--SubAuthenticatePW
16:43:00,
Event is [Authenticated]
16:43:00,
State - SubAuthenticate.cde!ReturnAuthenticated
16:43:00,
Event is [Authenticated]
16:43:00,
<--SubAuthenticate
16:43:00,
Event is [Authenticated]
16:43:00,
State - SubSignIn.cde!RunSignInUtil
16:43:00,
-->SubSignInUtil
16:43:00,
State - SubSignInUtil.cde!CheckAccountLocked
16:43:00,
Event is [FalseEvent]
16:43:00,
State - SubSignInUtil.cde!CheckExpiredAndNew
16:43:00,
Event is [NULL]
16:43:00,
State - SubSignInUtil.cde!CheckForExpirationWarning
16:43:00,
Event is [NULL]
16:43:00,
State - SubSignInUtil.cde!CheckForAdminConversation
16:43:00,
Event is [FalseEvent]
16:43:00,
State - SubSignInUtil.cde!CheckAlternateGreeting
16:43:00,
Event is [FalseEvent]
16:43:00,
State - SubSignInUtil.cde!CheckForLeaveMsg
16:43:00,
Event is [FalseEvent]
16:43:00,
<--SubSignInUtil
16:43:00,
Event is [FalseEvent]
16:43:00,
State - SubSignIn.cde!RunSignInUtil_default
16:43:00,
Event is [NULL]
16:43:00, State - SubSignIn.cde!RunNextConv
16:43:00,
-->VuiStart
16:43:00, Ben
Shanfelder VUI Login (Mailbox benshan)
16:43:00,
State - VuiStart.cde!GetVuiSession
16:43:00,
Event is [NULL]
16:43:00,
State - VuiStart.cde!Start
16:43:00,
Event is [NULL]
16:43:00,
State - VuiStart.cde!RunVuiSubMenu
16:43:00,
-->VuiSubMenu
16:43:00,
State - VuiSubMenu.cde!Start
16:43:00,
Event is [NULL]
16:43:00,
State - VuiSubMenu.cde!ResumeMessage
16:43:00,
Event is [NULL]
16:43:00,
State - VuiSubMenu.cde!CheckBypassAlertsAndNotifications
16:43:00,
Event is [AlertsAndNotifications]
16:43:00,
State - VuiSubMenu.cde!GetMailboxStatusBeforeMenu
16:43:00,
Event is [YesEvent]
16:43:00,
State - VuiSubMenu.cde!CheckQuotaBeforeMenu
16:43:00,
Event is [NULL]
16:43:00, State - VuiSubMenu.cde!CheckAlternateGreetingWarning
16:43:00,
Event is [FalseEvent]
16:43:00,
State - VuiSubMenu.cde!RunVuiSubMessagesCount
16:43:00,
-->VuiSubMessagesCount
16:43:00, State - VuiSubMessagesCount.cde!Start
16:43:00, Event is [NULL]
16:43:00, State - VuiSubMessagesCount.cde!CheckForBroadcastMessage
16:43:00, Event is [NULL]
16:43:00, State - VuiSubMessagesCount.cde!CheckIfMessagesAvailable
16:43:00, Event is [NULL]
16:43:00, State - VuiSubMessagesCount.cde!PlayMessagesCount
16:43:02, Speech: Input='help', Confidence='93', Meaning='Help'
16:43:02, Event is [Help]
16:43:02,
<--VuiSubMessagesCount
16:43:02,
Event is [Help]
16:43:02,
State - VuiSubMenu.cde!PlayHelp
16:43:05, Speech: No-match
16:43:05,
Event is [SPEECH_NOMATCH_EVENT]
16:43:05,
State - VuiSubMenu.cde!SorryIMissedThat2
16:43:07,
Event is [NULL]
16:43:07,
State - VuiSubMenu.cde!PlayHelp
16:43:09, Speech: Input='send message', Confidence='96', Meaning='SendRequest'
16:43:10,
Event is [SendRequest]
16:43:10,
State - VuiSubMenu.cde!HandleSendRequest
16:43:10,
Event is [YesEvent]
16:43:10,
State - VuiSubMenu.cde!RunVuiSubSend
16:43:10,
-->VuiSubSend
16:43:10, State - VuiSubSend.cde!Start
16:43:10, Event is [NULL]
16:43:10, State - VuiSubSend.cde!InitializeRecordStream
16:43:10, Event is [NULL]
16:43:10, State - VuiSubSend.cde!SendConfirmation
16:43:11, Event is [HangupEvent]
16:43:11,
<--VuiSubSend
16:43:11,
Event is [HangupEvent]
16:43:11,
<--VuiSubMenu
16:43:11,
Event is [HangupEvent]
16:43:11,
<--VuiStart
16:43:11,
Event is [HangupEvent]
16:43:12, Idle
When we get a no-match back from
the ASR engine, we don’t have any information about what the user may have
said. The call logs contain more information. You will need root access to get
them. They are under /var/opt/cisco/connection/log/callLogs.
Browse to the folder with the correct date. The relevant file will have the
same MRCP session id as above. Open the log and search for “lowconf”.
In the case above, we see:
TIME=20080728163419514|CHAN=EIIOFHHFAAAMKENEAAAAAAAA|EVNT=SWIrcnd|RSTT=lowconf|RENR=prun|ENDR=itimeout|NBST=8|RSLT={cisco:{MEANING:Cancel}}|RAWT=cancel|SPOK=cancel|GRMR=GURI0|KEYS=<cisco.MEANING conf="11">Cancel</cisco.MEANING><SWI_confidence
conf="0">0</SWI_confidence>|CONF=11|RAWS=-730.098572|RSLT={cisco:{MEANING:VuiIncreaseSpeed}}|RAWT=faster|SPOK=faster|GRMR=GURI0|KEYS=<cisco.MEANING conf="11">VuiIncreaseSpeed</cisco.MEANING><SWI_confidence
conf="0">0</SWI_confidence>|CONF=11|RAWS=-732.435974|SPMS=en.us_SecondPass4|MDVR=1809628356|NADP=0|CADP=0|LADP=N/A|MPNM=en-us/models4|DPNM=NA|MACC=NULL|MEDIA=audio/basic;rate:8000|EOSS=1000|DURS=1010|EOSD=1500|BORT=57|EOST=1180|EORT=1798|EOFT=1327|CPRT=1118|CPAR=0.292,0.168,-0.562,0.461,0.177,0.039,0.058,1.000,1.000,0.154,-1.291|LA=idle|OFFS=0.000000|SCAL=1.000000|SRCH=SB:0.0,WB:-78.0,PLB:-75.0,SPO:56.0,MA:6000|RSWT=2:1.0000,3:1.0000|RCPU=180|UCPU=9150|SCPU=2830
From this example, the ASR engine
thought the best match was “cancel.” The confidence score is 11 out of 1000.
This log information can be very useful when dealing with a foreign accent not
being recognized by the ASR engine. In those cases, the above log will show
that the engine recognized what’s in the actual captured wave utterance, but
the confidence score was too low.
Note that the ASR engine call logs
are always turned on.