[Nvda-dev] SAPI 4 Serotek driver problem

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[Nvda-dev] SAPI 4 Serotek driver problem

Lubos Pintes-2
Hello,
When pressing Ctrl+Shift together, the following error is generated:
ERROR - queueHandler.flushQueue:
Error in func pauseSpeech from eventQueue
Traceback (most recent call last):
   File "C:\svn\nvda\trunk\source\queueHandler.py", line 52, in flushQueue
     func(*args,**vars)
   File "C:\svn\nvda\trunk\source\speech.py", line 153, in pauseSpeech
     getSynth().pause(switch)
   File ".\synthDrivers\sapi4serotek.py", line 117, in pause
     self.tts._tts.AudioPause()
COMError: (-2147220222, None, (None, None, None, 0, None))


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

James Teh-2
Lubos Pintes wrote:
> When pressing Ctrl+Shift together, the following error is generated:
> ERROR - queueHandler.flushQueue:
> Error in func pauseSpeech from eventQueue
> Traceback (most recent call last):
...
>     File ".\synthDrivers\sapi4serotek.py", line 117, in pause
>       self.tts._tts.AudioPause()
> COMError: (-2147220222, None, (None, None, None, 0, None))
Does this work correctly with sapi4activeVoice? Do you experience it
with all SAPI4 synths on your system? Does it happen if you just press
control and then press shift after?

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

Peter Vágner
Hello,

James Teh  wrote:
> Does it happen if you just press
> control and then press shift after?
>

I can press Control to pause and after a while shift to resume. I have
noticed this as well but you know on my system sapi4 works quite strange
(e.g. active voice does not work at all). So I haven't tryed to report it.


Peter


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

Lubos Pintes-2
Hi Jamie,
SAPI 4 ActiveVoice is atleast on my system unusable. I am not able to
set voice, only the default voice speaks. And it is impossible to set
pitch, rate etc. There is also problem with queueing I think because it
doesn't speak all messages, I don't understand this mechanism but with
ActiveVoice some messages was not read. However errors that I mentioned
appears.
Answers to your questions:
Does this work correctly with sapi4activeVoice?
No as I said above, ActiveVoice doesn't work at all.

Do you experience it with all SAPI4 synths on your system?
I experience it with MOST synthesizers.

Does it happen if you just press control and then press shift after?
No. Control pauses, shift continues.

Only for your information I discovered this problem because I wanted to
open Miranda window with shortcut Ctrl+Shift+A.


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

James Teh-2
Lubos Pintes wrote:
> SAPI 4 ActiveVoice is atleast on my system unusable. I am not able to
> set voice, only the default voice speaks. And it is impossible to set
> pitch, rate etc.
Interesting. Peter has this problem with sapi4activeVoice as well.

The problem with SAPI4 is that as I understand it, each synthesiser
implements the API itself. In other words, if a synthesiser implements
the API incorrectly, it can cause problems for clients. SAPI 5 imposes a
layer in between to avoid some of these problems and make life easier
for programmers on both sides.

Anyway, I could not reproduce the issue on my system. As a matter of
interest, if you wait for speech to finish and then hit control then hit
shift, does it throw the error? What about hitting ctrl+shift after
speech has finished? NVDA doesn't treat ctrl+shift specially, so it must
be just the speed between the two presses. What if you hold down control
for a second and then press shift? Does this make a difference?

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

Lubos Pintes-2
Hi Jamie,
I have the WinTalker voice, the czech and slovak synthesizer installed.
Peter probably has it as well.
To your questions:
If you wait for speech to finish and then hit control then hit shift,
does it throw the error?
No, it doesn't.

What about hitting ctrl+shift after speech has finished? NVDA doesn't
treat ctrl+shift specially, so it must be just the speed between the two
presses.
What if you hold down control for a second and then press shift? Does
this make a difference?
Also no. However If I begin to press ctrl and shift both at once several
times quickly I hear error sound instantly. (NVDA is silent of course)
Error is generated every third or fourth press.
Interesting, or better said terrible :-).



Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] SAPI 4 Serotek driver problem

Peter Vágner
Hello,

Lubos Pintes  wrote:
> I have the WinTalker voice, the czech and slovak synthesizer installed.
> Peter probably has it as well.
Yep I have got it too. In fact I also have all the free microsoft voices
namely microsoft sam, mary and mike. When activating Sapi4 active voice
the first voice from the Wintalker voice package kicks in and I can't do
nothing as explained earlier.

Peter


Reply | Threaded
Open this post in threaded view
|

[Nvda-dev] Please last help!

Gianluca Casalino
Hi,

I solved all problems and the driver work fine.
The last thing I have to implement is indexing, but Iam in trouble with
c types.
Here what I have to do and what I did>


a structure
ttscallback
int CallMode
int BookIndex
Pointer Callbackproc

then I have to define a c function of callback
void (int Handle, int CallMode, int index, Int sample)

I defined this class and this callbacktype:


class TtsCallBack(Structure):
_fields_=[
('CallMode', c_int),
('BookIndex', c_int),
('CallbackProc', callbackType)]
callbackType = CFUNCTYPE(None, c_int, c_int, c_int, c_int)

(I am not sure if I have to define the first none or c_int or c_void_p? )

Call=TtsCallBack()

this is the python method:


@callbackType
def CallBackproc(Handle, callmode, index, sample):
global LastIndex
LastIndex=index


and I assign the function in this way:

Tts3SetCallBack(Handle byref(call))


I get a lot of types and memory errors.
What is wrong?
I promise this is the last my message if I can solve this problem too!!
:-))!!
regards

Gianluca


Reply | Threaded
Open this post in threaded view
|

Re: [Nvda-dev] Please last help!

James Teh-2
Gianluca Casalino wrote:
> I defined this class and this callbacktype:
> class TtsCallBack(Structure):
> _fields_=[
> ('CallMode', c_int),
> ('BookIndex', c_int),
> ('CallbackProc', callbackType)]
> callbackType = CFUNCTYPE(None, c_int, c_int, c_int, c_int)
I'm not sure whether this is actually what you have in your code, but I
notice here that you are defining callbackType *after* your struct. This
means Python won't know what callbackType is when you reference it in
your struct. You should define callbackType before you define the struct.

> (I am not sure if I have to define the first none or c_int or c_void_p? )
None is correct, as the return type is void.

> Tts3SetCallBack(Handle byref(call))
I assume this is a typo? Should there be a comma between Handle and byref?

> I get a lot of types and memory errors.
Please include the errors if you are having any more problems. It makes
it much easier to debug.

Jamie

--
James Teh
Email: [hidden email]
WWW: http://www.jantrid.net/
MSN Messenger: [hidden email]
Jabber: [hidden email]
Yahoo: jcs_teh