Skip to content

Commit d5836fd

Browse files
authored
Merge pull request #68 from akj/format
2 parents 93397ad + fed27b1 commit d5836fd

17 files changed

Lines changed: 7894 additions & 7871 deletions

.editorconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = true
6+
7+
[*.py]
8+
charset = utf-8
9+
indent_style = tab
10+
tab_width = 4
11+
trim_trailing_whitespace = true
12+
max_line_length = 110

.gitattributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Normalize line endings to LF on commit, keep LF on checkout
2+
* text=auto eol=lf
3+
4+
# Binary files that should never be normalized
5+
*.exe binary
6+
*.dll binary
7+
*.pyd binary
8+
*.syn binary
9+
*.nvda-addon binary

.gitignore

Lines changed: 93 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,93 @@
1-
# NVDA addon build output
2-
*.nvda-addon
3-
.sconsign.dblite
4-
addon/manifest.ini
5-
6-
# Proprietary IBM Eloquence files (not distributable via source control)
7-
addon/synthDrivers/eloquence/ECI.DLL
8-
addon/synthDrivers/eloquence/DEU.SYN
9-
addon/synthDrivers/eloquence/ENG.SYN
10-
addon/synthDrivers/eloquence/ENU.SYN
11-
addon/synthDrivers/eloquence/ESM.SYN
12-
addon/synthDrivers/eloquence/ESP.SYN
13-
addon/synthDrivers/eloquence/FIN.SYN
14-
addon/synthDrivers/eloquence/FRA.SYN
15-
addon/synthDrivers/eloquence/FRC.SYN
16-
addon/synthDrivers/eloquence/ITA.SYN
17-
addon/synthDrivers/eloquence/PTB.SYN
18-
19-
# Compiled host executable (built from host_eloquence32.py via PyInstaller)
20-
addon/synthDrivers/eloquence_host32.exe
21-
22-
# 64-bit multiprocessing pyd (copied from _multiprocessing64.pyd at build time)
23-
addon/synthDrivers/eloquence/_multiprocessing.pyd
24-
25-
# Legacy build artifacts
26-
eloquence_original.nvda-addon
27-
28-
# Byte-compiled / optimized / DLL files
29-
__pycache__/
30-
*.py[cod]
31-
*$py.class
32-
33-
# C extensions
34-
*.so
35-
36-
# Distribution / packaging
37-
.Python
38-
build/
39-
develop-eggs/
40-
dist/
41-
downloads/
42-
eggs/
43-
.eggs/
44-
lib/
45-
lib64/
46-
parts/
47-
sdist/
48-
var/
49-
wheels/
50-
*.egg-info/
51-
.installed.cfg
52-
*.egg
53-
MANIFEST
54-
55-
# PyInstaller
56-
*.manifest
57-
*.spec
58-
59-
# Installer logs
60-
pip-log.txt
61-
pip-delete-this-directory.txt
62-
63-
# Unit test / coverage reports
64-
htmlcov/
65-
.tox/
66-
.coverage
67-
.coverage.*
68-
.cache
69-
nosetests.xml
70-
coverage.xml
71-
*.cover
72-
.hypothesis/
73-
.pytest_cache/
74-
75-
# Translations
76-
*.mo
77-
*.pot
78-
79-
# Logs
80-
*.log
81-
82-
# Environments
83-
.env
84-
.venv
85-
env/
86-
venv/
87-
ENV/
88-
env.bak/
89-
venv.bak/
90-
91-
# IDE / editor settings
92-
.ropeproject
93-
.mypy_cache/
1+
# NVDA addon build output
2+
*.nvda-addon
3+
.sconsign.dblite
4+
addon/manifest.ini
5+
6+
# Proprietary IBM Eloquence files (not distributable via source control)
7+
addon/synthDrivers/eloquence/ECI.DLL
8+
addon/synthDrivers/eloquence/DEU.SYN
9+
addon/synthDrivers/eloquence/ENG.SYN
10+
addon/synthDrivers/eloquence/ENU.SYN
11+
addon/synthDrivers/eloquence/ESM.SYN
12+
addon/synthDrivers/eloquence/ESP.SYN
13+
addon/synthDrivers/eloquence/FIN.SYN
14+
addon/synthDrivers/eloquence/FRA.SYN
15+
addon/synthDrivers/eloquence/FRC.SYN
16+
addon/synthDrivers/eloquence/ITA.SYN
17+
addon/synthDrivers/eloquence/PTB.SYN
18+
19+
# Compiled host executable (built from host_eloquence32.py via PyInstaller)
20+
addon/synthDrivers/eloquence_host32.exe
21+
22+
# 64-bit multiprocessing pyd (copied from _multiprocessing64.pyd at build time)
23+
addon/synthDrivers/eloquence/_multiprocessing.pyd
24+
25+
# Legacy build artifacts
26+
eloquence_original.nvda-addon
27+
28+
# Byte-compiled / optimized / DLL files
29+
__pycache__/
30+
*.py[cod]
31+
*$py.class
32+
33+
# C extensions
34+
*.so
35+
36+
# Distribution / packaging
37+
.Python
38+
build/
39+
develop-eggs/
40+
dist/
41+
downloads/
42+
eggs/
43+
.eggs/
44+
lib/
45+
lib64/
46+
parts/
47+
sdist/
48+
var/
49+
wheels/
50+
*.egg-info/
51+
.installed.cfg
52+
*.egg
53+
MANIFEST
54+
55+
# PyInstaller
56+
*.manifest
57+
*.spec
58+
59+
# Installer logs
60+
pip-log.txt
61+
pip-delete-this-directory.txt
62+
63+
# Unit test / coverage reports
64+
htmlcov/
65+
.tox/
66+
.coverage
67+
.coverage.*
68+
.cache
69+
nosetests.xml
70+
coverage.xml
71+
*.cover
72+
.hypothesis/
73+
.pytest_cache/
74+
75+
# Translations
76+
*.mo
77+
*.pot
78+
79+
# Logs
80+
*.log
81+
82+
# Environments
83+
.env
84+
.venv
85+
env/
86+
venv/
87+
ENV/
88+
env.bak/
89+
venv.bak/
90+
91+
# IDE / editor settings
92+
.ropeproject
93+
.mypy_cache/

