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

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

Projects

None yet

2 participants

@nvaccessAuto

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

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

@nvaccessAuto

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

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

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

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

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

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

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 #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
@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2009.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment