arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 15

AAC Speak Helper Tool

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Introduction

AACSpeakHelper is a small tool that enables you to\

  • Take text written in a Windows AAC application

  • If you need to - Translate it using a choice of online translation systems

  • and if you need to - Speak that text using a range of online or new offline speech models supporting not currently supported by commercial providers

It is good if you

  • Want to set up a AAC system for someone speaking in a language not currently supported by solutions available

  • If you have a client who wants to communicate to some people using a language they aren't familiar with. For example speaking to carers who are don't communicate using the communication aid users language or need to speak to family members who only speak in a language that they dont have a understanding of that written form

What its not good for

  • Reading or saving long streams of text (eg reading a book aloud)

  • If you want to use with a piece of software you cant copy the text from a message bar

  • You really have to use iOS, Android or something else

hashtag
Typical Use Cases

  1. Language translation and speech output

Imagine you are a Kurdish speaker with limited English skills residing in a care facility. AAC Speak Helper bridges you and your caregivers, translating Kurdish text into English. Moreover, it supports people who need to speak languages less commonly supported by TTS technology.

  1. Language not supported by current commercial solutions

If you speak Urdu - either as a bilingual speaker or as your primary language it can be difficult to find the perfect AAC system to meet your needs

hashtag
Compatibility

AAC Speak Helper is a lightweight Windows executable. It can be called from any AAC app on Windows that can run external programs.

hashtag
How it Works

AAC Speak Helper reads the text once the text is copied to the clipboard (using Ctrl+C). Depending on the configuration settings, it either translates the text using the selected service, speaks it aloud, or reads it. There are additional features, such as putting intonation (or style) onto some voices. We provide a CLI configuration tool to set up the application. The main application, though, has no interface.

1000's of languages

Troubleshooting and Feature requests

As this is a quick prototype, it may have some issues. For issues regarding connectivity or functionality, please note that Azure, Google Cloud and translation services require an online connection. If you have any questions, suggestions, or contributions, please create a pull request or donatearrow-up-right.

hashtag
Common Feature requests

  • Offline Translation. Although possible with NLLB (Meta) its not easy to do all the language pairs we potentially need.

  • The key feature is to make the integration easier. This is actually best done if it was a system wide voice rather than all software having to integrate different providers. So how do we do it? See our roadmap

  • ElevenLabs access.

  • Offline Azure/Google etc voices. Although advertised as kind of possible its not without limitations (notably not all voices are available like this from Microsoft and particularly not those that are of high need becauser we dont have much language support)

Install

Run the installer. Click through the options. At the end you can choose to run the applications - we recommend running these.

If you don't check these boxes - you can run them from your desktop or Start Menu. The applications you need to run are:

  1. AACSpeakHelperServer - this runs in the background in your task bar

  2. Configure AACSpeakHelper CLI - this allows you to configure the setup you need using a command-line interface

circle-info

If you ever lose these shortcuts It will place the program in your local App Directory. This can be found by going to %UserProfile%\AppData\Local\Programs\Ace Centre\AACSpeakHelper\ All settings, cache data, etc., are in %AppData%\Ace Centre\AACSpeakHelper

hashtag

AAC Setup

AACSpeakHelper ISNT a SAPI Speech engine. What this means is it is not seen by your AAC Software as a voice you would pick in your regular settings screen. We have to do some things to get this to work. And note you will have to be comfortable editing your software.

In short you need to:

  • Add a button to copy the message bar (writing area)

  • Then, have an action on this button to call the executable found at %UserProfile%\AppData\Local\Programs\Ace Centre\AACSpeakHelper\client.exe

Download

Download the installer from our . You click on the link under "assets" for the file named AACSpeakHelper-v2.2.8.exe (or whatever number is there)

Alternatively you will find the current most release on the Ace Centre Website

Roadmap

latest releasearrow-up-right

Writing with languages

So we are not providing here software Gridsets/Pagesets of Keyboards for different languages.

If you want a client to write in the language of this TTS system (not use translate) You have to

  • Find a keyboard layout the client is familar with in the correct script.

circle-info

This part is KEY. Many TTS systesm will not respond or act strangely if you present the wrong script (eg. latin script as in English, French, German when a TTS is needing arabic). You can get lucky but technically the system may be doing transliteration without you realising it

  • Copy and paste the characters needed into a Gridset/Pageset that you need. Remember to not put spaces behind the characters

  • This is painstaking. Please consider sharing your work so others can benefit.

