Re: SSIP for Windows -- beta almost ready for release

  • From: "Richard Thomas" <rthomas@xxxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Mon, 26 Nov 2007 04:39:40 -0500

Good morning  Macarty
Sounds like you have completed something pretty cool! I'll sit back watch and read to figure out exactly what it can do and how it will work as new messages hit the pipeline.
Congratulations on the success after all the hard work!
Rick Farmington Mich. USA
----- Original Message ----- From: "Brent Harding" <bharding@xxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Monday, November 26, 2007 10:14 PM
Subject: Re: SSIP for Windows -- beta almost ready for release


Wow! This seems cool! How would we get SSIP support into JFW and other PC screen readers? Would JFW allow us to install extra speech drivers that they don't normally support?

----- Original Message ----- From: "Sina Bahram" <sbahram@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Monday, November 26, 2007 8:42 PM
Subject: RE: SSIP for Windows -- beta almost ready for release


Because chant does not, nor do they have plans to support SSIP.

I talked with their CEO and owner when we had dinner together in California, last time I was on the west coast, and while he is extremely glad that Mike
Grace and I, over at NC State university are using chant like this, he is
quite content to offer us a one time license and allow all of our users, and
all of the users of our  program, to benefit from the sapi abstraction in
java and other languages that chant provides, while at the same time
allowing us to drive and be driven by the SSIP protocol. This is truely the
best of both worlds, since it also means that the SSIP components can be
free and open source.

Stay tuned for more on this stuff, once we integrate with jay, get our site
together, and do some release engineering, but the short version is, a
completely transparent, self voicing, and easy to use way of using linux
screen readers in a VNC connection on a PC, or even using a PC screen reader like jaws from a VNC or RDP, RDesktop on Linux, connection in gnome, and all
sorts of other combinations.

Take care,
Sina

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Ken Perry
Sent: Monday, November 26, 2007 9:32 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: SSIP for Windows -- beta almost ready for release



Why exactly would you use your Java class over something like chant.net
other than the small cost of the chant libraries?

Ken

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Macarty, Jay
{PBSG}
Sent: Monday, November 26, 2007 3:18 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: SSIP for Windows -- beta almost ready for release

Thanks Inthane and Sina! Made a fair amount of progress on writing up the
code for the SSIPClient for java today. Should be able to include a
SSIPClient1.0.jar with the release of the server.

As far as the server itself, I have added a few return codes that weren't in the original specs (such as "210 OK - API SET TO [{0}]" and I have to finish
up adding those to the response Dictionary object. Also, the LIST VOICES
command is working as far as being able to get the listing of the
synthesizer voices from SAPI, but I don't have the code/response added to
the parser.

FYI...
From a java interface perspective, the client code might look something
like this:

1. You would start the SSIPVoiceServer.exe program on your workstation.