.vscode/extensions.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"recommendations": [
3+
"ms-python.python",
4+
"ms-python.vscode-pylance",
5+
"charliermarsh.ruff",
6+
"editorconfig.editorconfig"
7+
]
8+
}

.vscode/settings.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"editor.accessibilitySupport": "on",
3+
"ruff.enable": true,
4+
"python.analysis.extraPaths": [
5+
"../nvda/source"
6+
],
7+
"python.autoComplete.extraPaths": [
8+
"../nvda/source"
9+
],
10+
"files.insertFinalNewline": true,
11+
"files.trimFinalNewlines": true,
12+
"files.eol": "\n",
13+
"editor.insertSpaces": false,
14+
"[python]": {
15+
"editor.defaultFormatter": "charliermarsh.ruff"
16+
}
17+
}

README.md

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,59 @@
1-
# eloquence_threshold
2-
Eloquence synthesizer NVDA add-on compatible with 64-bit NVDA. Supports Python 3 and new NVDA speech framework.
3-
4-
## 64-bit support
5-
6-
As NVDA migrates to a 64-bit runtime, the Eloquence synthesizer DLL must be
7-
loaded from a 32-bit process. This add-on now launches a dedicated helper
8-
process that hosts the original 32-bit DLL and streams synthesized audio back
9-
to NVDA using a lightweight RPC channel. The integration is transparent to the
10-
user—no additional Python installation or manual steps are required.
11-
12-
For development scenarios where the prebuilt helper executable is unavailable
13-
the `ELOQUENCE_HOST_COMMAND` environment variable can be set to the command that
14-
launches a compatible 32-bit Python interpreter with `host_eloquence32.py`.
15-
16-
## Getting Eloquence to Work on Secure, Log-on, and Start-up Screens
17-
18-
With NVDA 64-bit, you may notice that Eloquence is not available when NVDA enters log-on, start-up, or other secure screens.
19-
20-
When NVDA copies add-ons for use on secure screens, it does **not** copy any `*.exe` files for security reasons. For Eloquence, the specific file that is **not** copied when selecting **"Use currently saved settings during sign-in and on secure screens"** from the General pane of NVDA's Settings dialog is:
21-
22-
```
23-
eloquence_host32.exe
24-
```
25-
26-
By default, this file is located at:
27-
28-
```
29-
C:\Users\YourUsername\AppData\Roaming\nvda\addons\Eloquence\synthDrivers\
30-
```
31-
32-
To enable Eloquence on start-up, secure, and log-on screens in NVDA 64-bit, manually copy the file `eloquence_host32.exe` to:
33-
34-
```
35-
C:\Program Files\NVDA\systemConfig\addons\Eloquence\synthDrivers\
36-
```
37-
38-
If you have an admin-level user account, the correct source path may instead be:
39-
40-
```
41-
C:\Users\admin_your-username\AppData\Roaming\nvda\addons\Eloquence\synthDrivers\
42-
```
43-
44-
After copying the file, Eloquence should load normally on secure and log-on screens.
45-
46-
## Building
47-
48-
• have the Python Install Manager installed and working from: https://www.python.org/ftp/python/pymanager/python-manager-25.0.msix
49-
50-
• Install Python 3.13-32 using py install 3.13-32
51-
52-
• Install pyinstaller using py -3.13-32 -m pip install pyinstaller
53-
54-
• run git submodule init
55-
56-
• run build.cmd
57-
58-
• You should then have a fully built NVDA addon
59-
1+
# eloquence_threshold
2+
Eloquence synthesizer NVDA add-on compatible with 64-bit NVDA. Supports Python 3 and new NVDA speech framework.
3+
4+
## 64-bit support
5+
6+
As NVDA migrates to a 64-bit runtime, the Eloquence synthesizer DLL must be
7+
loaded from a 32-bit process. This add-on now launches a dedicated helper
8+
process that hosts the original 32-bit DLL and streams synthesized audio back
9+
to NVDA using a lightweight RPC channel. The integration is transparent to the
10+
user—no additional Python installation or manual steps are required.
11+
12+
For development scenarios where the prebuilt helper executable is unavailable
13+
the `ELOQUENCE_HOST_COMMAND` environment variable can be set to the command that
14+
launches a compatible 32-bit Python interpreter with `host_eloquence32.py`.
15+
16+
## Getting Eloquence to Work on Secure, Log-on, and Start-up Screens
17+
18+
With NVDA 64-bit, you may notice that Eloquence is not available when NVDA enters log-on, start-up, or other secure screens.
19+
20+
When NVDA copies add-ons for use on secure screens, it does **not** copy any `*.exe` files for security reasons. For Eloquence, the specific file that is **not** copied when selecting **"Use currently saved settings during sign-in and on secure screens"** from the General pane of NVDA's Settings dialog is:
21+
22+
```
23+
eloquence_host32.exe
24+
```
25+
26+
By default, this file is located at:
27+
28+
```
29+
C:\Users\YourUsername\AppData\Roaming\nvda\addons\Eloquence\synthDrivers\
30+
```
31+
32+
To enable Eloquence on start-up, secure, and log-on screens in NVDA 64-bit, manually copy the file `eloquence_host32.exe` to:
33+
34+
```
35+
C:\Program Files\NVDA\systemConfig\addons\Eloquence\synthDrivers\
36+
```
37+
38+
If you have an admin-level user account, the correct source path may instead be:
39+
40+
```
41+
C:\Users\admin_your-username\AppData\Roaming\nvda\addons\Eloquence\synthDrivers\
42+
```
43+
44+
After copying the file, Eloquence should load normally on secure and log-on screens.
45+
46+
## Building
47+
48+
• have the Python Install Manager installed and working from: https://www.python.org/ftp/python/pymanager/python-manager-25.0.msix
49+
50+
• Install Python 3.13-32 using py install 3.13-32
51+
52+
• Install pyinstaller using py -3.13-32 -m pip install pyinstaller
53+
54+
• run git submodule init
55+
56+
• run build.cmd
57+
58+
• You should then have a fully built NVDA addon
59+

0 commit comments

Comments
 (0)