Only this pageAll pages
Powered 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

  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

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

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.

Download

Download the installer from our latest release. 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

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

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

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

(
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.

    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

    See the demo pageset here

    To-do

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

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

    The Grid 3

    Tobii Dynavox Snap

    Communicator

    NuVoice

    MindExpress

    Typical Use Cases

    Compatibility

    How it Works

    1000's of languages
    http://aackeyboardmaker.streamlit.app

    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.

    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.

    Roadmap

    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 donate.

    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)

    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 here.)

    Building the Application

    Development Testing

    # 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

    Building for Windows

    # 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

    Getting keys for Azure or Google

    Azure TTS

    • You first need an Azure subscription - Create one for free.

    • Create a Speech resource 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 resource

    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 .

    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.

    • 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.

    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.

    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

    Create a Service Account:

    Choose the role for the service account. This determines the permissions it will have.
  • Click "Continue" to proceed.

  • Google Cloud TTS

    Google Cloud Console

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

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

  • Handles translation using various translation providers

  • Communicates via named pipes with clients

  • 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. Calls the pipe service to process text

    4. Supports command-line parameters for different configurations

  • CLI Configuration Tool (cli_config_creator.py)

    1. Interactive command-line interface for configuration

    2. Supports all TTS engines and translation providers

    3. Creates and manages settings.cfg files

    4. Replaces the unreliable GUI configuration tool

  • Additional Tools

    1. CreateGridset.py - Creates AAC communication grids

    2. migrate_settings.py - Migrates settings between versions

  • 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

      • Can be customized and distributed to end users

    2. config.enc - Encrypted configuration for sensitive data

      • Contains API keys and credentials for cloud services

      • Generated during build process from environment variables

    3. Environment Variables (Development only)

      • Used during development via .envrc files

      • Automatically encrypted into config.enc during build process

    4. Command-line Parameters

      • Allow specifying custom configuration files

      • Enable different configurations for different use cases

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

    • TTS-Wrapper - 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

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

    • MMS and Models readied for Sherpa-Onnx - 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

    • 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.

    • 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.

    • Simon Poole - CTO at Smartbox for making me aware of MMS.

    Whats next?

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

    Configuration Architecture

    Technical Implementation

    Credits

    Tips

    • 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

    Provides fallback credentials when user hasn't configured their own
    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

    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

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

    • 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 )

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

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

    When supporting people with a language not supported by AAC

    # 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"
    }
    
    spinner

    Command Line Flags

    Flag
    Description
    Type
    Required
    Default
    Example

    None

    --style "sad"

    -sd, --styledegree

    Specifies the degree of the style for Azure TTS.

    Float

    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"

    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 info.

    advertisement_upbeat

    affectionate

    angry

    assistant

    calm

    chat

    cheerful

    customerservice

    depressed

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

    Development:

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

    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

    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]

    -s, --style

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

    String

    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.

    General Usage

    Options

    No

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

    Using the style flag for Azure voices

    CLI Configuration Tool

    Usage

    CLI Configuration Options

    Configuration File Management

    Configure

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

    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

    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)

    When you select option 1, you'll be able to choose from several Text-to-Speech 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

    • No API keys required

    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

    • Supports many languages and voices

    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

    • Wide language support

    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

    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)

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

    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

    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

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

    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).

    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

    • Arabic (ar) - Latin ↔ Arabic script

    • Bengali (bn) - Latin ↔ Bengali script

    • Gujarati (gu) - Latin ↔ Gujarati script

    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.

    If you prefer to edit configuration files directly, you can manually edit the settings.cfg 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.

    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.

    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.

    [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

    Configure API credentials

    disgruntled

    documentary-narration

    embarrassed

    empathetic

    envious

    excited

    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

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

  • Exit without Saving - Exit without saving changes

  • IBM Watson - Good quality, requires IBM Cloud account
  • OpenAI TTS - High quality, requires OpenAI API key

  • 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

  • Using the CLI Configuration Tool

    Configuring TTS Engine

    Available TTS Engines

    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

    • 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)

    TTS Configuration Options

    Configuring Translation

    Translation Providers

    Translation Settings

    Configuring Transliteration

    What is Transliteration?

    Transliteration Settings

    Supported Languages and Scripts

    Requirements

    Manual Configuration

    Location of Settings File

    Editing the Settings File

    Example Configuration Structure

    Using Custom Configuration Files

    Configuration File Sections

    [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
    Basic, very short demo showing config and running

    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.

    Languages by Azure

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

    Languages by Azure (Online)

    Dutch (Belgium)

    Dutch (Netherlands)

    English (Australia)

    English (India)

    English (UK)

    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)

    Agarabi

    Aghul

    Agutaynen

    Ahanta

    Akan

    Akateko

    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

    Croatian

    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

    Afrikaans (South Africa)

    Arabic

    Basque (Spain)

    Bengali (India)

    Bulgarian (Bulgaria)

    Catalan (Spain)

    Chinese (Hong Kong)

    Czech (Czech Republic)

    Abidji

    Aceh

    Achagua

    Achang

    Achi

    Acholi

    Achuar-Shiwiar

    Aché

    Adele

    Languages by Google Cloud (Online)

    Languages by Sherpa-Onnx (MMS)

    Danish (Denmark)

    Adioukrou

    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.

    Want a easy way of finding which systems and what voice is supported by what system - try using this - 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.

    MindExpress

    Software
    Language Details
    ISO Language Code
    Cost
    Download
    More Info
    Software
    Voice Name
    Description
    Download for NVDA
    Download for Other Windows Programs
    Software
    Voice Name
    Description
    Download for NVDA
    Download for Other Windows Programs
    Software
    Voice Name
    Language Details
    Download Link
    Software
    Voice Name
    Version
    Download Link
    File Size
    Compatible OS
    Language
    Version Description
    Download Link
    File Size
    Additional Info
    • 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.

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

    Nazgul

    Kyrgyz

    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

    Islom

    Uzbek

    RHVoice

    Dil’navoz

    Uzbek

    SAPI

    Hedda

    German (Germany)

    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)

    Windows XP+

    Version with IDXEG HASP key

    ~565 MB

    Requires for XP/Vista, for Windows 7+

    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

    American English

    US Child

    ÂŁ25.99

    ÂŁ299.99

    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

    Download

    More Info

    MindExpress

    English (India) - Acapela: Deepa (F)

    en-IN

    Download

    More Info

    MindExpress

    English (Ireland) - Vocalizer: Moira (F)

    en-IE

    Download

    More Info

    MindExpress

    English (Scotland) - Acapela: Rhona (F)

    en-SC

    Download

    More Info

    MindExpress

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

    en-GB

    Download

    More Info

    MindExpress

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

    nl-BE

    Download

    More Info

    MindExpress

    French (Canada) - Acapela: Louise (F)

    fr-CA

    Download

    More Info

    MindExpress

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

    de-DE

    Download

    More Info

    MindExpress

    Greek - Acapela: Dimitris (M)

    el-GR

    Download

    More Info

    MindExpress

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

    it-IT

    Download

    More Info

    MindExpress

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

    no-NO

    Download

    More Info

    MindExpress

    Polish - Acapela: Ania (F)

    pl-PL

    Download

    More Info

    MindExpress

    Portuguese - Acapela: Celia (F)

    pt-PT

    Download

    More Info

    MindExpress

    Portuguese (Brazil) - Acapela: Marcia (F)

    pt-BR

    Download

    More Info

    MindExpress

    Russian - Acapela: Alyona (F)

    ru-RU

    Download

    More Info

    MindExpress

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

    es-ES

    Download

    More Info

    MindExpress

    Spanish (Mexico) - Acapela: Rosa (F)

    es-MX

    Download

    More Info

    MindExpress

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

    sv-SE

    Download

    More Info

    MindExpress

    Turkish - Acapela: Ipek (F)

    tr-TR

    Download

    More Info

    MindExpress

    Ukrainian - Acapela: Dmytro (M)

    uk-UA

    Download

    More Info

    RHVoice

    Azamat

    Kyrgyz

    Download NVDA Addon v4.0

    Download Setup v4.0

    RHVoice

    Sevinch

    Uzbek

    Download NVDA Addon v4.5

    Download Setup v4.5

    SAPI

    Herena

    Catalan (Spain)

    Download

    SAPI

    Helle

    SAPI

    UkrVox

    4.2

    Download UkrVox 4.2

    Serbian

    Version with serial number

    anReader 4.2.8 Snezana Act

    ~567 MB

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

    William

    Southern English

    English Male

    ÂŁ25.99

    ÂŁ299.99

    RHVoice (SAPI)

    SAPI - MSSpeech

    anReader

    Note:

    Cereproc (SAPI)

    http://ttsvoicesavailable.streamlit.app

    RHVoice

    RHVoice

    Danish (Denmark)

    29.07 MB

    Serbian

    Andy Child

    Download NVDA Addon v4.0
    Download Setup v4.0
    Kiko's page
    Kiko's page
    Download NVDA Addon v4.1
    Download Setup v4.1
    Download NVDA Addon v4.2
    Download Setup v4.2
    Download NVDA Addon v4.1
    Download Setup v4.1
    Download NVDA Addon v4.3
    Download Setup v4.3
    Download NVDA Addon v4.1
    Download Setup v4.1
    Download NVDA Addon v4.8
    Download Setup v4.8
    Download NVDA Addon v4.0
    Download Setup v4.0
    Download NVDA Addon v4.3
    Download Setup v4.3
    Download NVDA Addon v4.3
    Download Setup v4.3
    Download NVDA Addon v4.1.1
    Download Setup v4.1.1
    Download NVDA Addon v4.0
    Download Setup v4.0
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    Download
    anReader 4.2.8 Snezana IDXEG Hasp
    HASP4.zip
    Hdd32.zip
    anReader 4.2.8 Snezana KAYMK Hasp
    sentinel_ldk_run-time_cmd_line.zip
    Sentinel LDK Run-time setup.zip
    anReader 4.2.8 Marica Act
    anReader 4.2.8 Marica IDXEG Hasp
    HASP4.zip
    Hdd32.zip
    anReader 4.2.8 Marica KAYMK Hasp
    sentinel_ldk_run-time_cmd_line.zip
    Sentinel LDK Run-time setup.zip