2. Since the default for the client is "localhost port 3891", you could use
the empty constructor in your java application as follows:

   SSIPClient voice = new SSIPClient();
   try { voice.connect(); }
   catch (SSIPException e) { // do something }

3. To speak the phrase "this is a test.", you could code something like this


   try { voice.sayString("This is a test."); }
   catch (SSIPException e) { // do something }

There will be methods to start the speak operation, queue new text, and end
the queuing/trigger the speech in order to map to the protocol but the
saystring method will serve as a convenience method to speak a single string
of text.

4. When you are done, your code can exit the SSIP session by calling the
close() method on the client.

The SSIPClient interface will handle all the socket traffic, encoding the
requests, and decoding the responses. some method calls will map directly to
the SSIP commands they represent such as setAPI, setRate, setVoice, or
setClientName. The convenience methods, such as sayString, may map to
multiple SSIP commands.

Should have something ready in the next day or 2.

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Sina Bahram
Sent: Monday, November 26, 2007 4:38 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: SSIP for Windows -- beta almost ready for release

Sounds like a plan ... thanks Inthane.

Take care,
Sina


-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of inthaneelf
Sent: Monday, November 26, 2007 5:34 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: SSIP for Windows -- beta almost ready for release

this is one time I wish I had gotten up "earlier" instead of my normal time, ah well, since Sina has an interest in this, I'll just ask if I can link to
the page for this when you get it ready.

regards,
inthane
. For Blind Programming assistance, Information, Useful Programs, and Links
to Jamal Mazrui's Text tutorial packages and Applications, visit me at:
http://grabbag.alacorncomputer.com
. to be able to view a simple programming project in several programming
languages, visit the Fruit basket demo site at:
http://fruitbasketdemo.alacorncomputer.com

----- Original Message -----
From: "Macarty, Jay {PBSG}" <Jay.Macarty@xxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Monday, November 26, 2007 9:25 AM
Subject: RE: SSIP for Windows -- beta almost ready for release


Sina,
Thanks for the feedback and the offer! I'll take you up on that and will
contact you off list to discuss the details.


-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Sina Bahram
Sent: Monday, November 26, 2007 11:17 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: SSIP for Windows -- beta almost ready for release

Jay, look no further for hosting, my friend. Since this project is directly
related to the Remote Access Bridge, please allow me to offer you SVN
access, if you like, site hosting, databases, and so on ... It's no problem
for me to set that up, so just contact me off list.

Glad to see there is now a .net parser for SSIP as well. This will open up
some oppertunities.

Take care,
Sina

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Macarty, Jay
{PBSG}
Sent: Monday, November 26, 2007 12:13 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: SSIP for Windows -- beta almost ready for release

All,
Some of you may be aware that I have been working for some time now on a
server for the Speech Synthesis Interface Protocol, SSIP, for the windows
platform. I started out trying to implement the server in Auto-It but
couldn't get the multi-threading functionality or object oriented
capabilities I wanted. I then switched to ruby but the 1.8 version didn't
have the interface and abstract class support I wanted and the executable
packaging wasn't quite what I wanted either. I have now switched the
development over to C# and found the capabilities I wanted. There is still a little clean-up of the initial beta release and I'll have to find a website
to host the download installer, but here is a description of the initial
release.

SSIP is a non-synthesizer specific protocol for producing speech output.
The specs haven't been updated in a while but can be found at the URL
http://www.freebsoft.org/doc/speechd/ssip.html

SSIP uses a simple socket connection and a text command syntax. To produce
the spoken output "this is a test." a calling client program might send
these commands:

set client_name j.macarty:demo:test1
speak
this is a test.
.

The set client_name command simply identifies this client session for
tracking purposes since the server supports multiple client sessions
concurrently. The speak command tells the server to start receiving text to be spoken. The text input is terminated by a line containing a single dot. this also triggers the server to send the text to the output speech channel.


The SSIP for windows server supports output to JAWS, window-Eyes or SAPI.
The SpeechManager class uses an interface named ITextToSpeech with
implementation classes written for each of these 3 output channels. The
server was written with C# 2.0, instead of 3.x, because some corporate
builds, including ours here at work, are still using Dot Net 2.0. Rather
than attempting to set up the COM interface for SAPI and Window-Eyes, I
decided to use the tlbimp utility and build assemblies for them. This
allowed for simply creating the objects like SpVoice for SAPI and SpeakClass
for Window-Eyes. Also, once the assemblies were built, it was easier to
examine them using the ildasm tool to see the method calls and signatures.

The current server supports multiple client connections. I tried it out with
3 clients; one speaking thru JAWS, one speaking thru Window-Eyes, and one
speaking thru SAPI. The SAPI interface also supports the SET RATE, SET
VOICE, and SET VOLUME SSIP commands. The server also supports the SSIP CHAR
command for immediately speaking a single character. The SSIP BLOCK
structure command set and the Speech Synthesis Markup Language, SSML,
support are not included in this release but will be added.

The install includes a small Auto-It program called SSIPVoiceClient which
allows one to test out the server. The client contains an input text field where you can enter SSIP commands to send to the server and an output text
area which echoes back the server response codes.

I'll post another update when I have arranged for a download host and have
finished packaging up the install program. I'm hoping to provide a java
client API for the SSIP server, if Sina hasn't already developed one, and
some client examples in other languages as well.
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

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


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

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

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

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



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


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

Other related posts: