ch16

Previous Index Next

# 16 Axmud for visually-impaired users

Axmud can be run with settings optimised for users with a visual impairment.

The rest of this Section assumes that you're using optimised settings. These settings don't require JAWS, NVDA or any other screenreader, but they do require a text-to-speech engine of some kind.

On Microsoft Windows, the Axmud installer includes a copy of the eSpeak engine. No further configuration is required. Simply run the installer, find Axmud in your system's Start menu, and open the menu item that's marked for visually-impaired users.

Most modern Linux systems have the eSpeak engine installed 'out-of-the-box'. If not, you should install it yourself before starting Axmud.

## 16.1 Compatible speech engines

Axmud supports other speech engines, too. (Not all of them are free.)

On all operating systems, Axmud support espeak-ng, Festival and Swift (which is a part of Cepstral). On Linux only, Axmud also supports Flite.

## 16.2 Connecting to a world

When you start Axmud, a series of dialogue windows will appear, asking you to select a world, a character and a password.

The first dialogue window asks you to select a world. Axmud comes with numerous pre-configured worlds, so you can either choose one of those, or you can create a new world.

If you create a new world and/or a new character, they are saved and will be available the next time you start Axmud.

In the first dialogue window, you can use your UP and DOWN cursor keys to select a world. When you find the world you want, press your TAB key to move to the OK button, and the press your ENTER key to 'click' that button.

Many of the remaining windows will ask you to type something, such as a character name or a password. After typing you can simply press the ENTER key to move to the next window. (Using your TAB and ENTER keys to 'click' the OK button will also work, but is unnecessary.)

If you specify a character name and a password, Axmud can usually login to the world on your behalf. If not, you'll have to type the name and password every time you connect to the world.

(You can tell Axmud to automatically connect to a world, if you like. See Section 16.3.2

## 16.3 Playing the game

Axmud normally runs with multiple windows. There is a main window, in which most of the text received from the world is displayed. There are task windows, which typically display information about your character's health, the current location, and so on. There is also an automapper window and a great many edit windows used to modify Axmud's stored data.

Axmud's optimised settings dispense with many of these windows (although they are available, if you want them). Most of the time only the single main window will be open. When you connect to a world, everything is displayed in that main window (as well as being read out).

You can type commands like north and inventory and kill orc. When you press ENTER, these world commands are sent directly to the world.

### 16.3.1 Client commands

Axmud provides its own commands, which we call client commands. These client commands can be used to customise almost any aspect of Axmud's behaviour and to modify its stored data.

If you're using optimised settings, most client commands won't be of much use. However, there are a number of client commands which have been designed specifically for you. We'll spend the rest of this Section discussing how to use them.

All client commands begin with a semicolon. The first command we normally teach generates a (very) long list of all client commands, so you should probably resist the temptation to type it now. That command is the ;help command - typed as a semicolon, followed by the word help, with no spaces in between.

Another useful client command is the ;save command - typed as a semicolon, followed by the world save, with no spaces in between. This command produces a single-line response, so it's safe to type it now and press your ENTER key.

(By the way, Axmud's stored data is automatically saved whenever you disconnect from a world, and the autosave feature is turned on by default, so you probably don't need to save anything manually.)

If you get disconnected, the main window will not close. You can use the ;reconnect command (a semicolon, followed by the world reconnect) to re-establish a connection to the same world.

Alternatively, you can use the ;connect command to connect to a different world. If you want to connect to Discworld MUD, you can type ;connect discworld. If you have already set up a character profile called Gandalf, you can type ;connect discworld gandalf.

After disconnecting, you can halt Axmud by typing the ;stopclient command. (stopclient is typed as a single word with no spaces.)

You can use the ;speak command to test Axmud's text-to-speech abilities. ;speak will read out a test message, but you can specify your own message with a command like ;speak hello world.

### 16.3.2 Auto-connecting to a world

If you want to skip the initial dialogue windows, you can tell Axmud to automatically connect to a world.

This is done using the ;setautoworld command. (setautoworld is typed as a single word with no spaces.)

The command should be followed by the name of the world profile, for example discworld. You can add the name of a character after that, if you like.

## 16.4 Keyboard shortcuts

Axmud remembers the most recent thousand lines of text that it has converted to speech, so you can replay them at any time.

When using optimised settings, you can use the cursor or arrow keys to replay speech.

Use the left cursor key to replay the most recent line, and keep pressing it to replay earlier lines. Use the right cursor key to move in the opposite direction. (When you reach the earliest line, Axmud will keep replaying it every time you press the left cursor key.)

Use the up cursor key to replay the earliest of the hundred lines, or the down cursor key to replay the latest one.

Sometimes you might want to replay speech one sentence at a time, or one word at a time. Use the home key to switch between these modes. The left and right keys will now replay a sentence or a word. The up and down keys will replay the first or last sentence or word in the line, rather than the first or last line.

The page up and page down keys can be used to skip ten lines at a time.

While replaying speech, some more text might arrive from the world, and it won't be read aloud automatically. If you like, you can keep pressing the right arrow key until all speech has been replayed. A quicker method, however, is to press the tab key, which skips to the first line that hasn't been read yet, and keeps reading aloud until everything has been read out. Press the tab key a second time to skip over all of the unread speech.

Use the escape key to stop whatever text is being converted to speech right now.

When it's time for the user to type a command, some worlds send a command prompt full of statistics (often containing your character's health points, for example). These prompts take a long time to read aloud so, by default, Axmud filters them out. Press the end key to hear the most recent prompt. (In general, this only works with pre-configured worlds whose prompts contain alphanumeric characters.)

