Chapter 3: Atlas Speaks

Atlas Speaks provides people with visual disabilities access to street map information that would be otherwise unavailable to them. It is a "talking map" that runs on a home computer. It allows such people to find their way around their own neighborhood, or any city in the United States. It will soon be available for cities in Canada. In Fig. 13 , a block diagram of the software shows how all of its components are related to each other.

3.1 Layout of Atlas Speaks

The physical layout consists of a main screen containing the map that the user is currently exploring, and a smaller bottom screen containing address specific information as well as other important information. See Fig. 1 for the physical screen layout of Atlas Speaks. A graphical representation of the map, as well as an audible representation, is provided for those who have low vision and use screen-enlargement technologies to access the program. Drop-down menus are used with the aid of cursor keys to move through the menu items, and as each item is highlighted, the menu item is announced to the user.

3.1.1 Map Area

The map area displays the map that the user is currently "travelling over". The user can travel this virtual map using the cursor keys. The up key moves the Atlas cursor forward, right and left to turn to the next available street on the right or left accordingly, and the down key is used to "undo" the last move the user has made. The Atlas cursor is a pie shaped icon that floats transparently over the map, but is fixed to the streets of the city. Atlas Speaks uses maps and the map display software from ETAK Inc. , a United States map company. ETAK supplies digital maps for the entire United States, and as soon as an agreement can be reached with Statistics Canada, maps for Canada will be available for Atlas as well. The detail level of the map is scalable using the plus (+) and minus (-) keys, so that the user can either zoom into a specific block, or zoom out to see the entire city, region, state, or province. As the user travels along the city streets and reaches the border of the screen, the map automatically pans, and the user is placed at the center of the screen at their new position.

Figure 1: Atlas Speaks Mapf

3.1.2 Message Window

The message window or bottom screen contains address information as well as other important information that the user may require. As seen in Fig. 1 , Address, Heading, and Trip information is provided. The information presented in this window can also be accessed through assigned keys. By pressing these keys the program will announce the information contained within this window. For example, the "a" key could be programmed to find out the current address the user is at, or the "c" key used to obtain cross street information. The "Ins" key is pre-assigned to be the "Where am I" key, this gives address, cross street information as well as any other information the user needs. Appendix B contains a list of all available functions from which the user can pre-program the keys. The lower half of the message window is the ongoing audit-trail of speech that has been spoken to the user. This is a three-line history of the latest items spoken.

3.2 Features of Atlas Speaks

It has a number of powerful features that allow the user to fully explore the current map, as well as the ability to switch maps easily. It has the ability to create and automatically find routes to a specific destination. The user can also add detail to the map through a "Point of Interest" file, to which they can add any number of important places they wish to annotate, and be informed of while travelling the map. Atlas Speaks will guide the user along pre-created routes, and will inform them when they have reached a "Point of Interest". It always tells the user what it is about to do, and advises the user of any problems it encounters. The most important features of Atlas Speaks will be outlined in this chapter.

Since Atlas Speaks is run on the user's home computer, it has the built-in option of using a number of different commercial voice synthesizers. Products such as Zoomtext TM or Window-Eyes TM can also be used in conjunction with it. These products are screen enlargement and navigational programs that are needed by the visually impaired to use Windows-based programs. Atlas Speaks also offers the ability to use a Braille display to obtain the data being spoken. This not only accommodates those who prefer using Braille, but also those who are both visually impaired and deaf to explore city maps.

3.2.1 Language Independence

All messages and text spoken to the user are language independent. A separate file called a DLL (Dynamically Linked Library) has all of the spoken messages contained within it. Therefore, when Atlas Speaks is converted to another language just a single DLL needs to be translated for the new language. It is important to note that the voice synthesizer to be used must support the language contained within the DLL. I.e. if the message strings in the DLL are in French then the synthesizer must be able to "speak" French as well.

3.2.2 Setting Explore Position

This feature allows the user to set their "explore" position in a number of different ways:

3.2.2.1 Specific Address

By entering any address, the user can instantly be moved to a new location, provided that the corresponding map is on the hard drive or CD-ROM. The user can enter a street address and Atlas will search the current map looking for that address. If the address is not found the system will inform the user, telling them what further information is needed, such as the cross street, city, and maybe even the state.

3.2.2.2 Destination

This option is used to set the current position to the active destination (covered later in this chapter). This function is helpful when the user wants to explore the area surrounding the destination.

3.2.2.3 Point of Interest

Setting one's position to a "Point of Interest" is useful if the user wants to explore the area around a public building or tourist attraction, but does not know the address. This is also useful for learning more about the neighborhood surrounding personal "Points of Interest", such as shopping areas, schools, and the homes of friends and family.

3.2.3 Destinations

In addition to allowing users to set a starting position, it also lets them set a destination. This destination is given both a visual flag and audible announcement. When the user arrives near their destination, it says, "arrived near destination," and then gives the name of the current destination. Setting this destination works in the same manner as setting one's "explore" position, as in section 3.2.2.

3.2.4 Routes

The power of Atlas Speaks is clearly shown by its ability to create, find, and edit routes. "Routes" allows the user the ability to enter predetermined paths to a destination. Not only can it record these paths but it also has the ability, given a destination, to find a "pedestrian" path to that destination. A path generated for a motorized vehicle will make use of one-way streets and freeways. Routes for a pedestrian must be chosen in such a way as to avoid freeways. However, pedestrians can walk the wrong way along a one-way street. Atlas-generated routes also provide turn-by-turn information when guiding the user along these routes. For Example: "Turn at nine o'clock onto Bank Street facing northwest". From the Atlas menu, the following route-specific options are available to the user:

3.2.4.1 New Route

When creating a new route the system starts at the current position, and asks for the name of the new route being created. It then records all cursor movements as a part of the route. It will place a waypoint at every intersection. These waypoints will appear as red circles on the screen.

3.2.4.2 Find Route

This is one of the more important features Atlas Speaks offers to those who are visually impaired. This allows them to find a path between their current position and a destination. Also since a "destination" may not necessarily be a specific address but can also be a "Point of Interest", this can be very handy tool in exploring new cities. When it finds a route to a destination, the path created may not be the shortest possible one because it does not use limited-access streets while pathfinding, since such streets would be dangerous for pedestrians. Limited-access streets are those reserved for cars only, such as on and off ramps, freeways etc. It will even span ECA 's ( ETAK Coverage Area Maps) while pathfinding, if the destination is on a different map.

"Find Route" has three limitations:

  1. Atlas cannot calculate routes longer than eight kilometers. This limitation will be addressed in future revisions of Atlas Speaks. For a long route, the user could break it up into smaller sections that are each less than eight kilometers long.
  2. The "Find Route" function is also limited in areas where streets are densely packed, due to memory constraints on the user's system.
  3. Atlas may also have trouble calculating routes when the only available road is a freeway.

3.2.4.3 Edit Route

"Edit route" is a useful but potentially dangerous option. When editing a route, the user can not only rename the waypoints along the route but can also delete and add waypoints to the route.

When Atlas creates a route the street name and cross street information constitute the name of each waypoint along the route. Sometimes it is useful to change the information. For example, the route endpoint could be "Bob's House" instead of "35 James St.".

The user is also allowed to change the "Turn" information. When Atlas follows a route it beeps at each physical turn the user must make, and informs the user that a change in direction has occurred, and that they are now on a new street. This turn information is presented to the user as a "clock face" change in direction. E.g., "Turn at 9 o'clock onto Sunnyside facing west." Instead, the user may only wish to hear "Turn left onto Sunnyside." The user can also add information to a given waypoint, to be heard upon arrival. For example, "a mailbox is located here", or "the sidewalk is narrow here".

3.2.4.4 Reverse Route

Once the user has reached the end of the route, they may wish to travel the route from the end to the beginning without having to create a new and separate route. Reversing the route not only renumbers the waypoints starting at the end-point and proceeding to the beginning of the route, but changes all turn information accordingly, such that the user will hear the correct turn information for the reversed route.

3.2.4.5 Route Status Window

When a route is active, as shown in Fig. 2 , the bottom screen is modified to display route information to the user. The previous, current, next, beginning and ending waypoints are all displayed as well as the user's distance and bearing to each of them. All of the information displayed can also be obtained through key presses, and verbally spoken to the user. It is also important to note that this information on the bottom screen is available using a Braille display connected to it.

Figure 2: Atlas Speaks Route
In this example, the "Heading" type is degrees, and the units are imperial, these can be modified as will be shown later in this chapter.

3.2.5 Points of Interest

"Points of Interest", are specific locations on a given map that may have some relevance to the user. Atlas comes with a set of pre-determined "Points of Interest", such as public buildings, monuments, parks, and landmarks. The user may also add their own "Points of Interest", such as stores, restaurants, bus stops, or homes of friends and family. From the menus, the following "Points of Interest" options are available:

3.2.5.1 Nearest and Alphabetical Points of Interest

"Nearest Points of Interest" provides a listing of all the "Points of Interest" in the currently opened file, and displays them in order of proximity to the Atlas cursor. Not only does it indicate how far away each point is from the cursor, but it will also tell its direction in relation to the cursor. "Alphabetical Points of Interest" does the same thing except they are arranged in alphabetical order. The user is allowed to scan these "Points of Interest" listening to the name, distance and bearing of each, and may select one. Once selected the user can edit, deleted, rename, or set the "Point of Interest" as the current position, or destination.

3.2.6 Voice Settings

Atlas Speaks does not have an internal voice synthesizer. Instead, it uses the synthesizer on the user's system. Atlas is flexible in that it currently supports over thirty different voice synthesizers. Each voice synthesizer is different and may not offer all the features that Atlas can modify by means of the "voice settings" menu. Atlas queries the voice synthesizer and only allows modification to those features supported by the synthesizer.
The options available to the user include: The speaking voices that are offered by some synthesizers may include male, female, child, and robot voices. The user can decide which voice is aesthetically pleasing. Setting the rate of the speaking voice is crucial for those who are visually impaired. The user gets accustomed to the voice and over time can understand the speech at an increased rate. Setting the volume, pitch and tone, help to fine-tune the speech. Punctuation level allows the user to specify how much of the punctuation is spoken from Atlas. Usually the synthesizers offer three choices: Speak All, Speak Some, and Speak None. The more advanced synthesizers will also add voice inflections to denote the type of punctuation passed.

3.2.7 Speech-Queuing

Atlas Speaks uses synthesized speech to communicate with the visually impaired, and therefore queuing up of messages to be spoken is essential. Messages to be spoken are divided up into specific classes and subclasses. Fig. 3 shows an example on how this class structure is organized.

Figure 3: Speech Queuing Class Structure
Appendix C contains a complete listing of the function prototypes for the speech-queuing software. In this example the "Where am I" message contains three "subclasses" of messages, but four actual messages. When the user asks Atlas "Where am I", the system will queue up all four messages, but because of this class structure the user has control over what is to be spoken.

3.2.7.1 Example of theFunctionscalledforthe"WhereamI"message

For the example in Fig. 3 , the following function from Appendix C would be called:

SPEECH_priority(yes this is a newclass, not a priority, don't pause after, regular voice, don't spell out the message, CLASS A, Subclass a)
SPEECH_add(Street Address)
SPEECH_priority(not a newclass, not a priority, don't pause after, regular voice, don't spell out message, CLASS A, Subclass b)
SPEECH_add(City)
SPEECH_add(State)
SPEECH_priority(not a newclass, not a priority, don't pause after, regular voice, don't spell out message, CLASS A, Subclass c)
SPEECH_add(Current Heading)

3.2.7.2 Speech-Queuing Features Continued

If the user presses the "Where am I" key twice for example, the queuing software will flush the first "Where am I" messages, and only speak the last set of "Where am I" messages. The speech-queuing software also has a unique ability to skip a message: this is the SPEECH_skip feature as given in Appendix C . This prevents the current message from being spoken, and deletes all messages starting from the beginning of the queue, with the same class and subclass, until either a new class or subclass is found. This next message is then spoken immediately. One other option is the "Shutup-key", which empties the speech queue and immediately terminates the current message being spoken. By pressing the "Shutup-Key", SPEECH_flush would be called from Appendix C .

Using the example from Fig. 3 , if the user presses the skip-message-key while Atlas is speaking the "Where am I" message the following would result. The current street address would stop speaking, and then it would start speaking the current city because the city message is not in the same subclass as the current street address. Now if the user presses the skip-message-key again it would stop speaking the current city, skip the state message because it is the same subclass as city, and then start speaking the current heading message.

The queuing software also incorporates the concept of a "priority message". This message is not added to the end of the queue like other messages but is placed at the head of the queue, and is the next message spoken once the current message being spoken is finished.

Some of the attributes of a message string are its class, subclass, and priority. Refer to Appendix C : SPEECH_priority for a complete listing of a message's attributes. A flowchart of the speech-queuing software is presented in figures 4 through 7. The design and implementation of the speech-queuing software was completely done by the author.

Figure 4: Flow Diagram of Message being sent to Queue

Figure 5: Flow Diagram of Adding Message String to Queue

Figure 6: Flow Diagram of Finished Speaking, Start Speaking next String

Figure 7: Flow Diagram of Skip Speech

Note: this will call "Finished Speaking" from Fig. 6 , because the synthesizer has finished speaking.

3.2.8 Atlas Options

Here the user can change a number of different options affecting how Atlas Speaks will behave. These options include:

3.2.8.1 Reset S/W Pedometer

The pedometer keeps track of the distance travelled while moving the Atlas cursor around the map. As shown in Fig. 1, the "Leg" and "Trip" pedometers of Atlas Speaks are displayed in the Message Window. Both a "Trip" and a "Leg" pedometer are reset upon using this feature. The pedometer is useful to determine the distance between streets, and routes that one might wish to travel outdoors.

3.2.8.2 Units and Measures

Atlas Speaks was designed keeping in mind both the metric and imperial systems of measure. By changing the system of measure, all units in Atlas Speaks will change accordingly. It also offers different methods for describing directional information. These include:
  1. Clock Face
  2. Degrees
  3. Compass
  4. Relative.

"Clock Face" and "Relative" both describe headings to a specific point or destination in relation to the actual cursor heading. "Degrees" and "Compass" are absolute directions and are not dependent on the direction of the cursor.

"Clock Face" will present directional information in terms of the numbers on a clock. With 12 o'clock being straight in front of the cursor, 6 o'clock being behind the cursor etc. "Degrees" will present the direction from 0 through 359 degrees, with 0 degrees being TRUE north. "Compass" will present directions in a format of north, south, northwest, etc. "Relative" is a unique way of describing a specific location, as a human would describe it: ahead, behind, ahead and to the left, etc.

3.2.8.3 Serendipity

"Serendipity" is a mode in Atlas that automatically informs the user that they are approaching a "Point of Interest". Using the "Serendipity" function, Atlas can announce all "Points of Interest" within a certain distance. This function is useful because the user does not have to constantly ask for the distance and heading to the nearest "Point of Interest". When turned on, Atlas will announce a "Point of Interest" when it comes within the specified distance from the cursor.

3.2.8.4 Key Announcements

Atlas can provide a tremendous amount of information, and it allows for modifications to the keys that access this information. So for example, the 'C' key can be modified to provide the current city, cross street, or both. Refer to Appendix B for a complete listing of all available Atlas functions.

3.3 Summary

Atlas Speaks fulfills the first part of this thesis, audible representation of map data and the tools to access this information. Next, we must make this portable, so a person who is visually impaired can walk outside with it and get current positional information of where they are located. This mobile Atlas will be investigated in Chapter 4 with Strider.

Next Previous Table of Contents