gnuspeech-contact
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gnuspeech-contact] about contribute to gnuspeech


From: David Hill
Subject: Re: [gnuspeech-contact] about contribute to gnuspeech
Date: Sun, 28 Jun 2009 13:06:47 -0700

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:


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:


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:


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:


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
--------
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 

--------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]