Re: Organising gnuspeech source(s) (David Hill)

View: New views
3 Messages — Rating Filter:   Alert me  

Re: Organising gnuspeech source(s) (David Hill)

by Dalmazio Brisinda :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi David,

[...]

> I'll work on some more stuff immediately, including putting an
> earlier compiled version of Monet on the savannah site -- but not as
> a release, only as a Beta.  Dalmazio has recently incorporated the
> helper Beta app (unfortunately also called Gnuspeech) that translated
> text into the Monet input syntax into Monet itself.  I have yet to
> try it out, but the original helper app did not deal with all the
> text that could be put in (unlike the pre-parser that was part of the
> TextToSpeech Server -- the daemon that provided text-to-speech
> conversion as a service on the NeXT and which Dalmazio is now working
> on.
>
> This is just to keep everyone up-to-date.

Oops. Actually, I didn't incorporate the helper app into Monet -- only  
got it to work on OS X 10.5.5 Intel and renamed it to PreMo for  
disambiguation. Similarly with the rest of the apps and frameworks.  
None of the apps would open in the latest Interface Builder, and  
required a bit of massaging.

The latest snapshot: there are currently 3 apps - Monet, PrEditor,  
PreMo; and 2 frameworks - GnuSpeech, Tube.

But I can incorporate the helper app (PreMo) into Monet as well.

Best,
dalmazio



_______________________________________________
gnuspeech-contact mailing list
gnuspeech-contact@...
http://lists.gnu.org/mailman/listinfo/gnuspeech-contact

Parent Message unknown Re: Re: Organising gnuspeech source(s) (David Hill)

by Dalmazio Brisinda :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Marcelo,

[...]

I have written/modified the makefiles (in the attachment), and the sequence is:

1) Compile/install the Frameworks/Tube files as a library (libGnuSpeechTube).
2) Compile/install the Frameworks/GnuSpeech files as a library (libGnuSpeech).
3) Compile/install Applications/Monet.
4) Compile/install Applications/PreMo.

This is a manual process.

In the attachment, the file INSTALL.gnustep contains the installation
procedure, and the file modifications.txt the adjustments that I have
had to do.

Cool. Thanks for this. I'll make these changes and commit to the repository shortly, save for one. Also I'll wait a little to commit the gorm changes until we can verify nib 3.x compatibility (see below). Here's the one change which may be problematic:

- In Applications/Monet/MSynthesisController.m:
(R1/R2 were always zero before)

@@ -424,7 +424,7 @@
     setDriftGenerator([driftDeviationField floatValue], 500, [driftCutoffField floatValue]);
     //setDriftGenerator(0.5, 250, 0.5);

-    [eventList setRadiusMultiply:[radiusMultiplyField doubleValue]];
+    //[eventList setRadiusMultiply:[radiusMultiplyField doubleValue]];

I found that making this change disables the effects of the Radius Multiply slider/field in the Intonation Parameters window when the intonation check box is checked. Currently it does affect r1/r2. Can you confirm this on Linux/Gnustep? It's odd that it should give different results on Linux/Gnustep vs. OS X.




I can synthesize a speech, but with no intonation. And the speech is
very slow. It seems that the tempo is not being set. And the output
file is always in AU format, even when I select WAV.

Yes, actually, there is no intonation in the Mac version either by default (flat intonation). I don't know what's required to make this work at present, not until I can put aside some time to look more closely under the hood. It may well be a series of settings. David might know more about this. David?

I'll send you some speech rendered into the 3 supported formats in a following email, AU, AIFF, WAV as produced by Monet. My media info app tells me that they are AU, AIFF, and WAV files. Can you read and play these on your system? Could you try generating the audio and comparing to these files? The speech rendered is the "I know you believe you understand what you think I said..." sentence.




In PreMo, the dictionary is not working. You are using ndbm or gdbm in MacOSX?

I haven't made any changes to the functionality, and it looks like it uses dbm by default. When I run the application it always prints out "Using DBM dictionary."

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ShouldUseDBMFile"]) {
        NSLog(@"Using DBM dictionary.");
        [self _createDBMFileIfNecessary];
        dictionary = [[GSDBMPronunciationDictionary mainDictionary] retain];
    } else {
        NSLog(@"Using simple dictionary.");
        dictionary = [[GSSimplePronunciationDictionary mainDictionary] retain];
        [dictionary loadDictionaryIfNecessary];
    }


The key line in the GSDBMPronunciationDictionary class (located in the GnuSpeech framework source under the TextProcessing directory) is:

    newDB = dbm_open([aFilename UTF8String], O_RDWR | O_CREAT, 0660);

Also, the GSSimplePronunciationDictionary class loads "2.0eMainDictionary.dict" located in the GnuSpeech framework source under the TextProcessing directory. 




Yes, they are. When I imported everything, all the nibs were in 2.x format,
but they wouldn't load in Xcode/Interface Builder. So I had to massage them
a bit (add template info.nib files which allowed them to open in Interface
Builder). But anyway, whatever is required for cross-platform compatibility
is easy to change, whether xib, 3.x nib, or 2.x nib. I should probably use
nib 3.x format if xib is not supported in gorm. Assuming gorm can handle nib
3.x.

