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

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)

Languages by Google Cloud (Online)

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

Croatian

English (UK)

Akateko

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 .

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)

  • donate

    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.

    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

    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 1000's of languages 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

    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

    Compatibility

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

    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.

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

    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

    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

    Tobii Dynavox Snap

    Communicator

    See the demo pageset

    NuVoice

    MindExpress

    To-do

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

    Getting keys for Azure or Google

    Azure TTS

    • You first need an Azure subscription - .

    • in the Azure portal.

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

    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

  • 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

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

    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 free
    Create a Speech resource
    http://aackeyboardmaker.streamlit.app
    here
    here for a demo
    latest release
    Building the Application

    Development Testing

    Building for Windows

    here
    # 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

    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

    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

  • 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

      • 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

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

    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

    Technical Implementation

    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.

    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.

    • 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

    Tips

    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

    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

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

    Command Line Flags

    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

    Flag
    Description
    Type
    Required
    Default
    Example

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

    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.

    Usage

    Development:

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

    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

    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]

    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"

    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 Translation - Set up translation services

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

    • Set source and target languages

    • Configure API credentials

  • View Current Configuration - Display current settings

  • Save and Exit - Save changes and exit

  • Exit without Saving - Exit without saving changes

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

    advertisement_upbeat

    affectionate

    angry

    assistant

    calm

    chat

    cheerful

    customerservice

    depressed

    disgruntled

    documentary-narration

    embarrassed

    empathetic

    envious

    excited

    Read the Azure docs for more info

    No

    fearful

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

    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)
  • Manual Editing - Edit the settings file by hand using a text editor

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

    4. View Current Configuration - Review your current settings

    5. Save and Exit - Save your changes and exit

    6. Exit without Saving - Exit without saving changes

    Configuring TTS Engine

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

    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

    • 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

    • IBM Watson - Good quality, requires IBM Cloud account

    • OpenAI TTS - High quality, requires OpenAI API key

    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

    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)

    Configuring Translation

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

    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

    • MyMemory Translator

    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

    Configuring Transliteration

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

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

    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

    Supported Languages and Scripts

    • Arabic (ar) - Latin ↔ Arabic script

    • Bengali (bn) - Latin ↔ Bengali script

    • Gujarati (gu) - Latin ↔ Gujarati script

    • 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

    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.

    Manual Configuration

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

    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.

    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.

    Example Configuration Structure

    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.

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

    • replace_clipboard - Replace clipboard content (true/false)

    • provider - Translation provider name

    [transliterate] - Transliteration settings

    • enabled - Enable transliteration (true/false)

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

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

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

    • replace_clipboard - Replace clipboard content (true/false)

    [tts] - Text-to-Speech settings

    • enabled - Enable TTS (true/false)

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

    • save_audio - Save audio files (true/false)

    • rate - Speech rate (-50 to 50)

    • volume - Volume level (0 to 200)

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

    • rate - Speech rate (0 = normal)

    • volume - Audio volume (100 = normal)

    • voice_id - Voice identifier

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

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

    [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

    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 http://ttsvoicesavailable.streamlit.app - 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

    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

    SAPI - MSSpeech

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

    anReader

    Language
    Version Description
    Download Link
    File Size
    Additional Info

    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.

    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

    Download

    More Info

    MindExpress

    English (India) - Acapela: Deepa (F)

    en-IN

    RHVoice

    Azamat

    Kyrgyz

    Download NVDA Addon v4.0

    Download Setup v4.0

    RHVoice

    Nazgul

    Kyrgyz

    Download NVDA Addon v4.0

    Download Setup v4.0

    RHVoice

    Sevinch

    Uzbek

    Download NVDA Addon v4.5

    Download Setup v4.5

    RHVoice

    Islom

    Uzbek

    Download NVDA Addon v4.1.1

    Download Setup v4.1.1

    SAPI

    Herena

    Catalan (Spain)

    Download

    SAPI

    Helle

    Danish (Denmark)

    Download

    SAPI

    Hedda

    German (Germany)

    SAPI

    UkrVox

    4.2

    Download UkrVox 4.2

    29.07 MB

    Windows XP+

    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.

    Serbian

    Version with IDXEG HASP key

    anReader 4.2.8 Snezana IDXEG Hasp

    ~565 MB

    Requires HASP4.zip for XP/Vista, Hdd32.zip for Windows 7+

    William

    Southern English

    English Male

    £25.99

    £299.99

    Andy Child

    American English

    US Child

    £25.99

    £299.99

    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    Download
    More Info
    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.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
    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