If you need to use the cursor keys for something else temporarily - or indeed any of the other keys mentioned in this section - you can use the ;freekeys command to stop Axmud hijacking them. Type the same command again to restore the old functionality.

Normally, Axmud users use the up and down keys to quickly select commands they typed previously. You can do the same by holding your SHIFT key while you press up and down.

If you don't want to use the cursor keys, you can use client commands instead. Use ;skip, ;unskip, ;first and ;last instead of the cursor keys. Use ;skip more or ;unskip more instead of the page up/page down keys. Use ;split instead of the home key, ;prompt instead of the end key, ;resume instead of the tab key and ;shutup instead of the escape key.

### 16.4.1 Sentence smoothing

Axmud's main window displays lines of text. The definition of a line of text is not as simple as you might think. For one thing, some worlds send text that has already been split into lines just big enough to fit in Axmud's window. Other worlds might send a line of text hundreds of characters long, expecting Axmud to do all the formatting.

None of this should concern you. The only thing that might concern you, is how lines of text are sent to the text-to-speech engine.

Axmud does it best to smooth out some of the kinks in the text, before passing it on to the engine. This is called sentence smoothing.

One of the consequences of sentence smoothing is that each line tends to contain a single sentence, so using your cursor keys to replay lines will often be the same as replaying sentences. Another consequence is that the lines you replay won't be exactly the same as the lines visible in Axmud's window.

If sentence smoothing is getting in the way, you can turn it off by typing ;speech smooth off. To turn it on again, type ;speech smooth on.

Sentence smoothing is only applied to text received from the world; it isn't used when you type a client command like ;help.

## 16.5 Enabling/disabling text-to-speech

Text-to-speech is always enabled when using optimised settings, but for other users it's disabled by default.

Those users can type ;speech on to enable text-to-speech or ;speech off to disable text-to-speech.

## 16.5.1 Customising text-to-speech

By default, Axmud uses the eSpeak engine to read out everything in the same voice. However, Axmud supports multiple speech engines, and those engines often provide more than one voice. It's possible to configure Axmud to use different engines and voices in different situations.

For example, Axmud can use a male voice to read out text received from the world, and a female voice to read out system messages.

If you're using a pre-configured world, then Axmud is able to collect information about the state of the world. You can ask Axmud to read out this information whenever you need it (even if it's no longer visible in the main window).

For example, Axmud can tell you about your character's current location or the number of health points they have left. And if you want this information read out in a unique voice, you can do that, too.

The rest of this Section describes how to do all of those things. You can read it later, if you don't need those features yet.

### 16.5.2 Disabling some speech

You can use the client command ;speech to change what is read out, and what is not.

For example, ;speech system off will stop Axmud system messages from being read out. ;speech system on will tell Axmud to start reading them again.

;speech error off will stop system error and warning messages from being read out.

;speech verbose on will tell you when Axmud switches between displaying commands, system messages and received text. This can be a little annoying, so it's disabled by default.

;speech command off will stop every world command you type from being read out.

;speech dialogue off will stop dialogue windows from being read out. (This includes the dialogue windows you see when you start Axmud, asking for a world, character name and password, so you should probably turn them on again before you quit using Axmud.)

;speech receive off will stop text received from the world being read out.

Usually, received text isn't read out until the login has been completed. This is useful if the world displays a lot of graphics before asking for your name and password. If you want to everything to be read out, you can type ;speech login off.

As explained above, command prompts aren't read out, whenever possible. If you want to hear them every time, you can type ;speech prompt off.

Speech generated by tasks is turned off by default. You can turn it on by typing ;speech task on. In Section 16.6 we'll discuss how to tell each task what they should read out.

### 16.5.3 Configuring the Festival engine

The ;speech command is also used to change how Axmud uses the Festival engine (which is only available on Linux).

There are two versions of the Festival engine. On Linux, they are usually both installed at the same time.

Axmud prefers the command line version. (On Windows, it only supports the command line version). There are several problems with the server version: speech can't be interrupted, and we don't know when it has finished speaking. These problems might possibly be fixed in a future release.

If you want to use the server version on Linux, set the server port by typing ;speech port default. (If the server is using an unusual port, then type something like ;speech port 5000, instead.)

If Axmud tries to connect to a Festival server but can't, it will revert to using the command-line version. You can force Axmud to use the command-line version by typing ;speech port none.

### 16.6 Text-to-speech configurations

Axmud allows you to customise the sound of the speech produced by its supported speech engines.

Depending on which engine you're using, you can specify the engine, the voice used, the word speed, pitch and/or volume.

When using the eSpeak engine, Axmud can change the voice, speed and pitch. When using espeak-ng, everything can be changed. When using Flite, only the voice can be changed. When using Festival, the voice, word rate (not speed) and volume can be changed. When using Swift, the voice, pitch and volume can be changed, as well as the word speed (on Microsoft Windows) and word rate (on Linux).

We mentioned already that Axmud can use different engines and voices in different situations.

Axmud has a number of text-to-speech configurations, one for each situation. If you modify a configuration, your changes are stored and will still apply the next time you use Axmud.

### 16.6.1 Configuring the 'receive' configuration

The text-to-speech configuration called receive is used for text received from the world.

The configuration stores your choice of speech engine, as well as your choice of voice, word speed (or word rate), word pitch and volume.

To change any of these things, we use the client command ;modifyconfig (a semicolon, followed by a single word without spaces).

Actually, nearly all client commands have abbreviations, so this case you can type ;config instead (a semicolon, followed by the word config).

The ;config command is always followed by the name of the configuration we want to modify, and then by the modifications we want to make.

For example, text received from the world is read out using the eSpeak engine by default. eSpeak is rather primitive, so if Festival, Flite or Swift are installed on your system, you might prefer to use one of them instead.

The command to type is ;config receive engine festival.

To use the Flite engine, the command is ;config receive engine flite. To use the Swift engine, if you've purchased it, the command is ;config receive engine swift.

You can use the same command to change the voice. The list of available voices varies from engine to engine and from system to system, so it's up to you to work out which voices are available on your system.

To change the voice, first switch the engine back to eSpeak by typing ;config receive engine espeak.

Then, type ;config receive voice en-scottish. The last word is the letter E and N, followed by a hyphen, followed by the word scottish, all in lower-case letters and with no spaces.

If you specify a voice that isn't available on your system (or if you misspell the voice), you won't hear anything. In that case, you can use the ;config command to return the configuration to its default settings, by using the same command you would use to change the engine. Type ;config receive engine espeak.

You can use the ;speak command to test this configuration's new voice. The command to use is ;speak receive.

### 16.6.2 Configuring the speed, rate, pitch and volume

Now we'll customise the rest of the configuration. Make sure you're using the eSpeak engine by typing the command ;config receive engine espeak.

Axmud uses a set range of values for the word speed, word rate, pitch and volume. Regardless of the engine, the range is zero to a hundred.

To change the voice speed, type the command ;config receive speed 50. This will slow down the voice. To speed it up, type ;config receive speed 90.

The Festival and Swift engines use a word rate, rather than a word speed. To change the rate, type ;config receive rate 50 or ;config receive rate 90.

To make the word pitch higher, type ;config receive pitch 80. To make it lower, type ;config receive pitch 20.

The eSpeak engine doesn't allow us to change the volume, but if you've modified the configuration to use the Festival or Swift engines, you can can reduce the volume by typing ;config receive volume 50.

Again, to reset the voice, speed, rate, pitch and volume to default values for this engine, type ;config receive engine espeak.