You could send me an example of nib 3.x file. Then I would test it
using Gorm. If we can't convert between nib 3.x and gorm the work will
be doubled.


I've attached a gzip'd tarball of the English.lproj directory for the PreMo application which contains both a nib 3.x and a xib 3.x version of the interface.




Best,
dalmazio




_______________________________________________
gnuspeech-contact mailing list
gnuspeech-contact@...
http://lists.gnu.org/mailman/listinfo/gnuspeech-contact

English.lproj.tar.gz (53K) Download Attachment

Re: Re: Organising gnuspeech source(s) (David Hill)

by Marcelo Yassunori Matuda :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Dalmazio,

> Cool. Thanks for this. I'll make these changes and commit to the repository
> shortly, save for one. Also I'll wait a little to commit the gorm changes
> until we can verify nib 3.x compatibility (see below). Here's the one change
> which may be problematic:
> - In Applications/Monet/MSynthesisController.m:
> (R1/R2 were always zero before)
> @@ -424,7 +424,7 @@
>      setDriftGenerator([driftDeviationField floatValue], 500,
> [driftCutoffField floatValue]);
>      //setDriftGenerator(0.5, 250, 0.5);
> -    [eventList setRadiusMultiply:[radiusMultiplyField doubleValue]];
> +    //[eventList setRadiusMultiply:[radiusMultiplyField doubleValue]];
> I found that making this change disables the effects of the Radius Multiply
> slider/field in the Intonation Parameters window when the intonation check
> box is checked. Currently it does affect r1/r2. Can you confirm this on
> Linux/Gnustep? It's odd that it should give different results on
> Linux/Gnustep vs. OS X.

Yes, it disables the effect. But when I set the value of Radius
Multiply the console
shows:
2008-11-16 23:55:46.629 Monet[6063] Unimplemented: should set string to 1
2008-11-16 23:56:10.094 Monet[6063]
NSNumberFormatter-getObjectValue:forString:... not fully implemented

The Gnustep API reference says:
------
NSNumberFormatter : NSFormatter
    Declared in:
        Foundation/NSNumberFormatter.h
Availability: MacOS-X 10.0.0
This class is currently not implemented in GNUstep! All set methods
will work, but stringForObject: will ignore the format completely.
The documentation below describes what the behavior SHOULD be...
------

I don't know if this is the reason, but even when I set the value of
the Radius Multiply control, the tube model receives R1 = 0 / R2 = 0.

Maybe you could use #ifndef GNUSTEP (and a TODO) until a solution is found.

> Yes, actually, there is no intonation in the Mac version either by default
> (flat intonation). I don't know what's required to make this work at
> present, not until I can put aside some time to look more closely under the
> hood. It may well be a series of settings. David might know more about this.
> David?

Have you tried Tools / Intonation Window / Synthesize? I can't use it
because it is not implemented in the Gnustep version.

> I'll send you some speech rendered into the 3 supported formats in a
> following email, AU, AIFF, WAV as produced by Monet. My media info app tells
> me that they are AU, AIFF, and WAV files. Can you read and play these on
> your system? Could you try generating the audio and comparing to these
> files? The speech rendered is the "I know you believe you understand what
> you think I said..." sentence.

The files are ok. They are really AU / AIFF / WAV. But here the output
file is always AU (code = 0).

May you include this in the file INSTALL.gnustep (or README.gnustep)?
------
- In Tools / Intonation Parameters:
        - Set "Tempo" to 1.
- In Tools / Synthesis Window:
        - Click "Synthesize to sound file..."
------

The tempo needs to be manually set.

> The key line in the GSDBMPronunciationDictionary class (located in the
> GnuSpeech framework source under the TextProcessing directory) is:
>     newDB = dbm_open([aFilename UTF8String], O_RDWR | O_CREAT, 0660);
> Also, the GSSimplePronunciationDictionary class loads
> "2.0eMainDictionary.dict" located in the GnuSpeech framework source under
> the TextProcessing directory.

This makes PreMo work:
- In Frameworks/GnuSpeech/TextProcessing/GSSimplePronunciationDictionary.m:
        - (BOOL)loadDictionary
                str = [[NSString alloc] initWithData:data

encoding:NSISOLatin1StringEncoding];

The "file" program says:
$ file 2.0eMainDictionary.dict
2.0eMainDictionary.dict: Non-ISO extended-ASCII text

Probably there is some non-ASCII character in the file.
UTF-8 doesn't work too.

> I've attached a gzip'd tarball of the English.lproj directory for the PreMo
> application which contains both a nib 3.x and a xib 3.x version of the
> interface.

Gorm can't load the files.

Regards,
Marcelo


_______________________________________________
gnuspeech-contact mailing list
gnuspeech-contact@...
http://lists.gnu.org/mailman/listinfo/gnuspeech-contact