Skip to content

Update eSpeak to 1.52-dev commit dc153592#13849

Merged
seanbudd merged 12 commits into
masterfrom
updateEspeak
Jul 3, 2022
Merged

Update eSpeak to 1.52-dev commit dc153592#13849
seanbudd merged 12 commits into
masterfrom
updateEspeak

Conversation

@seanbudd

@seanbudd seanbudd commented Jun 28, 2022

Copy link
Copy Markdown
Member

Link to issue number:

Closes #13295

Summary of the issue:

eSpeak is updated using the steps outlined in espeak.md.

Build issues fixed:

  1. When a language dictionary fails to compile, an errno is raised. our IntEnum implementation of espeak_ng_STATUS doesn't correctly capture errno. Usage of IntFlag is required.
  2. The dictionary compilation action did not specify the name of the language.
    This used to be handled by eSpeak implicitly through getting a mapping using the rules path.
    This is no longer the case for some languages.
  3. eSpeak added CLEANFILES for certain language dictionary components. This can be mirrored by env.Clean or os.remove.
  4. A PR to eSpeak was created to fix building Malay (ms) Map phoneme table ms rules to id rules espeak-ng/espeak-ng#1225.

Description of user facing changes

Added languages:

  • Belarusian
  • Luxembourgish
  • Totontepec Mixe

Description of development approach

New languages were added to the compile dictionary.

An annotated diff of Makefile.am can be checked to confirm the changes are implemented correctly into the build system: makefile.diff. ctrl+f "_CHANGES" to find annotations.

Testing strategy:

Fix 1 - Manual testing

Tested capturing errno (where errno = 2) when running scons source.
This required a dictionary that would fail to compile (when reproducing Issue 2).
These are logged as follows:

Failed to compile dictionary: 'include\espeak\espeak-ng-data\ms_dict'
 rulesPath: b'C:\\Users\\sean\\projects\\nvda\\include\\espeak\\dictsource/'
 language: 'ms'
 result: espeak_ng_STATUS.2

General manual testing for Fix 2 and 3

Run scons source, check output.

Read text running from source

  • using newly added eSpeak languages.
  • using eSpeak Spanish, English, French (smoke test).

Fix 4

Tested reading Malay text with Malay language using 2022.1 to compare.
Build log shows build with "ms" as expcted.

this pr: https://ci.appveyor.com/project/NVAccess/nvda/builds/44017834?fullLog=true

espeak_compileDict_buildAction(["include\espeak\espeak-ng-data\ms_dict"], ["include\espeak\dictsource\ms_list", "include\espeak\dictsource\ms_rules"])
Error: The requested functionality has not been built into espeak-ng.
Using phonemetable: 'ms'
Compiling: 'C:\projects\nvda\include\espeak\dictsource/ms_list'
	703 entries
Compiling: 'C:\projects\nvda\include\espeak\dictsource/ms_rules'
	125 rules, 27 groups (0)
Install file: "include\espeak\espeak-ng-data\ms_dict" as "source\synthDrivers\espeak-ng-data\ms_dict"

Alpha: https://ci.appveyor.com/project/NVAccess/nvda/builds/44005620?fullLog=true

espeak_compileDict_buildAction(["include\espeak\espeak-ng-data\ms_dict"], ["include\espeak\dictsource\ms_list", "include\espeak\dictsource\ms_rules"])
Error: The requested functionality has not been built into espeak-ng.
Can't read dictionary file: 'C:\projects\nvda\include\espeak/espeak-ng-data\ms_dict'
Using phonemetable: 'id'
Compiling: 'C:\projects\nvda\include\espeak\dictsource/ms_list'
	703 entries
Compiling: 'C:\projects\nvda\include\espeak\dictsource/ms_rules'
	125 rules, 27 groups (0)
Install file: "include\espeak\espeak-ng-data\ms_dict" as "source\synthDrivers\espeak-ng-data\ms_dict"

Known issues with pull request:

None

Change log entries:

Refer to PR diff

Code Review Checklist:

  • Pull Request description:
    • description is up to date
    • change log entries
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • API is compatible with existing add-ons.
  • Documentation:
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English

@seanbudd seanbudd added blocked/needs-external-fix merge-early Merge Early in a developer cycle labels Jun 28, 2022
@codeofdusk

Copy link
Copy Markdown
Contributor

espeak-ng/espeak-ng#1225 has been merged, so this PR is no longer blocked.

Totontepec Mixe

I added Mixe to eSpeak as part of a university project, partly because Mixe text is very difficult to work with under English eSpeak. Very happy to see that this work will be landing downstream soon!

@seanbudd seanbudd marked this pull request as ready for review June 29, 2022 00:43
@seanbudd seanbudd requested a review from a team as a code owner June 29, 2022 00:43
@seanbudd seanbudd requested a review from feerrenrut June 29, 2022 00:43
@seanbudd seanbudd changed the title Update eSpeak to 1.52-dev commit 0b44ab73c7 Update eSpeak to 1.52-dev commit dc153592 Jun 29, 2022
Comment thread nvdaHelper/espeak/sconscript
@seanbudd seanbudd marked this pull request as draft June 29, 2022 06:24
instead of when loading the scons script
@seanbudd seanbudd marked this pull request as ready for review June 29, 2022 07:15
Comment thread nvdaHelper/espeak/sconscript
@AppVeyorBot

This comment was marked as off-topic.

@feerrenrut

Copy link
Copy Markdown
Contributor

Similar tests failed on #13851 at about the same time. Running the build again.

@AppVeyorBot

This comment was marked as off-topic.

@AppVeyorBot

This comment was marked as off-topic.

@AppVeyorBot

This comment was marked as off-topic.

@codeofdusk

This comment was marked as resolved.

empty makefile diff
@seanbudd seanbudd merged commit ba74374 into master Jul 3, 2022
@seanbudd seanbudd deleted the updateEspeak branch July 3, 2022 23:58
@nvaccessAuto nvaccessAuto added this to the 2022.3 milestone Jul 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-early Merge Early in a developer cycle

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update eSpeak NG used with NVDA

5 participants