[jawsscripts] Re: Speaking a text with a specified voice?

  • From: "Octavian Rasnita" <orasnita@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Tue, 12 Feb 2013 10:06:54 +0200

Thanks Stefan, but it doesn't work because I can change the active synthesizer 
using scripting functions, however the problem is that I don't know the moment 
in which to do that change.

I want to do something similar to what Jaws is doing when it switches the 
language when it encounters a text in another language, if the "detect 
language" feature is active.
But I want not only to change the current language of the current loaded 
synthesizer, but to also load a new synthesizer on the fly, then when it needs 
to speak in another language, stop the currently running synthesizer in that 
moment and load another synthesizer.

For example, Maestro Translate does the translation using Google translating 
service.
When I press a hotkey to translate a text, if that translation is made from 
English to Romanian, even if in that moment the user uses English Eloquence, 
the translated text should be spoken in Romanian with the voice Ivona Carmen 
for example.
But if in the middle of speaking that romanian text the user wants to stop it, 
he should be able to press Control or another hotkey, and then if he wants to 
read the title of the window or a text from that window, or to hear the time or 
do something else, he should be able to hear English Eloquence as before.

Or if the user currently uses a SAPI4 synthesizer like WinTalker and translates 
something from Romanian to English, he should hear the English text spoken with 
English Eloquence, and after it finishes speaking that text, he should hear 
WinTalker again.

But it seems that Jaws is not that flexible for beeing able to do that... :-)

Jaws should consider somehow all the voice synthesizers as beeing a single 
synthesizer with many voices, and should be able to change easier among them.

--Octavian

----- Original Message ----- 
From: "Stefan Moisei" <vortex37@xxxxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Monday, February 11, 2013 9:32 PM
Subject: [jawsscripts] Re: Speaking a text with a specified voice?


> Depending on your requirements, you could use sapi directly from a jaws 
> script, like so:
> 
> var object o
> o=CreateObject("sapi.spvoice")
> o.Speak("test")
> You would have to manually set the voice, rate and pitch on the object.
> I think you can even get the available voices on the system and choose the 
> one you want. Search for "sapi.spvoice" to find out what you can do with 
> this object.
> -----Original Message----- 
> From: Octavian Rasnita
> Sent: Monday, February 11, 2013 6:54 PM
> To: jawsscripts@xxxxxxxxxxxxx
> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
> 
> Yes of course. I used delay(5) as I shown in my first message.
> 
> But you are right, I don't know how to find when the synthesizer finished
> speaking so I don't know how much I need to wait.
> 
> But actually the method is not very good, because if the text is 1 kilometer
> long and Jaws should speak it for a long time, in that period I am not able
> to shut it down by using the Control key or in another way, but I need to
> wait until it finishes.
> 
> --Octavian
> 
> ----- Original Message ----- 
> From: "Geoff Chapman" <gch@xxxxxxxxxxxxxxxx>
> To: <jawsscripts@xxxxxxxxxxxxx>
> Sent: Monday, February 11, 2013 4:33 PM
> Subject: [jawsscripts] Speaking a text with a specified voice?
> 
> 
>> Hmmm.
>>
>> you obviously must've also tried single/multiple pause statements between
>> the
>> Say (StrText)
>> and the resetting of the voice profile, have you?
>>
>> like:
>> SetActiveVoiceProfileByName ("Carmen2")
>> SayString(sTrText)
>> Pause ()
>> Pause () ; varying amounts of these.
>> SetActiveVoiceProfileByName ("Eloquence")
>>
>> That still doesn't really help you though probably in the need to find a
>> function that informs jaws when the synthesizer has actually done speaking
>> it's assigned text. especially if your texts are never the same lengths.
>>
>>
>>
>> ----- Original Message ----- 
>> From: "Octavian Rasnita" <orasnita@xxxxxxxxx>
>> To: <jawsscripts@xxxxxxxxxxxxx>
>> Sent: Monday, February 11, 2013 6:36 PM
>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>
>>
>>>I gave the code in my first message. Here it is again:
>>>
>>> SetActiveVoiceProfileByName ("Carmen2")
>>> SayString(sTrText)
>>> SetActiveVoiceProfileByName ("Eloquence")
>>>
>>> The first line changes the voice to a specified voice profile, then it
>>> should speak the message and then it should change the voice profile back
>>> to Eloquence.
>>> But the third line is executed immediately, and when it is executed, the
>>> previously synthesizer is stopped so it doesn't speak anything.
>>>
>>> Thanks.
>>>
>>> Octavian
>>>
>>> --Octavian
>>>
>>> ----- Original Message ----- 
>>> From: "Dang Manh Cuong" <dangmanhcuong@xxxxxxxxx>
>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>> Sent: Monday, February 11, 2013 10:22 AM
>>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>>
>>>
>>>> Hi
>>>> I don't do that for a long time, but if you could send me your code, I
>>>> think
>>>> I could help you.
>>>> Cuong.
>>>> ----- Original Message ----- 
>>>> From: "Octavian Rasnita" <orasnita@xxxxxxxxx>
>>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>>> Sent: Sunday, February 10, 2013 11:22 PM
>>>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>>>
>>>>
>>>>> Thanks, but as I said, I tried in 2 ways:
>>>>>
>>>>> 1. SetActiveVoiceProfileByName ("Carmen2")
>>>>>
>>>>> 2. I also tried using SetSynth ("eloq") but it didn't help either.
>>>>>
>>>>> The problem is that when a new voice is activated, it shuts Jaws down
>>>>> so
>>>>> the
>>>>> text spoken with the previous voice is not spoken at all.
>>>>>
>>>>> --Octavian
>>>>>
>>>>> ----- Original Message ----- 
>>>>> From: "Dang Manh Cuong" <dangmanhcuong@xxxxxxxxx>
>>>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>>>> Sent: Sunday, February 10, 2013 3:37 PM
>>>>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>>>>
>>>>>
>>>>>> Hi
>>>>>> Use SetSynth to swich to the synthesizer of choice, and use
>>>>>> SetVoicePerson
>>>>>> to set name.
>>>>>> HTH
>>>>>> Cuong
>>>>>> ----- Original Message ----- 
>>>>>> From: "Octavian Rasnita" <orasnita@xxxxxxxxx>
>>>>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>>>>> Sent: Sunday, February 10, 2013 3:07 PM
>>>>>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>>>>>
>>>>>>
>>>>>>> Thanks Stefan and Doug. Unfortunately it seems that there is no way
>>>>>>> to
>>>>>>> instruct JAWS to speach a piece of text with a specified synthesizer,
>>>>>>> although I was sure that this should be a simple thing.
>>>>>>>
>>>>>>> --Octavian
>>>>>>>
>>>>>>> ----- Original Message ----- 
>>>>>>> From: "Doug Lee" <doug.lee@xxxxxxxxxxxxxxxx>
>>>>>>> To: <jawsscripts@xxxxxxxxxxxxx>
>>>>>>> Sent: Sunday, February 10, 2013 12:45 AM
>>>>>>> Subject: [jawsscripts] Re: Speaking a text with a specified voice?
>>>>>>>
>>>>>>>
>>>>>>>> SpeechInUse() actually tells you only whether or not speech, as
>>>>>>>> opposed to Braille output, is being used by the JAWS user. It does
>>>>>>>> not
>>>>>>>> tell you when something is actually being said.
>>>>>>>>
>>>>>>>> On Sat, Feb 09, 2013 at 08:05:57PM +0200, Stefan Moisei wrote:
>>>>>>>> Hi,
>>>>>>>> The function SpeechInUse() should tell you if jaws is speaking or
>>>>>>>> not.
>>>>>>>>
>>>>>>>> -----Original Message----- 
>>>>>>>> From: Octavian Rasnita
>>>>>>>> Sent: Saturday, February 09, 2013 5:29 PM
>>>>>>>> To: jawsscripts@xxxxxxxxxxxxx
>>>>>>>> Subject: [jawsscripts] Speaking a text with a specified voice?
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Is it possible to create a JAWS script that speaks a text with a
>>>>>>>> specified
>>>>>>>> installed voice, then after it finishes, switch back to the default
>>>>>>>> voice?
>>>>>>>>
>>>>>>>> I tried:
>>>>>>>>
>>>>>>>> SetActiveVoiceProfileByName ("Carmen2")
>>>>>>>> SayString(sTrText)
>>>>>>>> SetActiveVoiceProfileByName ("Eloquence")
>>>>>>>>
>>>>>>>> But nothing is spoken. When the function
>>>>>>>> SetActiveVoiceProfileByName()
>>>>>>>> is
>>>>>>>> called the second time, it stops immediately the speech.
>>>>>>>>
>>>>>>>> I have found this by doing:
>>>>>>>>
>>>>>>>> SetActiveVoiceProfileByName ("Carmen2")
>>>>>>>> SayString(sTrText)
>>>>>>>> Delay (50, TRUE )
>>>>>>>> SetActiveVoiceProfileByName ("Eloquence")
>>>>>>>>
>>>>>>>> This time the text was spoken as wanted, but I wasn't able to use
>>>>>>>> the
>>>>>>>> computer for a few seconds after that, because of the Delay()
>>>>>>>> function.
>>>>>>>>
>>>>>>>> I guess that it is not possible to calculate how much time it would
>>>>>>>> take
>>>>>>>> to
>>>>>>>> speak a certain text with a specified voice, but isn't possible to
>>>>>>>> detect
>>>>>>>> somehow when JAWS finished speaking, in order to be able to switch
>>>>>>>> the
>>>>>>>> voice
>>>>>>>> in that moment?
>>>>>>>>
>>>>>>>> I also tried using SetSynth ("eloq") but it didn't help either.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --Octavian
>>>>>>>>
>>>>>>>> __________???
>>>>>>>>
>>>>>>>> View the list's information and change your settings at
>>>>>>>> //www.freelists.org/list/jawsscripts
>>>>>>>>
>>>>>>>> __________???
>>>>>>>>
>>>>>>>> View the list's information and change your settings at
>>>>>>>> //www.freelists.org/list/jawsscripts
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> Doug Lee, Senior Accessibility Programmer
>>>>>>>> SSB BART Group - Accessibility-on-Demand
>>>>>>>> mailto:doug.lee@xxxxxxxxxxxxxxxx  http://www.ssbbartgroup.com
>>>>>>>> "While they were saying among themselves it cannot be done,
>>>>>>>> it was done." --Helen Keller
>>>>>>>> __________�
>>>>>>>>
>>>>>>>> View the list's information and change your settings at
>>>>>>>> //www.freelists.org/list/jawsscripts
>>>>>>>>
>>>>>>>
>>>>>>> __________�
>>>>>>>
>>>>>>> View the list's information and change your settings at
>>>>>>> //www.freelists.org/list/jawsscripts
>>>>>>>
>>>>>> ________________ Dang Manh Cuong HCMC University of Pedagogy: The
>>>>>> Educational Psychology Mobile: +84 902-572-300 E-mail:
>>>>>> dangmanhcuong@xxxxxxxxx Yahoo! ID: manhcuong0312 Skype name:
>>>>>> dangmanhcuong
>>>>>> facebook:
>>>>>>
>>>>>> __________�
>>>>>>
>>>>>> View the list's information and change your settings at
>>>>>> //www.freelists.org/list/jawsscripts
>>>>>>
>>>>>
>>>>> __________�
>>>>>
>>>>> View the list's information and change your settings at
>>>>> //www.freelists.org/list/jawsscripts
>>>>>
>>>> ________________ Dang Manh Cuong HCMC University of Pedagogy: The
>>>> Educational Psychology Mobile: +84 902-572-300 E-mail:
>>>> dangmanhcuong@xxxxxxxxx Yahoo! ID: manhcuong0312 Skype name:
>>>> dangmanhcuong
>>>> facebook:
>>>>
>>>> __________�
>>>>
>>>> View the list's information and change your settings at
>>>> //www.freelists.org/list/jawsscripts
>>>>
>>> __________�
>>>
>>> View the list's information and change your settings at
>>> //www.freelists.org/list/jawsscripts
>>>
>>>
>>
>> __________�
>>
>> View the list's information and change your settings at
>> //www.freelists.org/list/jawsscripts
>>
> 
> __________�
> 
> View the list's information and change your settings at
> //www.freelists.org/list/jawsscripts
> 
> __________�
> 
> View the list's information and change your settings at 
> //www.freelists.org/list/jawsscripts
>
__________�

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts

Other related posts: