Conversation
…it to the 32 bit runtime (#19436) ### Link to issue number: <!-- Use Closes/Fixes/Resolves #xxx to link this PR to the issue it is responding to. --> Reverts #19290 ### Summary of the issue: with the move to 64 bit, sapi4 became unusable as it only functions in a 32 bit process. PR #19290 was merged which removes sapi4. However, pr #19432 is adding the infrastructure to run sapi4 within a 32 bit runtime. Thus the original sapi4 should be tempoararily added back so that pr #19432 can move it into its 32 bit location. ### Description of user facing changes: None. ### Description of developer facing changes: ### Description of development approach: This is a clean revert of pr #19290 (with only a conflict in changes.md which was addressed). ### Testing strategy: None - clean revert. ### Known issues with pull request: None known. ### Code Review Checklist: <!-- This checklist is a reminder of things commonly forgotten in a new PR. Authors, please do a self-review of this pull-request. Check items to confirm you have thought about the relevance of the item. Where items are missing (eg unit / system tests), please explain in the PR. To check an item `- [ ]` becomes `- [x]`, note spacing. You can also check the checkboxes after the PR is created. A detailed explanation of this checklist is available here: https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist --> - [x] Documentation: - Change log entry - User Documentation - Developer / Technical Documentation - Context sensitive help for GUI changes - [x] Testing: - Unit tests - System (end to end) tests - Manual testing - [x] UX of all users considered: - Speech - Braille - Low Vision - Different web browsers - Localization in other languages / culture than English - [x] API is compatible with existing add-ons. - [x] Security precautions taken. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Minor follow-up of #19227.
### Summary of the issue: Adding new languages to NVDA from Crowdin causes pre-commit to fail, as it commits large xliff files. Failed job: https://github.com/nvaccess/nvda/actions/runs/20842477976/job/59879416174 ### Description of user facing changes: None ### Description of developer facing changes: We can add new languages to NVDA via Crowdin ### Description of development approach: update pre-commit ### Testing strategy: Tested trying to commit a large xliff file locally ### Known issues with pull request: n/a
ran `uv lock --upgrade`
There was a problem hiding this comment.
Pull request overview
This pull request merges changes from the beta branch to the master branch. The primary focus is the restoration of SAPI 4 (Microsoft Speech API version 4) support, which was previously removed. The PR also includes package dependency updates, MathCAT UI text improvements, and minor build configuration updates.
Changes:
- Restored SAPI 4 synthesizer support with a complete implementation including WASAPI integration
- Updated several Python package dependencies (filelock, identify, nodejs-wheel-binaries, tomli, virtualenv)
- Improved MathCAT localization strings to use "Automatic" instead of "Auto" for consistency
- Added pre-commit configuration to handle XLIFF files as large files
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updated package versions for filelock, identify, nodejs-wheel-binaries, tomli, and virtualenv |
| user_docs/en/userGuide.md | Added documentation for SAPI 4 synthesizer and WASAPI configuration option |
| user_docs/en/changes.md | Removed mentions of SAPI 4 being removed (since it's being restored) |
| source/synthDrivers/sapi4.py | New complete SAPI 4 driver implementation with threading, COM support, and WASAPI integration |
| source/synthDrivers/_sapi4.py | New SAPI 4 COM interface definitions |
| source/mathPres/MathCAT/preferences.py | Changed "Auto" to "Automatic" in decimal separator option |
| source/mathPres/MathCAT/localization.py | Changed "Use Voice's Language (Auto)" to "Automatic (Use Voice's Language)" |
| source/gui/settingsDialogs.py | Added UI control for WASAPI for SAPI 4 configuration option |
| source/config/configSpec.py | Added configuration schema for useWASAPIForSAPI4 feature flag |
| projectDocs/design/synthesizers.md | New documentation for SAPI 4 testing and setup |
| .pre-commit-config.yaml | Added XLIFF file extension to large file exclusions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| try: | ||
| self._ttsEngines.Next(1, byref(mode), byref(fetched)) | ||
| except: # noqa: E722 | ||
| log.error("can't get next engine", exc_info=True) |
There was a problem hiding this comment.
The error message "can't get next engine" should be capitalized to match standard error message formatting. It should be "Can't get next engine" or preferably "Cannot get next engine".
| log.error("can't get next engine", exc_info=True) | |
| log.error("Cannot get next engine", exc_info=True) |
No description provided.