Voice LookUp for the iPhone 1.0

Getting Started

The first step you need to perform to use voice lookup is create a User Profile.  Until you create your first profile it will automatically take you to the "Enroll Screen" for you.  You can also get to the enroll screen by selecting "User Profiles" and then selecting an existing profile or press the "edit" button, then the "+" to create a new profile.
  
In the Enroll screen you begin the process by pressing the "start" button.  It will display a message box which describes how to enroll.  The most important things are "always enroll in a quite environment and you should hold the phone to your head as if you were speaking on the phone.  The enroll process will begin by saying the prompts and waiting for you to repeat.  Each prompt will be repeated once if you do not respond within a couple of seconds after being prompted.  If you want to hear the prompt again press the play button on the toolbar.  The enroll process consists of about 60 short phrases. When enroll completes it will ask you to enter a user name.
  The enroll screen can also be used to perform additional training normally for either commands or digits.  You use the sliders to select which areas of the enroll you want to perform.

  After creating a User Profile then begin using the voice commands. 

Commands

There are 2 types of commands, user commands and recognizer commands.  The user commands are the most common commands you will use in Voice LookUp.  These commands are the spoken operation you can perform with the device.  The recognizer commands provide the user access for controlling recognition like switching between command and training mode.

Command mode is the default mode the application start in.  In command mode when you say a command that command is echoed back to you, a 5 second cancel message is displayed, and then the command is launched.  When the command starts Voice LookUp stops. 

Training mode is available to let you perform interactive training.  In training mode after you say a command, it is echoed but not launched.  By not acting on the command Voice LookUp remains running and is available to perform training.  This is a great way to increase the accuracy of your profile.  It allows you to train both commands and data like your contact names.  Voice LookUp needs you to tell it when it got a correct command, which you do by saying, "train last command".  An example of how to use training mode;

Say,"training mode",  it will say "training mode"
then say a command like, "status", if it correctly replies "status" then the command was correctly recognized and you should train it by saying, "train last command".  If it does not reply with "status" repeat until it is does.  If after trying 3 or 4 times still does not respond then you should return to the Enroll Screen with you user profile and do additional training of the commands.  You can use the slides to just train commands.

The command, "train last command" is very important in this process.  So you should make start by making it more accurate by training it. Since we are already in training mode.

Say, "status" if it says "status" then say "train last command"

At this point we just trained the "status" command and the last command is now the "train last command" so if we say "train last command" again it will train the "train last command" and make that command more accurate.

Continue saying commands and when they were correctly recognized use the "train last command" to improve your user profile.

User Commands
browse bookmark - Launches Safari and open the bookmarked web page.
locate nearest location - Launches maps and show the nearest location
locate location - Launches maps and show more locations
locate home contact - Launches maps and show the contacts home address
send email contact - Launches mail with new message addressed to the contact's email address
send text contact - Launches SMS with conversation with the contact's mobile phone entry
call mobile contact - Launches phone calls the contact's mobile phone entry
call home contact - Launches phone calls the contact's home phone entry
call work contact - Launches phone calls the contact's work phone entry
dial number - Launches phone dials the number 

Recognizer commands
terminate - Shuts down Voice LookUp
status - Tells you if you are in command or training mode
echo on - Turns on the verbal command response
echo off - Turns off the verbal command response
training mode - Starts training mode, in which does not issue the command
command mode - Returns to normal operation will act on spoken commands
train last command - trains the user profile for the previous spoken command
save user - Saves the user profile, use after performing train last commands

About the Recognizer
The recognizer uses commands and user profiles.  The words in the commands provide the structure of which the recognizer matches what was spoken.  The recognizer uses a special "alphabet" or symbols to store the pronunciation of all the words in the commands. This is the phonetic spelling much like you would find in a standard dictionary. For the commands words that are built into the application the phonetic spelling is know in advance and built into the application.  However, many of the words in the commands are configured by the user, as with either entries in your Address Book, or trigger words configured for locations and bookmarks.  For these words the application makes a "best" guess on the proper pronunciation for these words.  Sometimes the guess is not so good and need to be "fixed" by the user. It is important to have good word pronunciations because they are how the recognizer is determining what you say.  Good pronunciation will improve accuracy.  

The Pronunciation Editor view in the application provides the user with a simple way to "fix" these pronunciations.  

1. Press play to hear value.
2. Press microphone and say the phrase to build list of new values.
3. Select different pronunciations and play until you find the best match, then save.

The other new concept is a user profile.  The user profile stores a description of your voice.  

Four different User Profile operations
	1.	Enroll create new
	2.	Train commands and or digits in the Enroll View
	3.	Train contacts, locations and BookMarks in the Editor View
	4.	Interactive training mode by voice

The User Profile is where the characteristics of your voice are stored sometimes called voice models in the recognition community.  You create user profile in the Enroll view either at the initial startup or buy adding a new entry in the User Profile list.  