Basic, very short demo showing config and running
(
Note: You will need to browse for the app. You can paste this link into the file explorer but you need to find the exact path on your own computer)
  • Then it's wise to wait around 4-10 seconds

  • Clear the message bar

  • Paste the returning text back if you are translating

  • You can test it by copying some text from a text file and running the app client.exe. Give it a go.

    circle-exclamation

    If you are not using translate you will need a keyboard in the right language. This can be tricky to make. Try using this http://aackeyboardmaker.streamlit.apparrow-up-right - right now only supporting the Grid3. It certainly wont make complete keyboards but it will be a good starting point

    hashtag
    The Grid 3

    We make things a little easier for the Grid as we provide an example pageset with the correct path to the application on your desktop under "Example pagesets". You can double click this and then try it out. Write some text - and then press on the flag icon

    hashtag
    Tobii Dynavox Snap

    hashtag
    Communicator

    See the demo pageset herearrow-up-right

    hashtag
    NuVoice

    hashtag
    MindExpress

    To-do

    If you want to use mind-express for translation note that MEX already can do this. See here for a demoarrow-up-right

    Getting keys for Azure or Google

    hashtag
    Azure TTS

    • You first need an Azure subscription - .

    Developer Notes

    • It works on Python 3.10 or 3.11. The dependencies aren't well covered on all other versions (and there are a lot!)

    • We use a GitHub action to build the application (see workflow .)

    Create a Speech resourcearrow-up-right in the Azure portal.
  • Your Speech resource key and region. After your Speech resource is deployed, select Go to resource to view and manage keys. For more information about Azure AI services resources, see Get the keys for your resourcearrow-up-right

  • hashtag
    Google Cloud TTS

    Creating a service account for OAuth 2.0 involves generating credentials for a non-human user, often used in server-to-server interactions. Here's how you can create OAuth 2.0 credentials using a service account for Google APIs:

    Create a Service Account:

    1. Go to the Google Cloud Console: Visit the Google Cloud Consolearrow-up-right.

    2. Create a New Project: If you don't already have a project, create a new one in the developer console.

    3. Enable APIs: Enable the APIs that your service account will be using. For example, if you're using Google Drive API, enable that API for your project.

    4. Create a Service Account:

    • In the Google Cloud Console, navigate to "IAM & Admin" > "Service accounts."

    • Click on "Create Service Account."

    • Enter a name for the service account and an optional description.

    • Choose the role for the service account. This determines the permissions it will have.

    • Click "Continue" to proceed.

    1. Create and Download Credentials:

    • On the next screen, you can grant the service account a role in your project. You can also skip this step and grant roles later.

    • Click "Create Key" to create and download the JSON key file. This file contains the credentials for your service account.

    • Keep this JSON file secure and do not expose it publicly.

    1. Use the Service Account Credentials:

    • In your code, load the credentials from the JSON key file. The credentials can be used to authenticate and access the APIs on behalf of the service account.

    1. Grant Required Permissions:

    • If you skipped assigning roles during the service account creation, you can now grant roles to the service account by navigating to "IAM & Admin" > "IAM" and adding the service account's email address with the appropriate roles.

    Create one for freearrow-up-right
    hashtag
    Building the Application

    hashtag
    Development Testing

    hashtag
    Building for Windows

    herearrow-up-right
    # Test the server
    uv run python AACSpeakHelperServer.py
    
    # Test the client (in another terminal)
    uv run python client.py
    
    # Test CLI configuration tool
    uv run python cli_config_creator.py
    # Use the automated build script
    .\build_executable.bat
    
    # Or build manually:
    # Build server
    uv run python -m PyInstaller AACSpeakHelperServer.py --noupx --onedir --noconsole --name "AACSpeakHelperServer" -i .\assets\translate.ico --clean
    
    # Build client
    uv run python -m PyInstaller client.py --noupx --console --onedir --clean -i .\assets\translate.ico
    
    # Build CLI configuration tool
    uv run python -m PyInstaller cli_config_creator.py --noupx --console --name "Configure AACSpeakHelper CLI" --onedir --clean -i .\assets\configure.ico
    
    # Note: GUI configuration tool is excluded from builds due to reliability issues
    
    # Build installer (requires Inno Setup 6)
    & "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" .\buildscript.iss

    Tips

    hashtag
    Help! It doesnt say anything when I press the preview button!

    • Have you just downloaded a new model? Give it a little while.. The pipe service doesnt report back when the model has downloaded and ready so the GUI tool just reports back ready. It should cue up your request though so it might take a little while

    • Preview just says "Hello world" and runs client. If it is set to translate it may be sending the incorrect text. Try using translate and match the language you are trying to preview

    Ummm its stopped working

    • In the bottom right of the task bar you will find a small blue icon. Quit the AACSpeakHelper server and start it again. To do this navigate to %AppData%/Local/Programs/Ace Centre/AACSpeakHelper/ and double click on AACSpeakHelperServer.exe

    • If it keeps happening send us the logs which are all plain text files %AppData%/Roaming/Ace Centre/AACSpeakHelper/

    The translations are really bad - or have just stopped

    • We default to using Google - the standard translate.google.com interface for this - not their paid for tier. Two problems with this: 1. Its rate limited. If you use it a lot rapidly it may stop for a short while. 2. The code we use to access this may have stopped working. Just let us know.

    • Try changing translation providers. Some you will need to pay for but are likely to be better

    hashtag
    Can I use this to batch-process a file of strings?

    Sure. You may want to do this, for example, to create audio files for some phrases for a bilingual speaker. There are other tools to do this, but this is possible. You can just copy your text and run the main application - then look at the cache directory for the audio file. But if you want to automate this, check out this Powershell script

    hashtag
    When supporting people with a language not supported by AAC

    • Does the Voice exist on any system? (See our)

    • If it doesnt can we get by with recorded clips?

    • Do we need symbol vocabulary or can they write?

    If they can write what script are they familar with (Hint: Ask them if they write in their language to their friends on their phone - if they use the standard latin (UK/US) keyboard they could be using transliteration. This is not bad - you will just have to test if your TTS engine works with that. And remember if you are going to do phrases you may want to use transliteration too if they are not familar with the written form )
    links here
    # Define the path to the text file and executable
    $textFilePath = "C:\path\to\textfile.txt"
    $executablePath = "C:\Program Files (x86)\Ace Centre\TranslateAndTTS\translatepb.exe"
    $outputFolder = "C:\path\to\output\folder"
    
    # Check if text file exists
    if (Test-Path $textFilePath) {
        # Read each line of the text file
        $lines = Get-Content $textFilePath
    
        # Iterate through each line
        foreach ($line in $lines) {
            # Copy the line to the clipboard
            $line | Set-Clipboard
    
            # Run the executable
            Start-Process $executablePath
    
            # Wait for the executable to complete and the file to be created (adjust time as needed)
            Start-Sleep -Seconds 5
    
            # Identify the latest created file in the output folder (assuming it's sorted by date)
            $latestFile = Get-ChildItem $outputFolder | Sort-Object LastWriteTime -Descending | Select-Object -First 1
    
            # Generate a unique truncated name based on the line from textFilePath
            $truncatedName = $line.Substring(0, [Math]::Min(10, $line.Length)) # Taking first 10 characters, adjust as needed
    
            # Rename the file
            Rename-Item -Path "$outputFolder\$($latestFile.Name)" -NewName "$truncatedName.txt" # Adjust extension if needed
        }
    } else {
        Write-Host "Text file not found at $textFilePath"
    }
    

    How was this made

    Blood, sweat and tears

    We have

    1. A pipe server (AACSpeakHelperServer.py)

      1. Reads in a config dict from settings.cfg

      2. Creates an object to the TTS Engine and holds it in memory to reduce coldstart time

      3. Speaks using sounddevice (heavily reliant on py3-tts-wrapper)

      4. Handles translation using various translation providers

      5. Communicates via named pipes with clients

    2. Client - calling executable (client.py)

      1. You can pass it a config file path and text string

      2. If no text provided, it uses clipboard/pasteboard text

    3. CLI Configuration Tool (cli_config_creator.py)

      1. Interactive command-line interface for configuration

      2. Supports all TTS engines and translation providers

    4. Additional Tools

      1. CreateGridset.py - Creates AAC communication grids

      2. migrate_settings.py - Migrates settings between versions

    hashtag
    Configuration Architecture

    The application uses a multi-layered configuration approach:

    1. settings.cfg - Main configuration file in INI format

      • Contains all TTS engine settings, translation settings, and application preferences

      • Located in %AppData%\Ace Centre\AACSpeakHelper for installed versions

    hashtag
    Technical Implementation

    There is a lot of magic to make this work though. This includes

    • - a unified wrapper to a range of TTS engines. This is needed as we need a unified way of get_voices and speak, speak_streamed etc

    • - a really nice tooling pipleine to deal with VITS models that run on the edge.

    • and - Massive help this work from Meta - and we converted their models for (Sherpa-)Onnx. We made some things on the way like a nice JSON with details on the voices. Commerical Providers: Please note the licence these are under

    hashtag
    Credits

    • Will Wade (original v1, refactoring v2 several times, dealing with encryption, build scripts and generally pulling my hair out)

    • Acer Jay Costillo (QT work and refactoring)

    • Gavin Henderson - for making the call on baking in creds. I hated that and several times threw the idea out.

    Whats next?

    • SAPI Bridge. This is really what is needed. C++ developers - we need your help. See

    Command Line Flags

    hashtag
    The app (client.exe) is designed to be called by a AAC application - and relies on some text being available in the copy buffer. You can use these parameters/flags to control aspects like which settings file is loaded or other aspects. Read below for all the flags.

    hashtag

    spinner
    Calls the pipe service to process text
  • Supports command-line parameters for different configurations

  • Creates and manages settings.cfg files
  • Replaces the unreliable GUI configuration tool

  • Can be customized and distributed to end users

  • config.enc - Encrypted configuration for sensitive data

    • Contains API keys and credentials for cloud services

    • Generated during build process from environment variables

    • Provides fallback credentials when user hasn't configured their own

  • Environment Variables (Development only)

    • Used during development via .envrc files

    • Automatically encrypted into config.enc during build process

  • Command-line Parameters

    • Allow specifying custom configuration files

    • Enable different configurations for different use cases

  • QT/QT Threading. We had "fun" with threads. Never again will I do it like this

  • Encryption in a github Action of keys and a hideous JSON file from Google. That wasted us a week.

  • Simon Poole - CTO at Smartbox for making me aware of MMS.
    TTS-Wrapper arrow-up-right
    Sherpa-Onnxarrow-up-right
    MMSarrow-up-right
    Models readied for Sherpa-Onnxarrow-up-right
    Roadmap
    General Usage

    hashtag
    Options

    Flag
    Description
    Type
    Required
    Default
    Example

    -s, --style

    Specifies the voice style for Azure Text-to-Speech.

    String

    No

    None

    --style "sad"

    -sd, --styledegree

    Specifies the degree of the style for Azure TTS.

    Float

    hashtag
    Using the style flag for Azure voices

    You can use the command line's --style flag for Azure voices. If you do this, follow it with one of these style flags. You can change the strength of these with --styledegree being 0.1 to 2. By default it is 1. So 2 would double it. Be warned. Some voices don't have all styles. Read the Azure docs for more infoarrow-up-right.

    advertisement_upbeat

    affectionate

    angry

    assistant

    calm

    chat

    cheerful

    customerservice

    depressed

    disgruntled

    documentary-narration

    embarrassed

    empathetic

    envious

    excited

    hashtag
    CLI Configuration Tool

    The CLI Configuration Tool (Configure AACSpeakHelper CLI.exe or cli_config_creator.py in development) provides an interactive way to configure AACSpeakHelper.

    hashtag
    Usage

    Development:

    Installed version: Run "Configure AACSpeakHelper CLI" from the Start Menu, or:

    hashtag
    CLI Configuration Options

    The CLI tool provides a menu-driven interface with these options:

    1. Configure TTS Engine - Set up text-to-speech engines

      • Choose from Sherpa-ONNX, Azure TTS, Google TTS, and others

      • Configure voice settings, rate, volume

      • Set up API keys for cloud services

    2. Configure Translation - Set up translation services

      • Choose translation provider (Google, Microsoft, DeepL, etc.)

      • Set source and target languages

    3. View Current Configuration - Display current settings

    4. Save and Exit - Save changes and exit

    5. Exit without Saving - Exit without saving changes

    hashtag
    Configuration File Management

    The CLI tool automatically:

    • Loads existing configuration from the default location

    • Creates default configuration if none exists

    • Supports custom configuration file paths with --config parameter

    • Saves configuration in the appropriate location based on installation type

    client.exe [options]
    uv run python cli_config_creator.py [--config path/to/settings.cfg]
    "Configure AACSpeakHelper CLI.exe" [--config path/to/settings.cfg]
    Configure API credentials

    No

    None

    --styledegree 1.5

    -c, --config

    Path to a defined config file .

    String

    No

    None

    --config "C:\somepath\some.cfg"

    -l, --listvoices

    List Voices to see what's available

    Bool

    No

    None

    -p, --preview

    Only preview the voice

    Bool

    No

    None

    -t, --text

    Text to speak (if not provided, uses clipboard)

    String

    No

    None

    --text "Hello world"

    fearful

    friendly

    gentle

    hopeful

    lyrical

    narration-professional

    narration-relaxed

    newscast

    newscast-casual

    newscast-formal

    poetry-reading

    sad

    serious

    shouting

    sports_commentary

    sports_commentary_excited

    whispering

    terrified

    unfriendly

    Configure

    AACSpeakHelper now uses a modern, intuitive configuration system with positive boolean logic. This guide explains how to configure it effectively.

    hashtag
    New Configuration System

    After installation, you need to configure the application. There are two main ways to configure AACSpeakHelper:

    1. CLI Configuration Tool - Use our command-line configuration tool Configure AACSpeakHelper CLI (recommended)

    2. Manual Editing - Edit the settings file by hand using a text editor

    hashtag
    Using the CLI Configuration Tool

    The easiest way to configure AACSpeakHelper is using our CLI configuration tool. You can find Configure AACSpeakHelper CLI in your start menu after installation, or run it directly from the installation directory.

    The CLI tool provides an interactive menu with the following options:

    1. Configure TTS Engine - Set up your Text-to-Speech engine and voice

    2. Configure Translation - Set up translation settings and language pairs

    3. Configure Transliteration - Set up script conversion settings (e.g., Latin to Devanagari)

    hashtag
    Configuring TTS Engine

    When you select option 1, you'll be able to choose from several Text-to-Speech engines:

    hashtag
    Available TTS Engines

    Sherpa-ONNX (Recommended for most users)

    • Offline TTS engine that works without internet

    • Supports a large range of languages not supported by other systems

    • Good balance of quality and performance

    Azure TTS (High quality, requires API key)

    • Microsoft's cloud-based TTS service

    • Excellent voice quality and natural speech

    • Requires Azure Speech Services subscription and API key

    Google TTS (High quality, requires API key)

    • Google's cloud-based TTS service

    • High-quality voices with natural intonation

    • Requires Google Cloud TTS API credentials

    Google Trans TTS (Free, limited quality)

    • Free TTS using Google Translate

    • No API key required but limited quality

    • May have usage restrictions

    Other Premium Engines Available:

    • ElevenLabs - Premium quality voices, requires subscription

    • PlayHT - High quality voices, requires subscription

    • AWS Polly - Good quality, requires AWS account

    circle-info

    Important Notes:

    • Sherpa-ONNX works offline but requires internet during initial setup to download voice models

    • Each Sherpa-ONNX model is around 250MB and may take time to download

    hashtag
    TTS Configuration Options

    When configuring a TTS engine, you'll be prompted for:

    Voice ID - The specific voice to use (varies by engine and language) Rate - Speech speed (0 = normal, negative values = slower, positive = faster) Volume - Audio volume (100 = normal, 50 = quieter, 150 = louder) Save Audio File - Whether to save audio files to disk for caching and reuse Bypass TTS - Skip text-to-speech entirely (useful for translation-only mode)

    hashtag
    Configuring Translation

    When you select option 2 from the main menu, you can configure translation settings:

    hashtag
    Translation Providers

    GoogleTranslator (Free, limited usage)

    • Free translation service using Google Translate

    • May have usage limits or temporary blocks with heavy use

    • Good for testing and light usage

    Microsoft Translator (Requires API key)

    • High-quality translation service

    • Requires Azure Translator subscription

    • More reliable for production use

    Other Translation Providers Available:

    • DeepL (Premium quality, requires API key)

    • Yandex Translator

    • Baidu Translator

    • LibreTranslate

    hashtag
    Translation Settings

    Enabled - Enable or disable translation entirely (true/false) Source Language - The language of your input text (e.g., "en" for English) Target Language - The target language for translation (e.g., "ps" for Pashto) Replace Clipboard - Whether to replace clipboard content with translated text

    hashtag
    Configuring Transliteration

    When you select option 3 from the main menu, you can configure transliteration settings:

    hashtag
    What is Transliteration?

    Transliteration converts text from one script to another while maintaining the same language. For example, converting Latin script "namaste" to Devanagari script "नमस्ते" (both are Hindi, just different scripts).

    hashtag
    Transliteration Settings

    Enabled - Enable or disable transliteration entirely (true/false) Language - The language for transliteration (Hindi, Arabic, Bengali, etc.) From Script - The source script (e.g., "Latn" for Latin) To Script - The target script (e.g., "Deva" for Devanagari) Replace Clipboard - Whether to replace clipboard content with transliterated text

    hashtag
    Supported Languages and Scripts

    • Arabic (ar) - Latin ↔ Arabic script

    • Bengali (bn) - Latin ↔ Bengali script

    • Gujarati (gu) - Latin ↔ Gujarati script

    hashtag
    Requirements

    Transliteration requires Azure Translator credentials:

    • Azure Translator subscription key

    • Azure resource region (e.g., "uksouth", "eastus")

    These can be configured in your settings file or through environment variables.

    hashtag
    Manual Configuration

    If you prefer to edit configuration files directly, you can manually edit the settings.cfg file.

    hashtag
    Location of Settings File

    For installed versions: Navigate to %AppData%\Ace Centre\AACSpeakHelper in File Explorer to find the settings.cfg file.

    For development versions: The settings.cfg file is located in the project root directory.

    hashtag
    Editing the Settings File

    You can edit the configuration file using any plain text editor (Notepad, VS Code, etc.). The file uses INI format with sections and key-value pairs.

    hashtag
    Example Configuration Structure

    hashtag
    Using Custom Configuration Files

    You can create multiple configuration files for different use cases:

    Command Line Usage:

    Distribution to End Users: You can create pre-configured settings files and distribute them to users. This is useful for organizations that want to deploy AACSpeakHelper with specific settings.

    hashtag
    Configuration File Sections

    [App] - Application settings

    • collectstats - Whether to collect anonymous usage statistics

    [processing] - Processing pipeline settings

    • pipeline - Order of processing steps (e.g., "translate,transliterate,tts")

    [translate] - Translation settings

    • enabled - Enable translation (true/false)

    • source_language - Source language code (e.g., "en")

    • target_language - Target language code (e.g., "ps")

    [transliterate] - Transliteration settings

    • enabled - Enable transliteration (true/false)

    • language - Language code for transliteration (e.g., "hi")

    • from_script - Source script code (e.g., "Latn")

    [tts] - Text-to-Speech settings

    • enabled - Enable TTS (true/false)

    • engine - TTS engine name (e.g., "azureTTS")

    • save_audio - Save audio files (true/false)

    [TTS] - Text-to-Speech settings

    • engine - TTS engine name (e.g., "azureTTS", "Sherpa-ONNX")

    • bypass_tts - Skip TTS entirely (True/False)

    • save_audio_file - Cache audio files (True/False)

    Engine-specific sections (e.g., [azureTTS], [googleTTS])

    • Contains API keys, credentials, and engine-specific settings

    View Current Configuration - Review your current settings
  • Save and Exit - Save your changes and exit

  • Exit without Saving - Exit without saving changes

  • No API keys required
    Supports many languages and voices
    Wide language support
    IBM Watson - Good quality, requires IBM Cloud account
  • OpenAI TTS - High quality, requires OpenAI API key

  • First-time speech generation may be slower as models initialize

  • TTS voices work best with text in the correct script/language (e.g., Arabic voices need Arabic text)

  • MyMemory Translator

  • Hindi (hi) - Latin ↔ Devanagari script
  • Kannada (kn) - Latin ↔ Kannada script

  • Malayalam (ml) - Latin ↔ Malayalam script

  • Marathi (mr) - Latin ↔ Devanagari script

  • Oriya (or) - Latin ↔ Oriya script

  • Punjabi (pa) - Latin ↔ Gurmukhi script

  • Tamil (ta) - Latin ↔ Tamil script

  • Telugu (te) - Latin ↔ Telugu script

  • Urdu (ur) - Latin ↔ Arabic script

  • replace_clipboard - Replace clipboard content (true/false)

  • provider - Translation provider name

  • to_script - Target script code (e.g., "Deva")

  • replace_clipboard - Replace clipboard content (true/false)

  • rate - Speech rate (-50 to 50)

  • volume - Volume level (0 to 200)

  • rate - Speech rate (0 = normal)

  • volume - Audio volume (100 = normal)

  • voice_id - Voice identifier

  • [App]
    collectstats = True
    
    [processing]
    pipeline = translate,transliterate,tts
    
    [translate]
    enabled = true
    source_language = en
    target_language = ps
    replace_clipboard = true
    provider = GoogleTranslator
    
    [transliterate]
    enabled = false
    language = hi
    from_script = Latn
    to_script = Deva
    replace_clipboard = true
    
    [tts]
    enabled = true
    engine = azureTTS
    save_audio = true
    rate = 0
    volume = 100
    
    [azureTTS]
    key = your-azure-key-here
    location = uksouth
    voice_id = en-US-JennyNeural
    client.exe --config path/to/your/custom-settings.cfg

    Supported Languages

    This tool supports a multitude of languages provided through Azure and Google Cloud. For a detailed list, please refer to the respective sections below.

    WARNING

    Please note. If you use any online TTS system, the data is sent to a server and sent back. These services do not store this data, but it is up to you to check this and how it may work against your own IG policy. The app does have a feature of 'caching' data, too - but this is not sent to Ace or anyone else. It's all on the device.

    hashtag
    Languages by Azure

    For the most up-to-date list see the list

    hashtag
    Languages by Azure (Online)

    hashtag
    Languages by Google Cloud (Online)

    hashtag
    Languages by Sherpa-Onnx (MMS)

    Czech

    Danish

    Dutch

    English

    Estonian

    Filipino

    Finnish

    French

    Galician

    Georgian

    German

    Greek

    Gujarati

    Hebrew

    Hindi

    Hungarian

    Icelandic

    Indonesian

    Irish

    Italian

    Japanese

    Javanese

    Kannada

    Kazakh

    Khmer

    Korean

    Lao

    Latvian

    Lithuanian

    Macedonian

    Malay

    Malayalam

    Maltese

    Marathi

    Mongolian

    Nepali

    Norwegian Bokmål

    Pashto

    Persian

    Polish

    Portuguese

    Romanian

    Russian

    Serbian

    Sinhala

    Slovak

    Slovenian

    Somali

    Spanish

    Sundanese

    Swahili

    Swedish

    Tamil

    Telugu

    Thai

    Turkish

    Ukrainian

    Urdu

    Uzbek

    Vietnamese

    Welsh

    English (US)

    Filipino (Philippines)

    Finnish (Finland)

    French (Canada)

    French (France)

    Galician (Spain)

    German (Germany)

    Greek (Greece)

    Gujarati (India)

    Hebrew (Israel)

    Hindi (India)

    Hungarian (Hungary)

    Icelandic (Iceland)

    Indonesian (Indonesia)

    Italian (Italy)

    Japanese (Japan)

    Kannada (India)

    Korean (South Korea)

    Latvian (Latvia)

    Lithuanian (Lithuania)

    Malay (Malaysia)

    Malayalam (India)

    Mandarin Chinese

    Marathi (India)

    Akawaio

    Akeu

    Akha

    Akoose

    Alangan

    Albanian

    Altai, Southern

    Alune

    Alur

    Amazigh

    Ambai

    Ambrym, North

    Amharic

    Amis

    Amuzgo, San Pedro Amuzgos

    Angor

    Anjam

    Anufo

    Anyin

    Arabela

    Arabic

    Aralle-Tabulahan

    Aringa

    Armenian, Western

    Arop-Lokep

    Arosi

    Aruamu

    Asháninka

    Ashéninka, Pajonal

    Ashéninka, Pichis

    Ashéninka, Ucayali-Yurúa

    Assamese

    Asu

    Ateso

    Attié

    Aukan

    Avar

    Avatime

    Avokaya

    Awa

    Awa-Cuaiquer

    Awadhi

    Awajún

    Awakateko

    Aymara, Central

    Ayoreo

    Ayta, Abellen

    Ayta, Mag-Indi

    Ayta, Mag-antsi

    Azerbaijani, North

    Azerbaijani, North

    Azerbaijani, South

    Baatonum

    Bada

    Baelelea

    Bagheli

    Bagri

    Bahnar

    Baka

    Bakhtiâri

    Bakwé

    Balantak

    Bali

    Balochi, Southern

    Balochi, Southern

    Bamanankan

    Bambam

    Bana

    Bandial

    Bantoanon

    Barai

    Bari

    Baruga

    Bashkort

    Basque

    Bassa

    Batak Angkola

    Batak Dairi

    Batak Karo

    Batak Simalungun

    Batak Toba

    Bauzi

    Bedjond

    Behoa

    Bekwarra

    Belize English Creole

    Bemba

    Benga

    Bengali

    Berom

    Bete-Bendi

    Bharia

    Bhatri

    Bhattiyali

    Biali

    Bidayuh, Bau

    Bikol, Buhi’non

    Bikol, Central

    Bimoba

    Binukid

    Binumarien

    Birifor, Malba

    Birifor, Southern

    Bisa

    Bislama

    Bisu

    Bisã

    Blaan, Koronadal

    Blaan, Sarangani

    Bobo Madaré, Southern

    Bodo Parja

    Boko

    Bokobaru

    Bola

    Bomu

    Bonggi

    Bora

    Borong

    Borôro

    Bru, Eastern

    Buamu

    Buang, Mapos

    Bughotu

    Buglere

    Bulgarian

    Buli

    Bum

    Burmese

    Bwanabwana

    Cabécar

    Cacua

    Capanahua

    Caquinte

    Carapana

    Carib

    Catalan

    Cebuano

    Cerma

    Chachi

    Chamacoco

    Chatino, Eastern Highland

    ...

    ...

    Tok Pisin

    Tol

    Tolaki

    Tombonuo

    Tombulu

    Tonga

    Tontemboan

    Toraja-Sa’dan

    Torres Strait Creole

    Totonac, Coyutla

    Totonac, Highland

    Toura

    Trinitario

    Triqui, Chicahuaxtla

    Triqui, Copala

    Trió

    Tsafiki

    Tsakhur

    Tsikimba

    Tsimané

    Tsonga

    Tucano

    Tuma-Irumu

    Tumak

    Tunebo, Central

    Turkish

    Turkmen

    Turkmen

    Tuwuli

    Tuyuca

    Tyap

    Tzeltal

    Tzeltal

    Tzotzil

    Tzotzil

    Tz’utujil

    Tz’utujil

    Uab Meto

    Udmurt

    Uduk

    Ukrainian

    Uma

    Umbu-Ungu

    Urak Lawoi’

    Urarina

    Urat

    Urdu

    Urdu

    Urdu

    Uripiv-Wala-Rano-Atchin

    Uspanteko

    Uyghur

    Uyghur

    Uzbek

    Vagla

    Vengo

    Vidunda

    Vietnamese

    Vili

    Vunjo

    Vute

    Wa, Parauk

    Waama

    Waima

    Waimaha

    Waiwai

    Wala

    Wali

    Wamey

    Wampís

    Wanano

    Wandala

    Wapishana

    Warao

    Waray-Waray

    Wayana

    Wayuu

    Welsh

    Wersing

    Whitesands

    Witoto, Minika

    Witoto, Murui

    Wolaytta

    Wolaytta

    Wolio

    Woun Meu

    Wè Northern

    Xaasongaxango

    Xerénte

    Yagua

    Yakan

    Yakut

    Yala

    Yali, Angguruk

    Yali, Ninia

    Yalunka

    Yamba

    Yambeta

    Yamdena

    Yami

    Yaminahua

    Yanesha’

    Yanomamö

    Yao

    Yaouré

    Yawa

    Yemba

    Yine

    Yipma

    Yom

    Yoruba

    Yucuna

    Yupik, Saint Lawrence Island

    Yuracare

    Zaiwa

    Zande

    Zapotec, Aloápam

    Zapotec, Amatlán

    Zapotec, Cajonos

    Zapotec, Choapan

    Zapotec, Coatecas Altas

    Zapotec, Guevea de Humboldt

    Zapotec, Isthmus

    Zapotec, Lachixío

    Zapotec, Miahuatlán

    Zapotec, Mitla

    Zapotec, Mixtepec

    Zapotec, Ocotlán

    Zapotec, Ozolotepec

    Zapotec, Quioquitani-Quierí

    Zapotec, Rincón

    Zapotec, San Vicente Coatlán

    Zapotec, Santa María Quiegolani

    Zapotec, Santo Domingo Albarradas

    Zapotec, Sierra de Juárez

    Zapotec, Texmelucan

    Zapotec, Western Tlacolula Valley

    Zapotec, Yalálag

    Zapotec, Yareni

    Zapotec, Yatee

    Zapotec, Yatzachi

    Zaza

    Zhuang, Yongbei

    Zigula

    Zoque, Francisco León

    Zulgo-Gemzek

    Éwé

    Afrikaans

    Armenian

    Azerbaijani

    Albanian

    Amharic

    Bangla

    Arabic

    Bengali

    Bosnian

    Bulgarian

    Burmese

    Catalan

    Chinese

    Afrikaans (South Africa)

    Arabic

    Basque (Spain)

    Bengali (India)

    Bulgarian (Bulgaria)

    Catalan (Spain)

    Chinese (Hong Kong)

    Czech (Czech Republic)

    Danish (Denmark)

    Dutch (Belgium)

    Dutch (Netherlands)

    English (Australia)

    English (India)

    Abidji

    Aceh

    Achagua

    Achang

    Achi

    Acholi

    Achuar-Shiwiar

    Aché

    Adele

    Adioukrou

    Agarabi

    Aghul

    Agutaynen

    Ahanta

    Akan

    herearrow-up-right

    Croatian

    English (UK)

    Akateko

    Do you really need this?

    First up, check the table below for Languages officially supported by the software you are using. You can also use this as a tool to find which apps support a language you are interested in. Be careful. Some languages write in different scripts. Check the script that the TTS engine expects.

    circle-exclamation

    Want a easy way of finding which systems and what voice is supported by what system - try using this http://ttsvoicesavailable.streamlit.apparrow-up-right - alternatively use ctrl+f to search for a language/voice for your AAC app/system here. Note: We are covering largely TTS on Windows here. TTS on Android or iOS we will include as we go forward.

    hashtag
    MindExpress

    Software
    Language Details
    ISO Language Code
    Cost
    Download
    More Info

    hashtag
    RHVoice (SAPI)

    Software
    Voice Name
    Description
    Download for NVDA
    Download for Other Windows Programs
    Software
    Voice Name
    Description
    Download for NVDA
    Download for Other Windows Programs

    hashtag
    SAPI - MSSpeech

    Software
    Voice Name
    Language Details
    Download Link
    Software
    Voice Name
    Version
    Download Link
    File Size
    Compatible OS

    hashtag
    anReader

    Language
    Version Description
    Download Link
    File Size
    Additional Info

    hashtag
    Note:

    • All versions of anReader 4.2.8 support both 32-bit and 64-bit versions of Windows OS.

    • It is recommended that Windows is updated and the latest system patches are installed.

    • On Windows 10 and Windows 11, only the latest version of NVDA is currently supported, with other screen readers minor problems may occur in the operation of anReader.

    hashtag
    Cereproc (SAPI)

    Voice Name
    Accent/Region
    Type of Voice
    Personal Use Price
    Commercial Use Price

    MindExpress

    English (Ireland) - Vocalizer: Moira (F)

    en-IE

    MindExpress

    English (Scotland) - Acapela: Rhona (F)

    en-SC

    MindExpress

    English (United Kingdom) - Acapela: Lucy (F), Rachel (F)

    en-GB

    MindExpress

    Dutch (België) - Acapela: Sofie (F), Zoe (F)

    nl-BE

    MindExpress

    French (Canada) - Acapela: Louise (F)

    fr-CA

    MindExpress

    German - Acapela: Claudia (F), Julia (F), Sarah (F)

    de-DE

    MindExpress

    Greek - Acapela: Dimitris (M)

    el-GR

    MindExpress

    Italian - Acapela: Chiara (F), Fabiana (F)

    it-IT

    MindExpress

    Norwegian - Acapela: Bente (F), Kari (F)

    no-NO

    MindExpress

    Polish - Acapela: Ania (F)

    pl-PL

    MindExpress

    Portuguese - Acapela: Celia (F)

    pt-PT

    MindExpress

    Portuguese (Brazil) - Acapela: Marcia (F)

    pt-BR

    MindExpress

    Russian - Acapela: Alyona (F)

    ru-RU

    MindExpress

    Spanish - Acapela: Ines (F), Maria (F)

    es-ES

    MindExpress

    Spanish (Mexico) - Acapela: Rosa (F)

    es-MX

    MindExpress

    Swedish - Acapela: Elin (F), Emma (F)

    sv-SE

    MindExpress

    Turkish - Acapela: Ipek (F)

    tr-TR

    MindExpress

    Ukrainian - Acapela: Dmytro (M)

    uk-UA

    RHVoice

    Kiko

    Macedonian

    RHVoice

    Suze

    Macedonian

    RHVoice

    Aleksandr

    Russian

    RHVoice

    Anna

    Russian

    RHVoice

    Elena

    Russian

    RHVoice

    Irina

    Russian

    RHVoice

    Dragana

    Serbian

    RHVoice

    Talgat

    Tatar

    RHVoice

    Anatol

    Ukrainian

    RHVoice

    Natalia

    Ukrainian

    RHVoice

    Dil’navoz

    Uzbek

    SAPI

    Hayley

    English (Australia)

    SAPI

    Heather

    English (Canada)

    SAPI

    Hazel

    English (UK)

    SAPI

    Heera

    English (India)

    SAPI

    Helen

    English (US)

    SAPI

    Zira Pro

    English (US)

    SAPI

    Helena

    Spanish (Spain)

    SAPI

    Hilda

    Spanish (Mexico)

    SAPI

    Heidi

    Finnish (Finland)

    SAPI

    Harmonie

    French (Canada)

    SAPI

    Hortense

    French (France)

    SAPI

    Lucia

    Italian (Italy)

    SAPI

    Haruka

    Japanese (Japan)

    SAPI

    Heami

    Korean (South Korea)

    SAPI

    Hulda

    Norwegian (Norway)

    SAPI

    Hanna

    Dutch (Netherlands)

    SAPI

    Paulina

    Polish (Poland)

    SAPI

    Heloisa

    Portuguese (Brazil)

    SAPI

    Helia

    Portuguese (Portugal)

    SAPI

    Helia 16k

    Portuguese (Portugal)

    SAPI

    Elena

    Russian (Russia)

    SAPI

    Hedvig

    Swedish (Sweden)

    SAPI

    HuiHui

    Chinese (China)

    SAPI

    HunYee

    Chinese (Hong Kong)

    SAPI

    HanHan

    Chinese (Taiwan)

    Serbian

    Version with KAYMK HASP key

    ~569 MB

    Requires , for Windows 10/11

    Croatian

    Version with serial number

    ~237 MB

    Request a test serial number as described in the Licensing via serial number section.

    Croatian

    Version with IDXEG HASP key

    ~235 MB

    Requires for XP/Vista, for Windows 7+

    Croatian

    Version with KAYMK HASP key

    ~239 MB

    Requires , for Windows 10/11

    Stuart

    Scottish English

    Scottish Male

    £25.99

    £299.99

    Sarah

    Southern English

    English Female

    £25.99

    £299.99

    Nathan

    American English

    US Male

    £25.99

    £299.99

    Andrew Child

    Scottish English

    Scottish Child

    £25.99

    £299.99

    Mairi Child

    Scottish English

    Scottish Child

    £25.99

    £299.99

    Amy

    Southern English

    English Female

    £25.99

    £299.99

    Carolyn

    American English

    US Female

    £25.99

    £299.99

    Lily Child

    Southern English

    Southern English Child

    £25.99

    £299.99

    Ben Child

    Southern English

    Southern English Child

    £25.99

    £299.99

    Megan

    American English

    US Female

    £25.99

    £299.99

    Jordan Child

    American English

    US Child

    £25.99

    £299.99

    Jack

    Southern English

    English Male

    £25.99

    £299.99

    Caitlin

    Irish English

    Irish Female

    £25.99

    £299.99

    Giles

    Southern English

    English Male

    £25.99

    £299.99

    Isabella

    American English

    US Female

    £25.99

    £299.99

    Lauren

    Southern English

    English Female

    £25.99

    £299.99

    Adam

    American English

    US Male

    £25.99

    £299.99

    Katherine

    American English

    US Female

    £25.99

    £299.99

    Kirsty

    Scottish English

    Scottish Female

    £25.99

    £299.99

    Hannah

    American English

    US Female

    £25.99

    £299.99

    Heather

    Scottish English

    Scottish Female

    £25.99

    £299.99

    Jess

    Northern English

    Northern English Female

    £25.99

    £299.99

    Seren

    Welsh English

    Welsh Child

    £25.99

    £299.99

    Gethin

    Welsh English

    Welsh Child

    £25.99

    £299.99

    Owain

    Welsh English

    Welsh Child

    £25.99

    £299.99

    Catrin

    Welsh English

    Welsh Child

    £25.99

    £299.99

    Rhodri

    Welsh English

    Welsh Teenage

    £25.99

    £299.99

    Rhian

    Welsh English

    Welsh Teenage

    £25.99

    £299.99

    Ffion

    Welsh English

    Welsh Teenage

    £25.99

    £299.99

    Tomos

    Welsh English

    Welsh Teenage

    £25.99

    £299.99

    Clara

    Norwegian

    Norwegian Bokmål

    £25.99

    £299.99

    Mailin

    Mandarin Chinese

    Mandarin Chinese

    £25.99

    £299.99

    Catrin

    Welsh

    Cymraeg/Welsh Child

    £4.99

    £299.99

    Francesco

    Italian

    Italian Child

    £25.99

    £299.99

    Hulda

    Norwegian

    Norwegian Nynorsk

    £25.99

    £299.99

    Nicoletta

    Italian

    Italian Child

    £25.99

    £299.99

    Marie

    Danish

    Danish Female

    £25.99

    £299.99

    Magnus

    Norwegian

    Norwegian Bokmål

    £25.99

    £299.99

    Lars

    Danish

    Danish

    £25.99

    £299.99

    Eglė

    Lithuanian

    Lithuanian

    £25.99

    £299.99

    Seren

    Welsh

    Cymraeg/Welsh Child

    £4.99

    £299.99

    Dario

    Italian

    Italian Male

    £25.99

    £299.99

    Mantas

    Lithuanian

    Lithuanian

    £25.99

    £299.99

    Demon

    Novelty Voice

    Demon

    £10.99

    £299.99

    Laurent

    French

    French Male

    £25.99

    £299.99

    Laura

    Italian

    Italian Female

    £25.99

    £299.99

    Leopold

    Austrian German

    Austrian Male

    £25.99

    £299.99

    Lúcia

    Portuguese

    Portuguese

    £25.99

    £299.99

    Sara

    Spanish

    Spanish Female

    £25.99

    £299.99

    Pola

    Polish

    Polish Female

    £25.99

    £299.99

    Gudrun

    German

    German Female

    £25.99

    £299.99

    Gabriel

    Brazilian Portuguese

    Brazilian Portuguese Male

    £25.99

    £299.99

    Ada

    Dutch

    Dutch Female

    £25.99

    £299.99

    Sue

    West Midlands - Black Country

    West Midlands Female

    £10.99

    £299.99

    Alex

    German

    German Male

    £25.99

    £299.99

    Ana

    American Spanish

    American Spanish Female

    £25.99

    £299.99

    Ceitidh

    Scottish Gaelic

    Scottish Gaelic Female

    £25.99

    £299.99

    Suzanne

    French

    French Female

    £25.99

    £299.99

    Ylva

    Swedish

    Swedish Female

    £25.99

    £299.99

    Robot

    Novelty Voice

    Robot

    £10.99

    £299.99

    Pixie

    Novelty Voice

    Pixie

    £10.99

    £299.99

    Nicole the Sexy French Voice

    Sexy French

    Nicole the Sexy French Voice

    £10.99

    £299.99

    Florence

    French Canadian

    Florence voice

    £25.99

    £299.99

    Daria

    Romanian

    Romanian Female

    £25.99

    £299.99

    Voz Ana

    American Spanish

    American Spanish Female

    £25.99

    £299.99

    Goblin

    Novelty Voice

    Goblin

    £10.99

    £299.99

    Ghost

    Novelty Voice

    Ghost

    £10.99

    £299.99

    Yuki

    Japanese

    Japanese Female

    £25.99

    £299.99

    Rita

    Catalan

    Catalan Female

    £25.99

    £299.99

    Peig

    Irish

    Peig, Irish Female

    £25.99

    £299.99

    Dodo

    Glasgow

    Glasgow Male

    £10.99

    £299.99

    Claire

    Lancashire

    Lancashire Female

    £10.99

    £299.99

    MindExpress

    English (Australia) - Acapela: Lisa (F), Tyler (M)

    en-AU

    Downloadarrow-up-right

    More Infoarrow-up-right

    MindExpress

    English (India) - Acapela: Deepa (F)

    en-IN

    RHVoice

    Azamat

    Kyrgyz

    Download NVDA Addon v4.0arrow-up-right

    Download Setup v4.0arrow-up-right

    RHVoice

    Nazgul

    Kyrgyz

    Download NVDA Addon v4.0arrow-up-right

    Download Setup v4.0arrow-up-right

    RHVoice

    Sevinch

    Uzbek

    Download NVDA Addon v4.5arrow-up-right

    Download Setup v4.5arrow-up-right

    RHVoice

    Islom

    Uzbek

    Download NVDA Addon v4.1.1arrow-up-right

    Download Setup v4.1.1arrow-up-right

    SAPI

    Herena

    Catalan (Spain)

    Downloadarrow-up-right

    SAPI

    Helle

    Danish (Denmark)

    Downloadarrow-up-right

    SAPI

    Hedda

    German (Germany)

    SAPI

    UkrVox

    4.2

    Download UkrVox 4.2arrow-up-right

    29.07 MB

    Windows XP+

    Serbian

    Version with serial number

    anReader 4.2.8 Snezana Actarrow-up-right

    ~567 MB

    Request a test serial number as described in the Licensing by serial section.

    Serbian

    Version with IDXEG HASP key

    anReader 4.2.8 Snezana IDXEG Hasparrow-up-right

    ~565 MB

    Requires HASP4.ziparrow-up-right for XP/Vista, Hdd32.ziparrow-up-right for Windows 7+

    William

    Southern English

    English Male

    £25.99

    £299.99

    Andy Child

    American English

    US Child

    £25.99

    £299.99

    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Downloadarrow-up-right
    More Infoarrow-up-right
    Kiko's pagearrow-up-right
    Kiko's pagearrow-up-right
    Download NVDA Addon v4.1arrow-up-right
    Download Setup v4.1arrow-up-right
    Download NVDA Addon v4.2arrow-up-right
    Download Setup v4.2arrow-up-right
    Download NVDA Addon v4.1arrow-up-right
    Download Setup v4.1arrow-up-right
    Download NVDA Addon v4.3arrow-up-right
    Download Setup v4.3arrow-up-right
    Download NVDA Addon v4.1arrow-up-right
    Download Setup v4.1arrow-up-right
    Download NVDA Addon v4.8arrow-up-right
    Download Setup v4.8arrow-up-right
    Download NVDA Addon v4.0arrow-up-right
    Download Setup v4.0arrow-up-right
    Download NVDA Addon v4.3arrow-up-right
    Download Setup v4.3arrow-up-right
    Download NVDA Addon v4.3arrow-up-right
    Download Setup v4.3arrow-up-right
    Download NVDA Addon v4.0arrow-up-right
    Download Setup v4.0arrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    Downloadarrow-up-right
    anReader 4.2.8 Snezana KAYMK Hasparrow-up-right
    sentinel_ldk_run-time_cmd_line.ziparrow-up-right
    Sentinel LDK Run-time setup.ziparrow-up-right
    anReader 4.2.8 Marica Actarrow-up-right
    anReader 4.2.8 Marica IDXEG Hasparrow-up-right
    HASP4.ziparrow-up-right
    Hdd32.ziparrow-up-right
    anReader 4.2.8 Marica KAYMK Hasparrow-up-right
    sentinel_ldk_run-time_cmd_line.ziparrow-up-right
    Sentinel LDK Run-time setup.ziparrow-up-right