Yep, I will try John's solution and if it doesn't work I am thinking to try your third solution, although I didn't know that the Eloquence API is available on the net. (Didn't search for it though:) I was thinking that there may be somewhere that API, once Eloquence is also used in NVDA... --Octavian ----- Original Message ----- From: "Stefan Moisei" <vortex37@xxxxxxxxx> To: <jawsscripts@xxxxxxxxxxxxx> Sent: Wednesday, February 13, 2013 9:20 AM Subject: [jawsscripts] Re: Speaking a text with a specified voice? > Accessing eloquence directly from a jaws script could be done, I think, but > it is not going to be easy. I see three options: > 1. Load the eloquence dll and call the relevant functions. I think you can't > do this directly. I've found a program which is able to dynamically create a > com object and call dll functions. > 2. There is a similar program to eloquence which works via sapi 4. It is > called IBM ViaVoice. I think you can call sapi 4 from jaws scripts, too. > 3. Write a separate program which calls eloquence directly using its dll, > and then call that program from the jaws script. > The eloquence dll is eci.dll, its api is available on the internet. > As I've said, these solutions are pretty complex. > If it works, John's solution would be better, in my opinion > -----Original Message----- > From: Octavian Rasnita > Sent: Wednesday, February 13, 2013 8:10 AM > To: jawsscripts@xxxxxxxxxxxxx > Subject: [jawsscripts] Re: Speaking a text with a specified voice? > > Hmm, yep, it might be a good idea because accessing SAPI directly doesn't > actually change the active voice synthesizer used by Jaws. > > The possibility of stopping that voice is a must even if it is not done with > Jaws standard keys like Control, but there is the other problem... the fact > that if the current synthesizer is WinTalker, I will need to speak the > English text with Eloquence. > > Does anyone know if it is possible to access Eloquence directly as it is > possible to access SAPI5? > > --Octavian > > ----- Original Message ----- > From: "Stefan Moisei" <vortex37@xxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Tuesday, February 12, 2013 10:39 PM > Subject: [jawsscripts] Re: Speaking a text with a specified voice? > > >>I was thinking you could use a separate synthesizer to speak the Romanian >> messages and simply not change the jaws voice. When the Synthesizer is >> done >> talking, jaws would have the same voice as before, since it was never >> changed. >> The only problem I see with this approach is that you can't stop the >> speech >> using control. There is a method to stop sapi 5 speaking, but I don't know >> how to intercept the control key in a jaws script. KeyPressedEvent doesn't >> seem to intercept it. >> -----Original Message----- >> From: Octavian Rasnita >> Sent: Tuesday, February 12, 2013 10:06 AM >> To: jawsscripts@xxxxxxxxxxxxx >> Subject: [jawsscripts] Re: Speaking a text with a specified voice? >> >> 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 >> >> __________� >> >> 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