Chapter 0 / General information 

 What is VoiceLauncher? 


VoiceLauncher is the very first voice recognition application publicly announced and made available for Treos, Centro, and Tungsten|T3. VoiceLauncher has been fully designed to take advantage of Treos and Centro specific features: 5-way navigator, phone application, signal and battery indicators just to give few examples.

VoiceLauncher is working on Treo 600, Treo 650, Treo 680 and Tungsten|T3. It has been successfully tested by third party users on Treo 700p, Treo 755p and Centro. Devices with PalmOS 5.2 or higher might work but have not been tested.

VoiceLauncher can launch applications, panels and phone calls with all above devices. It can dial through any helper compatible application, and is fully integrated with TAKEphONE phone application, allowing features likes pauses in phone numbering.

VoiceLauncher measures the surroundings noise level, a well-known feature of BrightCam, to adjust the microphone sensitivity.

 Where to download, where to buy? 


For latest information, new releases, coming features, special offers, please visit the official site:

 Chapter 1 / Creating and using a command 


Before you can launch a command with your voice, you have to create a voice pattern for each command. Voice patterns will be used every recognition, it is very important to create a good set of voice patterns to have the best results.

 Creating and naming a new command 

press to create a command

this is "Edit a command" page

name your new command

 Editing or selecting a phone number 

enter a number or a name

press to lookup a number

 Recording a new voice pattern 


Press to record a new voice pattern.

Recording a voice pattern requires five main steps:

  • Starting tone: If system sounds are enabled and is selected, VoiceLauncher will play a tone before recording a pattern.
  • Noise measure: After the starting tone, VoiceLauncher will measure the noise level to adjust its recording parameters. You have to wait 2 seconds before speakgin, to have a good noise measure: if not, you might not be able to record properly your pattern. If you notice that you were not able to speak your full pattern you should not speak earlier but do the opposite and wait a little more to give more time for the noise measure. This measure is more important in noisy situations.
  • Detecting your voice: After the noise measure has been achieved, VoiceLauncher is waiting for your voice and will detect the beginning of your voice pattern. Take your time, timeout is long enough and it won't affect your pattern length!
  • Detecting the end: VoiceLauncher will detect a silent space to detect when the voice pattern is finished. You can have several words in your pattern but avoid using too long spaces in your pattern: it may confuse VoiceLauncher.
  • Ending tone: An ending tone will notify if recording has been successful.

Press to save your new voice command.

 Adding some new commands 


 Editing an existing command 


Editing a command is easy, select your command and modify it with the button. You can record a new voice pattern, change the command name or application. The modified command will replace the previous one in your database, you can also delete the command or cancel your changes.

Commands can be stored in the main memory or on a SD card. Please refer to memory card section of this document.

 Launching a voice command 


Default method to search for a command is a long press on the screen power on button, but you can set it to any another key or launch a recognition from the main form.

Depending on your configuration, you will have to press the 5-way center button to confirm the recognized command is correct, you can talk to confirm this command, wait for it to be launched automatically, ... If VoiceLauncher finds the right command but doesn't launch it automatically, this is probably because you don't have configured VoiceLauncher to do so! Please select your preferred launching method in the "Preferences" menu as described in the next section of this document.

 Applications and preferences 


 Chapter 2 / Understanding the user interface 

 VoiceLauncher's main form 


Select [1] to go to "Edit a command" page and create a new command, this is the first thing you have to do to create new voice commands.

Select [2] to go to "Search a pattern" page and launch a voice command. VoiceLauncher can also start directly with the "Search a pattern" page, this is explained later in this tutorial.

Select [3] to go to the "Edit a command" page with the selected command.

Green icon [4] lets you move your database from your SD card to the main memory. Red icon lets you move your database from the main memory to your SD card, icon reflects the current configuration.

Uncheck this option [5] to disable VoiceLauncher.

VoiceLauncher is detecting automatically if a headset is plugged into your Treo. This or icon [6] tells you in real time the configuration VoiceLauncher has detected.

 VoiceLauncher's edition form 


The most important point is the application [1] you want to assign to your voice pattern: this is the action that will be launched after your voice command has been recorded, compared and recognized by VoiceLauncher. Your action can be any application, a preferences panel, a phone number to call or an URL address to open with a browser. Some fields may appear or disappear depending on the command you have selected.

You can name [2] your command, this text will appear to show the command VoiceLauncher has recognized and is about to launch.

You may want to create different voice commands for a headset or normal use. You can enable and disable a command [3] for each mode. If you never use a command when you are in headset mode, it is a good idea to disable it for this mode: VoiceLauncher won't compare your voice command to this pattern, it will improve both recognition and speed.

When you select a phone application, the default one, TAKEphONE or the default "Initiate a phone call", four buttons [4] will let you search a phone number in your address book. First button reports the first available number for a contact, other buttons are reporting work, home or mobile numbers. Note that, when used on a Treo 650 device, only one search button is available and will let you select any type of number from your contacts.

The number to dial or the URL address to open has to be configured in the [5] field. You may be confused by the three lines, this is just the same field but you may need to have more digits to enter and one line could be too limited, same if you are entering an long URL address for your browser.

When selecting a phone call, and only in normal mode and not in headset mode, you can configure the [6] option to have your call automatically in handfree mode.

You can re-record [7] your voice pattern if needed.

You can listen [8] the current voice pattern.

Finally, you can cancel your changes or save it with the [9] button.

 Chapter 3 / Configuring your preferences 

 Advanced launching options 


You can configure how to launch voice commands in different ways, the following might differ on different devices. If you have a Treo 600 for example you can select:

  • 5-way navigator center button: press a long time the center button will launch recognition
  • Phone key (hard 1): press a long time the key to launch recognition
  • Calendar key (hard 2): press a long time the key to launch recognition
  • Messaging key (hard 3): press a long time the key to launch recognition
  • Screen power key (hard 4): this is the default key, press a long time to launch recognition
  • Any other key: you can assign VoiceLauncher to any other key with a third party application, in this case you might confirm VoiceLauncher to start with the recognition page with the next option


If this option is selected, VoiceLauncher will start with the recognition page. To go to the main page you have to wait for the recognition timeout and press the button.


VoiceLauncher can measure the noise to detect a voice command and launch the voice recognition when the noise is above a defined threshold. When this feature is enabled, VoiceLauncher is measuring the noise level every second and it will reduce your battery duration. Please note that you should configure the threshold properly if you want VoiceLauncher to start only when needed! Voice detection is enabled only when the Treo is off, and it takes a few seconds before detection really begins...

 Headset and earpiece options 


VoiceLauncher can detect if a headset is present, and if headset playback wizard is enabled will redirect system sounds to your headset. Detection of the current setting occurs in real time when VoiceLauncher is running, or when switching from one application to another.

Please note: due to a PalmOS limitation, direct bluetooth headsets are not supported. Bluetooth headsets using a bluetooth wired adaptor are fully working with VoiceLauncher on Treo 600 and Treo 650. Please refer to the bluetooth section in this tutorial to learn how to launch a phone call with a direct bluetooth headset.


This option is used when searching a voice command with the device microphone or the headset microphone. If VoiceLauncher is configured to repeat the best matching pattern, command will be repeated through the device earpiece or headset instead of the device speaker.


You may have noticed that your device don't play system sounds through your headset unless you install a third-party application. When this option is selected, VoiceLauncher will enable playback through your headset without additional application needed.

 Headset button and scripting options 


When headset button detection is enabled, you can launch a voice command with your headset button. The headset button can launch VoiceLauncher at any time. When searching a command, the button will be mapped to let you confirm the command depending on your preferences.


You can launch VoiceLauncher to search for a voice command from your headset button. When this option is selected, and even if the device is turned off, VoiceLauncher will detect the button. During a phone call this feature is disabled to let you start and end your call. During the countdown after searching a command, headset button is used to confirm or cancel execution depending on your choice.

Button mapping during VoiceLauncher countdown in non-Jabra mode:

  • Manual confirmation: Simulates a "5-way navigator center" event, VoiceLauncher will launch the command.
  • Voice confirmation: Simulates a "5-way navigator center" event, VoiceLauncher will launch the command.
  • Automatic confirmation: Simulates a "5-way navigator down" event, VoiceLauncher will cancel the command.
  • Audible confirmation: Simulates a "5-way navigator down" event, VoiceLauncher will go to the next command.


Jabra BT200 for Non-bluetooth phones can send button events to your phone. It may or may not send a second event when you move it from standby to active mode, a very annoying situation that would terminate your call just after beginning it! If you encounter such a problem, this option will detect and delete this second event.

Button mapping during VoiceLauncher countdown in Jabra mode:

  • Manual confirmation: Simulates a "5-way navigator up" event, VoiceLauncher will cancel the command.
  • Voice confirmation: Simulates a "5-way navigator up" event, VoiceLauncher will cancel the command.
  • Automatic confirmation: Simulates a "5-way navigator up" event, VoiceLauncher will cancel the command.
  • Audible confirmation: Simulates a "5-way navigator up" event, VoiceLauncher will cancel the command.

When you move your Jabra headset from active mode to standby mode, a button event is sent to the device: you can use this to cancel your command. If you want to disable your headset without sending this event you should turn the headset off: turning the headset on or off won't send a headset button event.


Seidio 2-in-1 is sending a button event when you move it from phone mode to mp3 mode. When this option is selected, VoiceLauncher detects if headset is disabled when receiving a headset button event and will delete this event if needed. As VoiceLauncher has to wait a moment to detect your Seidio status when detecting the button event, you may not use this option if you don't have a Seidio 2-in-1 or don't want to ignore this event.


This option will enable advanced application scripting feature. When enabled, a new field "Add keys" is available when creating a new voice command to let you specify virtual keys to enqueue when launching the command. Enqueued virtual keys are seen by the system as if you were really pressing these keys. A space must seperate two commands and commands can be:

  • Predefined keys: available keys are up, down, left, right, center, hard1, hard2, hard3, hard4, power, cradle, menu, command, confirm, backspace, delete, shiftin, shiftout, autooff and poweroff
  • Quoted strings: for example "password" will send events as if you were pressing keys P, A, S, S...
  • System actions: 5way will enable 5-way navigation in applications that don't enable it by default
  • Key by number: center key is number 0136, you can specify directly any key number but you should not do that if unsure of what you are doing!

For example you can automate SplashID password with up "password" down center, start BackupBuddyVFS with center... Some applications like PocketTunes won't let you enqueue 5-way navigator events: you can use command to call menu shortcuts as a workaround: command "P" command "C" will start playing the music and turn the screen off.

This feature can do whatever you need, but you should use it with care: VoiceLauncher will virtually press keys you are requesting but won't know anything about the meaning!

 Search preferences 


Most parameters should be fine for users, but you can modify them if needed. Increasing the search optimization level will increase speed, but moving it too high could also increase false recognitions. Noise dynamic compression can improve your recognition results, but changing this parameter may require re-recording your whole database: if you want to try this parameter, it is recommanded to search for VoiceLauncherDB.pdb in your hotsync folder on your computer and to make a copy to be able to retore this file later.

When enabled, Adaptative Learning System will adapt your database with your own experience. When a voice command is launched, VoiceLauncher keeps your new recording in its database and will compare your new pattern with the ones in your database. Only the best matching patterns are kept so that VoiceLauncher will select the pattern with the best recognition score. When the feature is disabled, VoiceLauncher uses your initial recorded pattern. Recording a new voice pattern will reset history for this command.

When automatic confirmation is selected, history will be updated automatically when a command is launched, meaning that you are supposed to cancel any wrong command so that VoiceLauncher won't train in a bad way. If you don't want this automatic feature, VoiceLauncher will learn your commands only when you manually select and confirm a recognized command.

You must disable the automatic feature if you want to use an instant launch configuration: VoiceLauncher requires your feedbacks to make use of this feature!

 Advanced recording options 


You can set different preferences when using VoiceLauncher from your device or from your headset. For example you can have automatic confirmation when using your device, and choose a manual confirmation when using your headset and then press the headset button to confirm a command. The little or and the title of the form reflect which parameters you are modifying.

You can modify advanced parameters, but this is only for advanced users: if you want to revert to default values, press the cancel button!

  • First column configures the microphone sensitivity depending on the noise level. If the noise level is greater than Threshold, the microphone volume is decreased by Percent until Minimum is reached. Experiments show that automatic adjustment works fine with the Treo microphone, but should not be used with a Seidio headset.
  • Second column configures the voice detection. VoiceLauncher measures the current noise volume and will start recording if the volume is greater than noise+Threshold or greater than Minimum+Threshold if noise is lower than Minimum. Percent, if not null, will increase Threshold depending on the noise measured. If VoiceLauncher has some difficulties to detect your voice, you may increase Minimum and decrease Threshold, but you should keep the sum unchanged.

Because noise might be a problem with voice detection in very noisy situations, here is a trick reported by a user if you want to use VoiceLauncher in noisy conditions like in a car. Select a low threshold so that VoiceLauncher can detect when your command starts and stops and record patterns in your car with the engine running: you will create cropped voice patterns. Now, set a high threshold for normal use, so that you get a same cropped pattern while recording, et voila! Thanx to Les for finding the trick...


VoiceLauncher can record patterns at different sampling rate. A higher rate will give more details and will increase recognition result, but it will create a bigger voice pattern and will require more calculation time. 8kHz can give good results most of the time, but you can select a higher rate if needed. During recognition, if your current command sampling rate is different than the one used for your voice pattern in your database, the lowest sampling rate will be used to compare patterns.

Best recognition results are available with a 11kHz setting on Treo 600 devices: you may try 12kHz, 16kHz or 22kHz with Treo 650 and Tungsten|T3 devices.


This option will be probably the most useful to fit your needs, and it is quite simple to configure. You can use the button to reset to the default value. Green-red limit is the default x1.0 sensitivity, yellow-green limit is a x0.5 sensitivity, white-yellow limit is a x0.25 sensitivity, and most right value is a x1.5 sensitivity. Setting a lower sensitivity reduces the surroundings noise recorded when you talk a command to your device. Obviously, if the microphone sensitivity is lower, you will have to speak louder or closer to the microphone. The selected value will also be used as a reference for the previously described option.


You can enable or disable a sound notification while recording a pattern. This notification requires the system sounds to be enabled.


VoiceLauncher can repeat the voice command before searching in your database for a matching pattern. This option will let you know the pattern that has been recorded and will let you cancel the search and start a new recording if your command is cropped.


VoiceLauncher can measure the surroundings noise level to adjust the microphone sensitivity. If the option is enabled, it will reduce the surroundings noise recorded with your command and will increase recognition in noisy situations. At the same time, you will have to speak louder or closer to microphone...


After a pattern recognition, you can select different ways to confirm your command. Each mode can either repeat the voice pattern recognized or keep silent, except audible confirmation that requires the matching pattern to be heard.

  • Manual confirmation: The 5-way navigator focus is placed on the best matching pattern, to confirm the command you just have to press the center button.
  • Voice confirmation: VoiceLauncher will measure the noise level to check if you are speaking during about two seconds. If you say anything, that will launch the command. If you keep silent, the command won't be launched. For obvious security reasons, this option can't work in noisy situations...
  • Automatic confirmation: VoiceLauncher will wait a few seconds and will launch the command unless you move the focus with the 5-way navigator. The 5-way focus is on the record button, pressing it will record a new pattern.
  • Audible confirmation: This is about the same option as above, but it you press the 5-way down button VoiceLauncher will repeat the second command and will wait again for two seconds, and so on.
  • Instant launch: Same as automatic confirmation but with no delay.

 Chapter 4 / Bluetooth and memory cards 

 Bluetooth headsets and Treo 650 


Due to a PalmOS limitation, recording from a bluetooth headset is currently unsupported. However, it is possible to detect the headset button when using a bluetooth headset, and to assign a special command for this event. You can use this feature to initiate a specific phone call. For example, some operators have a specific number that will let you do voice numbering: this feature will let you call this number from your bluetooth headset.

How to dial a phone number from a bluetooth headset? First, be sure that "Detect bluetooth headsets" checkbox is checked in your preferences, and "Jabra non-BT workarounds" unchecked. Go to the "Edit a command" page, and configure your command without recording any voice pattern. Keep "Initiate a phone call" as your action in the popup trigger, then in the phone number area enter the number to dial. Press to save this new command.

Headset button detection may differ depending on your headset:

  • Jabra BT200 bluetooth headset triggers VoiceLauncher when you press its button to power it on or to connect to your phone
  • Cardo Scala 500 bluetooth headset requires a long push on the headset button to trigger VoiceLauncher
  • And yours? Feel free to send a message to share your experience with your own headset!

Detect wired headsets
+ recommanded on Treo 600:
Jabra non-BT workarounds

Detect wired headsets
+ recommanded on Treo 600:
Seidio 2-in-1 workarounds

Detect bluetooth headsets
or (but not recommanded):
Detect wired headsets

Detect bluetooth headsets

 Memory card support 


Commands can be saved either on the main memory or on a memory card. When the application is launched and if no database exists in the main memory, or if this database is empty, VoiceLauncher searches for a database in the memory card (if one is available) in standard /PALM/Launcher/ directory. Database is copied in the main memory and removed from the main memory when exiting, changes if any are copied to the memory card. Please note that using the database from the memory card requires a short delay when starting and exiting the application.

You can move the database from the memory card to the main memory, or from the main memory to the memory card. Use the button to move the database from the main memory to the memory card, database is removed from the main database. Use the to move the database from the memory card to the main memory, database is removed from the memory card.

Any existing database on a memory card won't be used if a non-empty database exists on the main memory. If, for any reason, you need to restore a different one from a memory card, delete all commands from your local database and launch VoiceLauncher again. As your local database is now empty, the one on your memory card will then be used.

VoiceLauncher can also run from a memory card, but special searching keys and background voice detection won't be available. These features require VoiceLauncher to receive some events from the system, and events are not sent to applications on a memory card... As the application is not that big and the database can be saved to the memory card, you should prefer using VoiceLauncher from the main memory.

 Chapter 5 / VoiceLauncher version history 


2007-11-01: VoiceLauncher 1.1.1

  • Primary Treo 755p support
  • Primary Centro support

2007-01-01: VoiceLauncher 1.1.0

  • Primary Treo 680 support

2006-06-14: VoiceLauncher 1.0.9

  • Primary Treo 700p support

2006-03-27: VoiceLauncher 1.0.8

  • Code cleanup in events loop
  • New graphics

2005-08-05: VoiceLauncher 1.0.6

  • New bluetooth headsets detection

2005-07-26: VoiceLauncher 1.0.4

  • Fix a compatibility issue with PiLoc
  • Better bluetooth headset button support

2005-05-10: VoiceLauncher 1.0.2

  • Fix a crashing issue with virtual keys
  • Fix a minor issue forcing handfree during calls

2005-04-19: VoiceLauncher 1.0.1

  • Name of the selected contact is kept to name new commands
  • New feature to repeat the recorded pattern and cancel the search
  • Minor changes

2005-04-06: VoiceLauncher 1.0.0

  • LED indicator while recording
  • Mono/stereo issue fixed for Treo 650
  • New flavours available: french, spanish

2005-04-01: VoiceLauncher 0.9.38

  • Fix a voice activation issue preventing poweron on Treo 650
  • Fix an issue preventing call answering from a headset

2005-03-31: VoiceLauncher 0.9.37

  • Improved bluetooth headsets support
  • New indicators while recording
  • Reduced database size
  • Reduced memory usage causing problems on some 650 CDMA devices

2005-03-24: VoiceLauncher 0.9.34

  • New adaptative learning system
  • Creation process simplified
  • Handsfree issue fixed

2005-03-16: VoiceLauncher 0.9.31

  • New feature to initiate a phone call from a bluetooth headset
  • Handsfree mode fixed on Treo 650

2005-03-11: VoiceLauncher 0.9.30

  • Virtual key events fixed
  • Volume buttons added to confirm/cancel
  • Side button quickstart fixed
  • Side button to restart voice recognition

2005-02-21: VoiceLauncher 0.9.24

  • Minor issue fixed

2005-02-16: VoiceLauncher 0.9.23

  • Jabra for non-bluetooth button fixed
  • New icons

2005-02-14: VoiceLauncher 0.9.22

  • Voice commands can be sorted by name, size and application
  • Fix the sound issue with earpiece/speaker/headset
  • Fix the countdown problem on Treo 650
  • Quickstart keys improved on Treo 650

2005-02-08: VoiceLauncher 0.9.19

  • Quickstart "long press" keys for Treo 600 and Treo 650
  • New recording modes added, 16kHz and 22kHz

2005-02-07: VoiceLauncher 0.9.18

  • Fix the counter issue on Treo 650

2005-02-04: VoiceLauncher 0.9.17

  • Searching function from 2x to 6x faster!
  • Automatic dynamic expansion for noisy situations
  • New noise compression algorithm
  • Enables 5-way navigation in applications that don't support it
  • Redirect (or not) ringing tones on your Treo speaker for incoming calls
  • Fix an issue when storing database to a SD card
  • Fix an issue with T|T3 SD card
  • Fix an issue when opening "Noise analysis" on T|T3
  • Turning the Jabra off during a ringing call won't hang up: turn it back on to answer the call

2005-01-16: VoiceLauncher 0.9.9

  • New virtual keys added
  • Fix a problem with virtual keys not enqueued
  • Extended automatic launch with lower delay

2005-01-13: VoiceLauncher 0.9.8

  • New virtual keys added
  • Fix a problem while updating very old database
  • Fix a problem in menus with Tungsten|T3

2005-01-11: VoiceLauncher 0.9.7

  • Application scripting with virtual keys to enqueue
  • Improved general recognition
  • Minor fix when not using quickstart keys
  • Minor graphic and user interface fixes

2004-12-17: VoiceLauncher 0.9.5

  • "Don't tell anyone" option extended to headset mode

2004-12-15: VoiceLauncher 0.9.4

  • Jabra button workaround when moving to active mode
  • Seidio 2-in-1 button workaround when moving to mp3 mode
  • Earpiece support when repeating voice patterns

2004-12-07: VoiceLauncher 0.9.0

  • Headset playback/detection are now two options
  • Minor changes and fixes

2004-12-01: VoiceLauncher 0.8.8

  • Automatic headset detection

2004-11-30: VoiceLauncher 0.8.7

  • Improved speed
  • Enable recording from a headset
  • Enable system sounds on your headset
  • Headset button detection when Treo is sleeping
  • Increased threshold range for voice detection
  • Improved noise measure for a better mic. adjustment
  • Improved phone number lookup
  • Different settings for device and headset

2004-11-23: VoiceLauncher 0.8.5

  • Improved general recognition
  • Tungsten|T3 support
  • New pattern level calculation
  • New pattern normalization algorithm
  • New improved microphone sensitivity adjustment

2004-11-18: VoiceLauncher 0.8.2

  • Some minor bug fixes and code cleanup

2004-11-15: VoiceLauncher 0.8.0

  • Memory card support to store the database
  • Application can run from the memory card

2004-11-13: VoiceLauncher 0.7.6

  • Treo 650 keyboard API support
  • Treo 650 side button support
  • Keyguard disabled when PowerOn button is used
  • Some minor bug fixes

2004-11-05: VoiceLauncher 0.7.4

  • Phone numbers lookup
  • Browser URL address
  • Background voice detection
  • Silent mode (no repeat)

2004-11-03: VoiceLauncher 0.6.9

2004-10-29: VoiceLauncher 0.6.6

  • New launch option
  • New microphone sensitivity option

2004-10-28: VoiceLauncher 0.6.5

  • Extended automatic launch
  • Increased phone number length

2004-10-26: VoiceLauncher 0.6.3

  • TAKEphONE integration
  • Automatic confirmation
  • Standard phone helpers

2004-10-25: VoiceLauncher 0.6.2

  • Better recognition in noisy surroundings

2004-10-25: VoiceLauncher 0.6.2

  • Better recognition in noisy surroundings

2004-10-24: VoiceLauncher 0.6.1

  • Headset button first support

2004-10-22: VoiceLauncher 0.6.0

  • First official public release

Last update 2007-11-01
Copyright © 2004-2007 J.F.Morreeuw. All rights reserved.