nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.1k stars 634 forks source link

Provide a stand alone synth driver for eSpeak #5

Closed nvaccessAuto closed 8 years ago

nvaccessAuto commented 14 years ago

Reported by jteh on 2007-04-25 08:18 Currently, eSpeak works extremely well with NVDA as a SAPI 5 synthesiser. However, SAPI 5 synthesisers must be registered on the system before they can be used. This means that the user must install eSpeak separately and administrative privileges are required for this installation.

A stand alone eSpeak driver should be provided with NVDA. Not only does this avoid the hastle of installation, but it allows users running NVDA off a portable external drive to use eSpeak on any Windows 2000+ computer without any installation or administrative privileges.

A method needs to be found to interface with eSpeak from NVDA. eSpeak needs to be compiled as a stand alone dll. There are two options:

nvaccessAuto commented 14 years ago

Comment 1 by jteh on 2007-05-02 14:32 A driver is nearly complete!

nvaccessAuto commented 14 years ago

Comment 2 by jteh on 2007-05-03 10:09 First committed in r612. Capital pitch change now works. All is correctly packaged with the binary as of r618. I'm still tempted to implement initial automatic detection of language when switching to the synth for the first time, though. We shouldn't use !SetVoiceByName as I proposed earlier, though, but should use !SetVoiceByProperties with a language code.

nvaccessAuto commented 14 years ago

Comment 3 by jteh on 2007-05-21 05:04 Automatic language detection on initialisation implemented by Mick in r723 (r735 in the 0.5 branch).

I can reliably cause an access violation when calling espeak_Initialize() on my system if I initialize, speak and terminate three times. I've yet to work out why this is happening. I suspect it has something to do with memory allocation, but I'd like to fix this if possible before closing this ticket.

nvaccessAuto commented 14 years ago

Comment 4 by jteh (in reply to comment 3) on 2007-05-22 03:29 Replying to jteh:

I can reliably cause an access violation when calling espeak_Initialize() on my system if I initialize, speak and terminate three times. I've yet to work out why this is happening.

Fixed in eSpeak 1.25, which is now in trunk.

Currently, there is no way to select voice variants, but I don't think this is necessary for the release of this driver and will require some discussion as to how it should be implemented. This should be handled in a separate ticket. Changes: State: closed