Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Driver for an Italian commercial Synthesizer named Audiologic Tts3 #105

Closed
nvaccessAuto opened this issue Jan 1, 2010 · 8 comments
Closed

Comments

@nvaccessAuto
Copy link

Reported by GianBrix on 2008-06-10 16:59
Here is the first version''''' of the driver writen to let Audiologic Tts3 work with NVDA. This is an Italian commercial product. Inflection, Speed, Pitch, Volume and indexing are implemented. The only disadvantage is that inflection is stored by steps of one and this does not permit the whole representation of percentages values.

@nvaccessAuto
Copy link
Author

Attachment DriverAudiologic.zip added by GianBrix on 2008-06-14 11:50
Description:

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2008-06-11 22:49
Comments:

  • There is no need to include the .pyc files in the archive.
  • In _audiologic.TtsGetProsody(), you assign the parameters to a global. Why? Since this must be called every time to refresh the parameters anyway, it would be better to return the parameters. This does mean you have to instantiate parameters each time, but this isn't a big issue. The same applies to TtsGetStatus().
  • In some methods of audiologic.py, spaces have been used instead of tabs for indentation. See, for example, !SynthDriver.initialize(). For NVDA code, tabs are preferred.
  • Remove the comments above the !SynthDriver methods; e.g. speakText(). These comments are only needed in the base synth. In fact, these should actually be docstrings; we need to fix that. :)
  • I notice you've created an inflection variable, but used upper case i to differentiate it. This is probably best avoided. That should be a private variable, so call it self._inflection. However, this may be a moot point anyway; see below.
  • I'm going to introduce a resolution or step for numeric synth settings, which will fix your inflection issue. After that, you won't need that variable.

@nvaccessAuto
Copy link
Author

Comment 2 by jteh on 2008-06-13 09:27

  • r2125 moves the !SynthDriver base class to synthDriverHandler.!SynthDriver. You should now sub-class this instead of silence.!SynthDriver.
  • r2128 introduces minimum step values for numeric settings. You can now set inflectionMinStep = 10. This means you should no longer need your private Inflection variable.
  • All other comments still apply.

@nvaccessAuto
Copy link
Author

Comment 3 by GianBrix (in reply to comment 1) on 2008-06-14 11:57
Replying to jteh:

Comments:

  • There is no need to include the .pyc files in the archive.

ok...sorry!

  • In _audiologic.TtsGetProsody(), you assign the parameters to a global. Why? Since this must be called every time to refresh the parameters anyway, it would be better to return the parameters. This does mean you have to instantiate parameters each time, but this isn't a big issue. The same applies to TtsGetStatus().

changed now.

  • In some methods of audiologic.py, spaces have been used instead of tabs for indentation. See, for example, !SynthDriver.initialize(). For NVDA code, tabs are

preferred.
modified: removed spaces and replaced with tabs

  • Remove the comments above the !SynthDriver methods; e.g. speakText(). These comments are only needed in the base synth. In fact, these should actually be docstrings; we need to fix that. :)

Done.

  • I notice you've created an inflection variable, but used upper case i to differentiate it. This is probably best avoided. That should be a private variable, so call it self._inflection. However, this may be a moot point anyway; see below.
  • I'm going to introduce a resolution or step for numeric synth settings, which will fix your inflection issue. After that, you won't need that variable.

Removed self.Inflection and added the new inflectionMinStep together with pitchMinstep and volumeMinStep.

@nvaccessAuto
Copy link
Author

Comment 4 by jteh on 2008-06-22 08:14
What is the status of this? You haven't attached the new driver yet.

@nvaccessAuto
Copy link
Author

Comment 5 by GianBrix (in reply to comment 4) on 2008-06-22 10:28
Replying to jteh:

What is the status of this? You haven't attached the new driver yet.

sorry... probably it was not the correct way, but I had replaced the existing one. So the zip file attached is the correct one.

@nvaccessAuto
Copy link
Author

Comment 6 by jteh (in reply to comment 5) on 2008-06-22 10:41
Replying to GianBrix:

sorry... probably it was not the correct way, but I had replaced the existing one. So the zip file attached is the correct one.

It was most definitely the correct way. My apologies; I forgot that Trac doesn't send out emails for attachment changes and somehow missed it when I was scanning the comments.

@nvaccessAuto
Copy link
Author

Comment 7 by jteh on 2008-07-01 04:24
Committed in r2175. Some final notes:

  • I fixed a few indenting errors, removed the hasIndexing variable (which isn't used anywhere) and removed the wait parameter to the speak functions, which has been removed (see Remove the ability to block until speech is complete (wait=True) #117).
  • I changed a use of "<>" to "!=", as "<>" is deprecated and will be removed in Python 3.
  • In audiologic.!SynthDriver.speakText, you were using "".join to join two strings. I simplified this to just use percent formatting to include the second string. You could also concatenate the two strings with the plus operator; e.g. "blah"+text.
    Changes:
    State: closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants