Hi Xianghang Liu ,
Many thanks for your posting and for your interest in contributing to
the GNUspeech project. We are always most grateful when people like
yourself are willing to help out as there is always plenty of work.
One point you should be careful about. "Open source" software
development is not quite the same as "free" (as in "freedom")
software development. The difference is the nature of the General
Public License (GPL) which protects the continued public availability
of the software together with the freedom of users to modify and
distribute the software. In general, "open source" does not do this,
which can lead to unacceptable restrictions. You should check out
Richard Stallman's book of essays on "free" software, available
in .pdf form as a download (at no cost) at:
http://shop.fsf.org/product/free-software-free-society
Chapter 20 is of particular interest, and the book also includes a
copy of the GPL and the GDL (General Documentation License -- similar
idea for documents, as for code under the GPL).
You will be aware that -- as a GNU project -- GNUspeech is being
developed/ported under a GPL V3, supported by the Free Software
Foundation.
You can also access all the source code in the SVN repository (we
have abandoned the CVS repository) which is accessible on the main
savannah page:
http://savannah.gnu.org/projects/gnuspeech
You don't need to be a member of the project to do this. It is only
when you wish to change what is in the repository that you need to be
a member, in which case you will need to get a gnu/savannah user ID at:
https://savannah.gnu.org/account/register.php
but if (for example) you are running Firefox, it will complain
bitterly about the security certificate not being certified by a
recognised authority, with dire warnings. Unless this worries you,
you can simply make a security exception and move on to the form,
fill it in, and eventually you will receive the needed ID which
allows you to be added to projects.
The gnuspeech home page is also accessible from the main gnuspeech
project page, but the direct URL is:
http://www.gnu.org/software/gnuspeech
and this will give you a good overview of what has to be done to move
all the original software onto GNU/Linux and Mac OS X. So far, as
Have you downloaded the current alpha release of some of the
components? You can download the Mac OS X version at:
http://svn.savannah.gnu.org/viewvc/osx/trunk/Builds/?root=gnuspeech
and the GNU/Linux version is in a similar location on the "gnustep"
branch, since the GNUStep environment is required to run the software
under GNU/Linux. Marcelo Matuda is the lead contributor to this
branch whilst Dalmazio Brisinda and myself are the current main
contributors to the Mac OS X branch (though the major work on "Monet"
was done three years ago by Steve Nygard). The "nextstep" branch has
all the original source from the NeXT, as well as the TextToSpeech
packages and passwords for the NeXT version. If you have access to a
NeXT, you can see exactly what the original complete suite did, and
it could be very useful to you as you get involved.
I note that you are experienced in C++. We are developing mainly in
Objective-C, with the actual tube model in straight C, whether on Mac
OS X or GNUstep. There are some important differences, as you are
obviously aware. Objective-C -- for example -- does not use multiple
inheritance which I see as a major drawback of C++. The need for
multiple inheritance, IMHO, indicates a failure to design the
original Object structure cleanly. There's an excellent book on
Cocoa, Interface Builder, and Objective-C by Aaron Hillegass: "Cocoa
Programming for Mac OS X" (third edition, Addison Wesley 2008) which
is also applicable to GNUstep (GNUstep is a free software
implementation of NeXTSTEP/OpenStep -- "the best software on the
planet" -- still is!).
As someone experienced in speech processing and pattern recognition
we shall value the contributions you are able to make. After you
have caught up with some of the references I have provided, I'd be
interested to know which aspects interest you most. The most obvious
place for you to start, I think, would be to work on my rather hacked
first cut at "Synthesizer" -- the App that allows users to work with
the tube model directly, rather than synthesize speech. There is a
fair amount of signal processing involved, and several parts that
display various graphs of the tube model characteristics have not yet
been completed. Also there are some (!) bugs.
Steve Nygard commented on the "first cut" as follows:
I did notice three things. First, when you tab out of the text
field for the area of the 5th section (which has an initial value
of 2.06... w/ radius 0.81 and dia 1.62)... the area changed to 3.33
(radius 1.03, dia 2.06). It keeps doing this as you tab or backtab
out of it. This doesn't happen with any of the other text fields.
Second, the graph for the Glottal Pulse Parameters changes as you
alternately click in the "Fall Time Min" and "Fall Time Max" text
fields (without actually changing the values). I'm guessing it's a
similar problem to the first.
Finally, after tabbing through all the Glottal Source controls
about 82 times, it crashes in... initializeSynthesizer(), rewind(),
flockfile(). I peeked at the source code, and it just looks like
you aren't releasing the previous file handle from tmpfile(),
running out of file handles, and then rewind() crashes when it gets
a NULL pointer.
There's an odd bug that in the pitch pulse harmonic display the
second harmonic disappears from time to time. There are also,
apparently, some problems with clipping rectangles, views, and the
like. I am not sure this technical issue is a priority as it doesn't
affect the compilation and there are other matters which more
urgently need attention. However, Dalmazio wrote a short time ago
and said (followed by my reply and Dalmazio's elaboration):
- After opening the nib file in Interface Builder I do get a
bunch of warnings on clipping rectangles and views and the like.
The application still compiles and executes fine though.
Now that is odd. Your version of xcode must be a lot pickier or
smarter than mine. I should look into it. Any chance you could
copy the messages & send them. I've seen nothing of that sort.
The version of Xcode I'm using is 3.1.1. The warning only appears
as 1 warning during compilation but actually consists of hundreds
of similar warnings along the lines of:
Box Illegal Geometry This view overlaps one of its
siblings.
Text Field Illegal Geometry This view is clipping its
contents.
All the warnings appear to be of this form -- one of the two issues
stated above.
I can correct the problem by manually re-creating the offending
widget and re-creating the various connections for that widget --
ensuring widgets do not overlap each other, but this would take a
lot of time as their are over 400 individual IB warnings.
I remember I had a similar problem with the original little
GnuSpeech application Steve wrote but there were only a few
interface elements so it was easy enough to just recreate the
components.
It would be nice to know a little more about your background and
whether you are more interested in the Mac OS X port, or the GNUstep
port (there are some incompatibilities, so we think it is easiest to
keep them as separate branches). The GNUstep port is somewhat less
advanced than the Mac port, and there are some reasons for this
(including the greater difficulty dealing with sound output, and the
ongoing development status of GNUstep itself), but some additional
effort on the GNUstep port would be most welcome.
All good wishes, and many thanks for your interest and offer of help.
david
-------
David Hill
[email protected]
http://savannah.gnu.org/projects/gnuspeech
--------
Simplicity, patience, compassion. These three are your greatest
treasures (Tao Te Ching #67)
---------
On Jun 25, 2009, at 6:21 PM, xianghang liu wrote:
Hi,
I am a c++ developer on speech processing and pattern recognition
and a big fan of opensource development. I am very interested in
this project and wondering if I could contribute to this software
as a developer? If so, I think I could help with fixing bugs and
implementing new features by sending patches.
Looking forward to your reply. It would be a great pleasure to join.
Thanks
--
Xianghang Liu
--------
_______________________________________________
gnuspeech-contact mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnuspeech-contact