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.
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.
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.
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.
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.
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.
This feature allows the user to set their "explore"
position in a number of different ways:
-
Specific Address
-
Destination
-
Point of Interest.
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.
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.
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.
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.
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:
-
Choose and Close a Route
-
New Route
-
Find Route
-
Edit Route
-
Reverse Route
-
Import and Export Routes
-
Route Directions.
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.
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:
-
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.
-
The "Find Route" function is also limited in areas where
streets are densely packed, due to memory constraints on
the user's system.
-
Atlas may also have trouble calculating routes when the
only available road is a freeway.
"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".
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.
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.
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.
"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:
-
Load & Close Points of Interest
-
Nearest and Alphabetical Points of Interest
-
New Points of Interest File
-
Add Point of Interest
-
Import and Export Points of Interest File.
"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.
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:
-
Speaking voice
-
Volume
-
Speaking rate, pitch, and tone
-
Amount of punctuation spoken
-
Speech off.
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.
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.
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.
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)
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.
Note: this will call "Finished Speaking" from
Fig. 6
,
because the synthesizer has finished speaking.
Here the user can change a number of different options
affecting how Atlas Speaks will behave. These options
include:
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.
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:
-
Clock Face
-
Degrees
-
Compass
-
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.
"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.
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.
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.