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

  • From: "Brent Harding" <bharding@xxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Wed, 28 Nov 2007 14:19:53 -0600

Actually, what I was wondering is how this would become a synthesizer for a remote copy of JFW, Wineyes, etc. I suppose a client would have to be made that registers itself as a Sapi synth so you'd set the screen reader to it or Sapi 5. ----- Original Message ----- From: "Macarty, Jay {PBSG}" <Jay.Macarty@xxxxxxxx>

To: <programmingblind@xxxxxxxxxxxxx>
Sent: Wednesday, November 28, 2007 7:18 AM
Subject: RE: SSIP for Windows -- beta almost ready for release


Brent,
If you are referring to being able to send speech output thru JAWS or
Window-Eyes using the SSIP command format, this is one of the things the
SSIP server offers you. The SSIP server handles translating the SSIP
commands into calls to the JFWAPI dll or the Window-Eyes COM interface
as well as regular SAPI support.


-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Brent
Harding
Sent: Monday, November 26, 2007 9:14 PM
To: programmingblind@xxxxxxxxxxxxx
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


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

Other related posts: