Upload
pavel-ruzicka
View
2.469
Download
1
Embed Size (px)
DESCRIPTION
How to enter a letter via DTMF? How to make a list in your VoiceObjects voice application shorter?
Citation preview
Pavel Růžička, January 2012T-Mobile Czech Republic
How to make a listin a voice app shorterby entering letters via DTMF
2
Pavel Růžička, January 2012T-Mobile Czech Republic
Agenda
•List – hidden treasure of VoiceObjects•When a list is too long•How to enter letters via DTMF•Let the user navigate by a letter•Optimization•Summary•Example to import into your project•Resources
3
Pavel Růžička, January 2012T-Mobile Czech Republic
List object – a treasure of VoiceObjects•allows users go through collection of data
•without significant effort of a developer•it's like an audible excel sheet with unified navigation
4
Pavel Růžička, January 2012T-Mobile Czech Republic
When a list is too longAfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua And BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia And
Herzegowina......Trinidad And TobagoTunisiaTurkey......Zimbabwe
• Imagine a list of countries
• Isn't it cruel to let the user go through 216 items to reach Turkey?
5
Pavel Růžička, January 2012T-Mobile Czech Republic
Make the user closer to the target
TaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos
IslandsTuvalu
•make the list alphabetically ordered
•offer items starting with a chosen letter• approximatelly 12 items starting with the same letter• Turkey is 10th
• isn't that nice?
6
Pavel Růžička, January 2012T-Mobile Czech Republic
Is it possible to enter letters via DTMF?
• of course by CCITT it recognizes also A,B,C and D• but not on common phones. It's too little, it's useless.
• there is other possibility – users know it from sending SMS• e.g. for B you need to press the key twiceA - 2
B - 22 ...O - 666...Z - 9999
7
Pavel Růžička, January 2012T-Mobile Czech Republic
What do we need to get a letter from DTMF digits?• input object with grammar for 1-4 digits
• good explanation what you expect from the user
• translation collection
• VALUESUBSTITUTION expression
8
Pavel Růžička, January 2012T-Mobile Czech Republic
Input with TTG grammar and with translation expression
9
Pavel Růžička, January 2012T-Mobile Czech Republic
Translation the input result value
10
Pavel Růžička, January 2012T-Mobile Czech Republic
Digits are translated – but what if user needs to enter a real
digit?• the approach of translation prevents users to enter
the real value of a key
• we should offer an alternative how to enter any digit
• only one key at once is valid for generating a letter• we can recognize different key as a request for suppressing the translation
• if the entered value is not in the translation collection – return the first pressed key• 22 will be translated as B• 963, 7*, 54 are not in translation collection
only first digit will be taken: 9, 7, 5
11
Pavel Růžička, January 2012T-Mobile Czech Republic
Check if the entered value can be translated
• FINDROW expression to check if the value exists in the translation collection
12
Pavel Růžička, January 2012T-Mobile Czech Republic
Translation or assign unchanged value?• CONDASSIGN expression to conditionally assign translated or
unchanged value• LEFT to return only the first pressed digit (unchanged value)
13
Pavel Růžička, January 2012T-Mobile Czech Republic
Wrap it to sequence with confirmation
• Confirmation object to confirm and, if necessary, to correct information from the preceding dialog
14
Pavel Růžička, January 2012T-Mobile Czech Republic
Long list - let the user navigate by the first letter
TaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos
IslandsTuvalu
•filter out unnecessary items • copy the collection to a temporary collection and
then with ITERATE and DELETEROW expressions delete redundant items
•scroll the list down to the first item starting with chosen letter• you need to find row index of the item going through the collection using LOOP object or ITERATE expression with INDEX • then update row index of the list• you have to ensure there is at least one item starting with the letter
15
Pavel Růžička, January 2012T-Mobile Czech Republic
Other optimization• include special chars to the translation collection like _ . @ #
<row> <col name="key">1</col> <col name="default">.</col> </row><row> <col name="key">11</col> <col name="default">_</col></row><row> <col name="key">*</col> <col name="default">@</col></row>
• since grammar allows to enter 4 digits it's good to translate 4th press of a key with only 3 letters as well as 3rd letter to help users avoid of mistyping<row>
<col name="key">8</col> <col name="default">T</col></row><row> <col name="key">88</col> <col name="default">U</col></row><row> <col name="key">888</col> <col name="default">V</col></row><row> <col name="key">8888</col> <col name="default">V</col></row>
16
Pavel Růžička, January 2012T-Mobile Czech Republic
More than one letter at once
• enhanced algorithm could allow to enter more than one letter at once• grammar needs to be changed• way of confirmation needs to be changed to confirm after whole input• whole input needs to be splitted by clusters of the same key to collection,
then translated• real digit in the input could be followed by an asterisk (*) or by 1 wich has no
meaning
• could be useful for experienced users, special applications, admin interfaces• you can enter alphanumeric password, e-mail address etc...
17
Pavel Růžička, January 2012T-Mobile Czech Republic
Summary
• create a special input for entering a letter by numbers with proper grammar• sequence with confirmation will make it much more useful
• fill the translation collection and implement translation into postprocessing of the input
• use the letter from the input for your alphabetically ordered list as an key for filtering or scrolling down
• here is an example with the translation collection to import into your project OneLetter_Example
.xml
18
Pavel Růžička, January 2012T-Mobile Czech Republic
Resources• Natural Dialog Management.pdf
• VoiceObjects Help
19
Pavel Růžička, January 2012T-Mobile Czech Republic
Pavel RůžičkaProgrammer – AnalystService Development Department
T-Mobile Czech Republic a.s.Tomíčkova 2144/1, 149 00 Praha 4T-Mobile: +420 603 416 974E-Mail: [email protected]