### 16.6.3 Using different configurations

The text-to-speech configuration called receive is used for text received from the world, but there are a number of other configurations ready for your use.

The system configuration changes the sound of the speech used to read system messages. You might change this configuration's word speed by typing ;config system speed 200.

The error configuration is used to read system error messages. The command configuration is used to read out commands sent to the world. The dialogue configuration is used to read out text from dialogue windows.

### 16.6.4 Updating all configurations

There's an easy way to change the speech engine used by all configurations. This is really useful if, for example, you find that eSpeak is not working on your system, and you want to use espeak-ng instead.

Just type ;config all engine esng. This will change all the configurations that you're allowed to modify. (By the way, you can only use the word all in this situation.)

## 16.7 Configuring text-to-speech for tasks

Axmud comes with a number of built-in tasks, some of which have text-to-speech capabilities. The configuration called attack, chat, divert, locator, status and watch change the sound of the voice used by each of those tasks.

Tasks often have their own task windows. When using optimised settings, these windows don't open (but the tasks are still running in the background).

We'll discuss each task in turn. This is the last part of this Section, so if you aren't interested in the tasks, you can stop reading here.

### 16.7.1 The Locator task

The Locator task captures information about the character's current room, including the room's title, description, list of exits and sometimes even its contents.

The Locator task doesn't magically know how to interpret all possible worlds, so it's useful only when connected to one of Axmud's pre-configured worlds, or when connected to a world you've configured yourself (or which someone has configured for you).

The client command ;read will instruct the Locator to read out some of the information it has gathered.

For example, type ;read title to hear the current room's title (if known).

Type ;read description to hear the current room's description. If it's a very long description, type ;read description 100 to hear the first 100 characters.

Type ;read exit to hear the exit list, and type ;read content to hear the contents list.

### 16.7.2 Auto-reading the room title

The Locator task is able to read out information about the current room automatically, every time the world sends that information.

This is probably not very useful, since all text received from the world is already read out by default. However, perhaps you want to limit the amount of text that gets read out, in which case you can stop Axmud reading out all received text by typing ;speech receive off.

You can then use the client command ;switch.

If you type ;switch title, the Locator will start reading out the room title, every time it is received. If you type ;switch title again, the Locator will stop reading out the room title.

To read out room descriptions automatically, type ;switch description.

To read out exit lists automatically, type ;switch exit.

To read out content lists automatically, type ;switch content.

### 16.7.3 Auto-read the room title permanently

The command ;switch title will make the Locator task automatically read out room titles for the rest of the session. However, the next time you start Axmud, a brand new Locator task will start, and it won't know that it's supposed to read out room titles.

The client command ;permswitch is the solution to this problem. (It's spelled with a semicolon, followed by perm and switch as a single word, without spaces.)

To read out room titles in this session, and in all future sessions, type ;permswitch title.

### 16.7.4 The Status task

The Status task gathers information about your character, such as the their health points and experience points.

Like the Locator task, the Status task doesn't magically know how to gather this information. Both tasks work best when connected to a pre-configured world.

The client command ;read can be used to read out some of this information, as long as the world provides the information and Axmud knows how to collect it.

Type ;read health to read out the character's health points. You can also type ;read energy, ;read magic, ;read guild, ;read social, ;read experience, ;read level and ;read lives.

;read status will read the character's life status - alive, dead, passed out or asleep.

;read alignment will read the character's alignment (good or evil).

;read age will read the character's age.

;read time will read the game time.

;read bank and ;read purse will reveal information about your character's finances. Money is tracked by the Inventory task, so you will need to start that task before you can use it.

The client commands ;starttask and ;addinitialtask are both typed as a semicolon followed by a single word with no spaces.

To start the Inventory task, type ;starttask inventory. To make the inventory task start in every session, type ;addinitialtask inventory.

### 16.7.5 Status task alerts

It would be very useful for the Status task to issue an audible warning when your character's health points fall to a certain level, and again when they recover.

You can do this with the client command ;alert.

To get an audible warning when your character's health points fall to 20%, type ;alert health down 20.

To get a warning when they recover to 90%, type ;alert health up 90.

You can also use the ;alert command to get audible warnings for your character's energy, magic, guild and social points, where available.

The ;alert command only affects the current session. If you want these audible warnings every time you run Axmud, use the ;permalert command. (It's spelled with a semicolon, followed by perm and alert as a single word, without spaces.)

For example, to warn about low health points every time you play, type ;permalert health down 20.

By the way, you can use the ;switch command to make the Status task read a notification when your character dies, falls asleep, passes out or recovers. Type ;switch life to turn on these notifications, or to turn them off again.

### 16.7.6 The Attack task

The Attack task keeps track of your fights.

You can use ;switch or ;permswitch to get an audible notification of fights that have just finished (and, for some worlds, when they start).

Type ;switch fight to hear the results of fights, and the same command to stop hearing them. Type ;switch interaction to hear the results of interactions. (Interactions - encounters that aren't a fight, but still result in a success or a failure - are not recognised by most pre-configured worlds.)

### 16.7.7 The Channels and Divert tasks

The Channels and Diverts task are commonly used to divert certain lines of text from the main window into a separate task window. It's handy for making sure you don't miss an important messages in the heat of battle.

Visually-impaired users can use either task to make sure that important messages are read out in a different voice, but the Divert task is probably more convenient.

To turn on the reading of all diverted lines of text, type ;switch divert. Use the same command to turn them off. Use the ;permswitch command to make this change in this and all future sessions.

You can also turn on or off specific lines of text. The Divert task distinguishes between tells (private communications between players), social messages (public communication channels), custom messages (any other line of text that should be diverted) and warnings generated by some part of Axmud's code. Each type of message makes the task window turn a different colour and a sound effect is also heard.

If you're using optimised settings then there is probably no task window open. To turn on the reading out of all tells, type ;switch tell. You can also type ;switch social, ;switch custom, ;switch warning.

### 16.7.8 The Chat task

The Chat task allows players to communicate with each other directly, independent of the world in which they are playing. It uses a standard protocol, so users of different MUD clients can talk to each other.

This form of peer-to-peer communication isn't much used any more, but it's available if you need it.

To read out all Chat task communications, type ;switch chat. Use the same command again to turn it off.

You might prefer to hear only incoming communications or only outgoing communications. For that, type ;switch chat in or ;switch chat out. To read out group communications, type ;switch chat echo.

To read out Chat system messages, type ;switch chat system or ;switch chat remote.

So-called 'snooping' - the ability for your chat partner to see what's happening in your session - is turned off by default. If you've turned it on, you can make Axmud read out so-called snooping text by typing ;switch chat snoop.

### 16.7.9 The Compass task

The Compass task converts your keyboard's keypad - the collection of number keys usually found on the right-hand-side of the keyboard - into a device that can execute a whole command with a single key-press.

Optimised settings start this task automatically, so if you press the keypad's 8 key, Axmud will send a north command to the world. The 2 key sends south, the 4 key sends west and the 6 key sends east. The 7, 9, 1 and 3 keys send northwest, northeast, southwest and southeast respectively. The plus key sends up and the minus key sends down.

Don't forget that they keypad's keys can be turned on and off with the Num lock button found on most keyboards.

The remaining keypad keys can be customised. Each key can either send a world command or execute a client command. For example, the 5 key sends the world command look. The 0 key executes the client command ;kill, which attacks an NPC in the current room (if there are any).

If you want to customise the 0 key, you can use the ;compass command.

To make the 0 key do something nicer, type ;compass 0 say hello.

To make the keypad ENTER key save Axmud's files, type ;compass enter ;save. In this command, both the words compass and save are preceded by a semicolon, with no space between a word and the semicolon before it.

The keys that can be customised are the keypad 0, 5, multiply, divide, full stop or period and ENTER keys. The remaining keypad keys are used for standard movement commands and can't be customised directly.

To disable the keypad, so that its keys behave normally, type ;compass off. To reenable it, typing ;compass on.

Of course, the ;compass command will only make changes for this session. If you want a Compass task to start every session, you have two choices.

Firstly, you can create a task that starts in every session by typing the command ;addinitialtask compass. Then you can customise the keypad for this and all future sessions using the ;permcompass command.

Secondly, you can create a task that starts whenever you connect to a particular world. For example, to create a task that starts every time you connect to Discworld MUD, type the command ;addinitialtask compass discworld. In this situation, the customisation is done with the ;worldcompass command.

The commands - ;worldcompass and ;permcompass behave in the same way as ;compass does, so you use all three of them to disable or reenable they keypad and to set the commands for each key.

That's the end of this Section for visually-impaired users.

Previous Index Next