davidacm / NVDA-IBMTTS-Driver

This project is aimed at developing and maintaining the NVDA IBMTTS driver. IBMTTS is a synthesizer similar to Eloquence. Please send your ideas and contributions here!
GNU General Public License v2.0
56 stars 23 forks source link

suggestions for new features #90

Closed titet11 closed 1 year ago

titet11 commented 1 year ago

Hello. I wish they would add a function that would allow customizing the pause for each word and the parentheses. an example would be the following: "custom pause time for punctuation marks":

(pause time between each word): (pause time in brackets): (pause time for space bar): (pause time for newline):

(pause time for the semicolon): (pause time for point):

"Activate pause shortener for all punctuation marks" (pause time for all punctuation marks):

Cleversn commented 1 year ago

Perhaps this isn't related to the synth properly speaking, but to NVDA itself. JAWS for example has a feature called Sound Schemes (or the like) which provides a functionality similar to what you describe here.

Mohamed00 commented 1 year ago

Not sure about other collaborators, but from my perspective, the custom pause lengths feature request would probably be more appropriate for NVDA, not this driver. Also not sure what benefit would be gained from disabling this driver's logging. It only ever logs in very specific circumstances, and even then, I think there would be no performance benefit from adding an option to disable the limited logging it performs.

TheQuinbox commented 1 year ago

Yeah, the pauses thing is definitely an NVDA issue. Also, logging has effectively no performance impact, especially in this driver. Python's logging module is incredibly efficient.

titet11 commented 1 year ago

@Mohamed00 I am aware that the pause time is an nvda issue. However, if they decide to add these features, it would be a great help for users who read pdf books or long texts, as they could have a better learning of what is read: In addition, pauses allow the brain to have more capacity to analyze what has just been heard. NVDA certainly hasn't been interested in working on this issue, so your input will be very helpful.

titet11 commented 1 year ago

Mohamed00 Do you think there may be the possibility of adding an option that takes care of optimizing the performance of IBMTTS? I have noticed that Speak responds much faster to each key press. I know the performance difference may be negligible, but if you use talk long term, you'll find it's faster with each keystroke.

ericforchannel commented 1 year ago

I agree with titet11 because NVDA has not been interested in customizing the pause time. Also, as titet11 says, customizing the pause time will allow users to have a better reading comprehension of what they are listening to, and this should not be ruled out. Of course they should work on this.

TheQuinbox commented 1 year ago

NVDA should work on this, not the driver.

Disabling logging doesn't speed up anything. IBMTTS does not log what it speaks, or often at all. All you have to do is look in the NVDA log to see this. Did you mean something else when you said, add an option to improve performance?

titet11 commented 1 year ago

@TheQuinbox As I said before, NVDA has no interest in customizing the pause shortening. on the other hand, there is no need to comment further on log messages and that is a separate topic.

davidacm commented 1 year ago

Hi there! The feature of pauses suggested here is something that should be implemented in the core of NVDA. It's not an easy task, and although we could implement it in this driver, I would prefer to invest efforts in implementing something like this directly in NVDA. Alternatively, we could create an add-on to test this functionality for each synthesizer that supports pause commands. I suggest not mixing topics in the issues. I will close this issue as I don't think it's the most appropriate way to solve the problem.

consider the possibility of implement a separate add-on for this feature and in the future, submit a PR to NVDA. Since NVDA is open source, it's not just up to the main developers to implement solutions. External developers can also contribute. I will think about this in the future, for now I don't have the required time for it but thanks for the suggestions.