Skip to content

Limited and Slow Automatic Language Switching in SAPI 5 and Natural Voice SAPI Adapter #86

@amirsol81

Description

@amirsol81

When HTM / HTML / DOCX (and similar) files contain proper language tags, and Automatic language switching is enabled in screen readers such as NVDA and JAWS, voices provided through SAPI 5 and the Natural Voice SAPI Adapter are able to switch languages automatically when encountering language tags.
However, there are several limitations and issues with how SAPI 5 handles this mechanism.

Problem 1: No Control Over Voice Selection per Language.

SAPI 5 appears to use a non-configurable internal mechanism for automatic language switching.
If multiple voices are installed for the same language (for example, several French voices and several English voices), SAPI 5 consistently selects only a single, low-quality voice for each language during language switching. These voices are lower-quality or not the user’s preferred voices.
Currently, the user has no way to specify which voice should be used for a particular language.
For example, there is no option to tell SAPI 5 or the SAPI Adapter:
“When switching to French, always use this specific French voice.”

Reproduction Steps:

  1. Make sure Language switching is enabled in NVDA and JAWS.
  2. Open the attached HTM file in Firefox, Google Chrome, or Microsoft Edge.
  3. The file contains correct language tags for French and English.
  4. Start reading the document using Natural Voice SAPI Adapter.

Observed behavior:
Only two specific voices are used during switching: one fixed French voice, and one fixed English voice. These voices are always the same, regardless of how many other voices for those languages are installed, and they are often lower-quality voices.

Problem 2: Slow and Laggy Language Switching.

Even when using offline voices (not online/cloud-based voices), language switching through SAPI Adapter is noticeably slow and laggy.
This delay is especially apparent when compared to eSpeak, Eloquence, and Vocalizer. In those engines, language switching is significantly faster and smoother.

Questions / Feature Requests:

  1. Is it possible for SAPI Adapter to allow users to assign a specific voice per language for automatic language switching?
  2. Is there any way to improve the speed and responsiveness of language switching in SAPI Adapter, even for offline voices?

cbf-02-guide.htm

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions