Earcons and Speech Rules

Earcons and Speech Rules is an NVDA add-on that allows NVDA to play earcons as well as other speech effects, such as prosody changes. Formerly this add-on was known as Phonetic punctuation. This add-on also includes almost all functionality of Unspoken add-on, which appears to be abandoned as of 2024.

Demo

You can listen to a sample speech output with phonetic punctuation here (10 seconds audio): https://soundcloud.com/user-977282820/nvda-phonetic-punctuation-demo

Download

Please install the latest version from NVDA add-on store.

Usage

  1. Make sure Earcons and Speech Rules add-on is enabled. Press NVDA+Alt+P to enable.
  2. Rules can be configured via a dialog box in NVDA preferences menu.
  3. By default you will have a set of predefined audio rules. However, only a few of them are enabled by default. You can enable other rules, as well as add new rules in the configuration dialog.
  4. The rules are saved in a file called earconsAndSpeechRules.json in NVDA user configuration directory.
  5. Not all synthesizers support all settings. In fact there are many synthesizer that don't support many settings. Please see "Supported voice synthesizers" section for more information.

Types of rules

Rules can be configured in NVDA Settings, in the Earcons and speech rules pane.

Text rules

Text rules trigger on a configurable regular expression in NVDA speech. Once a rule is triggered, you can either replace matched text with an earcon or adjust prosody (such as voice pitch) for that match.

Additionally you can specify a text rule to trigger for only:

Text rules are executed in the order they appear in the configuration dialog. If your rule doesn't seem to work, try moving it to the topmost position. E.g., if you are trying to match an IP address containing periods, check whether periods have been replaced by a preceding rule, which would make matching IP address impossible.

Text rules are not triggered when moving by character - please see the next section.

Character rules

Character rules allow you to substitute a character description in spelling mode (such as "space" or "Tab") with an earcon. These rules don't affect NVDA speech when reading text unless spelling characters.

Roles

Roles such as Editable or Button are internal NVDA property of objects describing their type. You can configure an earcon to be played for each role instead of speaking role name.

This feature was previously a part of Unspoken add-on, which appears to be abandoned as of 2024.

States and negative states

States like "checked" and negative states like "Unchecked" can also be replaced with earcons.

You can also suppress announcing certain states that are not that important. In order to do so, check "Suppress this state in non-verbose mode" checkbox. Then you can triggerconsise state reporting by pressing NVDA+Alt+[ (left bracket; the key immediately to the right from letter P on English keyboard).

To further illustrate concise state reporting, open http://google.com and compare how the main editable is reported in verbose and concise modes.

Text formatting

Certain formatting attributes can be expressed either as prosody or an earcon. Currently we support:

Numeric text formatting

We support two options here:

Other audio rules

This includes some unrelated phrases spoken by NVDA that can also be replaced with earcons:

Keyboard commands:

Supported voice synthesizers

Earcons and speech rules makes use of advanced NVDA speech commands and they are not always well supported by all TTS synthesizers.

Synthesizers known to work well with Earcons and Speech Rules: * Microsoft Speech API * eSpeak * Windows OneCore Voices * Eloquence threshold

Synthesizers known to have issues with Earcons and Speech Rules: * IBMTTS (as of December 2024): see this issue. I fixed this problem in this PR, however the author for some reason is not accepting it, so if you want to use earcons and Speech Rules with IBM TTS, please ask the author to merge this PR. * RHVoice: Break command is not supported as of January 2020.

Blacklist Setting

You can disable Earcons and Speech Rules in certain applications. This is a comma-separated blacklist of applications where Earcons and Speech Rules will be disabled. If you are not sure what should be the name of your application, switch to that application, Press NVDA+Control+Z to open up NVDA console and type: "focus.appModule.appName" without quotes to obtain the name of current application. Example list: slack,discord

Known issues and limitations

Copyright notice