There can be multiple user profiles stored on the phone but only one profile one for you, or your spouse or children.  Only one profile is active with the recognizer.  The current "Active User" has a check mark by it in the User Profile View. To change the active user profile you need to navigate into the User Profile view, select the entry you wish to make active, and in the Enroll view toggle the "Active User" switch to ON and leave the Enroll View.

The Enroll View has one other capability it can perform, which is to train commands and digits.  To improve you user profiles' accuracy for recognition of commands or digits, you can return to the Enroll View by entering the User Profile View, selecting and entry an entering the Enroll View.  When you enter the Enroll view with an already created user profile the "Train Basic" switch is in the OFF position.  This means you do not need to create your basic user setting.  More importantly the "Train Commands" and "Train Digits" switches are ON.  In this configuration the user can run through the Enroll prompts for commands and digits to improve their profile for better accuracy for these words. 

If you are experiencing poor recognition you can do more training on commands and digits with the Enroll view. Select what areas you want to train and turn on the microphone and say each of the prompts.  This is the best way to improve accuracy. 

Once commands are working well then it is common for user to start using the dial command and need to do additional digit training.  By using the Enroll view's "Train Digits" only the user can quickly run through prompts to improve digit accuracy.

There is one more area where the user profile can be trained, which is the pronunciation editor.  As we saw earlier the pronunciation editor allowed user to fix a word's pronunciation, it also provides a means to train the user profile for given words. If you have two names in your Address Book which sound very similar and are not able to get both to respond to voice commands, then you should train these Address Book contacts.  In my case I have two names, Jeff Becker and Jeff Tanner which did not work well after training commands.  When I said, "call home Jeff Becker" and "call home Jeff Tanner" I always got the response, "call home Jeff Becker".  To fix this issue I entered the Contacts view, selected Jeff Becker, and in the Pronunciation Editor it pressed the microphone and said, "Jeff Becker", then hit trian.  Then I returned to the Contacts View, scrolled down to Jef Tanner, selected the entry, entered the Pronunciation Editor, hit the microphone button, said "Jeff Tanner" and hit train.  Returning to the main screen and test both "call home Jeff Becker" and "call home Jeff Tanner" and both worked fine.

Training is very important.  With a little bit of training the voice recognition will get very accurate in both quite and noisy situations.  So far I have described three different way you can improve your user profile, first by creating your initial profile in the Enroll view, how you can use the Enroll View with a user profile and train commands and digits, and finally how you can train contacts, locations, and browser urls in the Pronunciation Editor Views.  There is one more way for you to perform training which is an interactive "Training Mode".

Interactive training mode is a voice command you can use which tells the application not to "execute" the spoken commands instead they are only echoed back to you. Normally the application is in "command mode" which means when you say a command like "locate peets coffee" the applications starts up the maps applications and goes to sleep. However, in training mode the applications does not start the maps application and continues processing commands.  In Training mode users can , say a command, hear it echoed back indicating correct recognition, then say "train last command", which will train the last command.  The user can repeat this operation for many different commands and different contacts to quickly train up your user profile.  At the end you can say "save user profile" and all your train will be saved.

Managing Contacts
Sometimes people have lots of contacts which can cause users to experience long start up times.  If you have lots of contacts, (say more then 500) Voice LookUp will create a new group called "Voice LookUp" for you to put the contacts that you want voice access to.  To view the contacts select the "Contacts" entry to see the list of entries.  To manage the entries in the list select the "edit" button.  This will take you into a list of all your contacts in your address book.  To add or remove contacts select the contact and it will change to have a check mark on or off.  If the check mark is on then the contact will be included in the Voice LookUp group and be available in your voice commands.  If there is no check mark then the contact in not included in your group. You should start with 10 or so contacts then increase the number as you see fit. Include contacts with a street address to use with the locate home <contact> command.

Managing Locations
The locations screen allows you to edit a list of locations by voice that you.  I’ve included a few entries as examples.  
To add or delete locations select the "edit' button in the top right hand corner and it will bring up controls to add and delete entries. Press the "+" button to add a new location string. When you enter a new locate command string the location needs to be ale to be resolved into a address by Google. When you use the location command the location value will be sent to google along with your current location is opened in Maps. 
To remove a location press the "-" button and then "delete".

Managing Bookmarks

The BookMarks screen allows you to edit a list of URLs which you can launch by voice.  I've included a few entries as example.  When you say the tag word then the url is opened in Safari.
To add or delete locations select the "edit' button in the top right hand corner and it will bring up controls to add and delete entries. Press the "+" button to add a new location string.  When entering a new bookmark you provide a phrase to say along with a URL.  When you use the "browse <bookmark>" command it will launch Safari giving it the URL you provided.
To remove a location press the "-" button and then "delete".