Re: Festival server - notes on testing



Hi Cheryl,

On Wed, 2002-11-13 at 18:47, Cheryl Homiak wrote:
> Here's what happens when I try to start the festival server.
> I type
> festival --server &
>
> I get
> [1] 1185
> then my command line prompt
> then
> socket: bind failed

	That means it was already running; bound to the well-known port
(socket), it's well worth killing festival before starting anything to
get a clean slate; possibly something is grabbing the sound port [ you
might like to kill 'esd' as well ;-)

	Mark - you also do a single, not a double fork exec - without
de-zombifier - is that deliberate ? [ not that I know about such things
]. I suggest you use 'g_spawn' since it's designed to significantly help
with this sort of thing.

	Also - it seems to me that we never bother to read from the output of
festival - which may lead to a buffer becoming full and blocking - each
speech command results in some output; we either want to send the
'--pipe' option [ which suppresses output I think ] or we need to have a
listener on the pipe for output [ which is more elegant I think ].

	It also seems that we should fork festival earlier; during the
synthesis driver phase - so that we can query it's capabilities, eg.

	(<TAB> at the festival console lists a load of things we can do to
extract data from it eg.

festival> (voice.list)      
(don_diphone en1_mbrola)
festival> (PhoneSet.list)
(mrpa holmes)

	But perhaps these arn't useful ? certainly '(voice_kal_diphone)'
doesn't work for me when directly entered. Also - Marc we have:

speaker.c: In function `impl_setParameterValue':
speaker.c:231: warning: `return' with no value, in function returning
non-void
speaker.c:232: warning: `return' with no value, in function returning
non-void
speaker.c:239: warning: control reaches end of non-void function
speaker.c: In function `speaker_class_init':
speaker.c:246: warning: unused variable `object_class'
/usr/include/bits/stdio.h: At top level:
speaker.c:79: warning: `parameter_private_destroy' defined but not used

	As you know; I don't generally approve of the 'boolean return as well
as exception' setup - since you have to check the exception environment
anyway before looking at the return value; is there any particular
reason for those return values ? - given that they are not used.

	Also - my gnome-speech build blew up on the Java stuff:

Making all in java
make[2]: Entering directory `/opt/kgnome2.2/src/gnome-speech/java'
no \
-emitAll -i /opt/kgnome2.2/share/idl/bonobo-activation-2.0 -i ../idl \
-pkgPrefix GNOME org \
-pkgPrefix Bonobo org.GNOME \
-fallTie ../idl/GNOME_Speech_SynthesisDriver.idl 
make[2]: no: Command not found
make[2]: *** [org/GNOME/Speech/*.java] Error 127
make[2]: Leaving directory `/opt/kgnome2.2/src/gnome-speech/java'

	I edited 'java' out of the toplevel Makefile, and it built test-speech
but with these warnings:

test-speech.c: In function `parameter_tests':
test-speech.c:152: warning: passing arg 2 of `GNOME_Speech_Speaker_stop'
from incompatible pointer type
test-speech.c: In function `do_test':
test-speech.c:211: warning: `return' with no value, in function
returning non-void
test-speech.c:235: warning: `return' with no value, in function
returning non-void
test-speech.c:168: warning: `choice' might be used uninitialized in this
function

	Which I just fixed up and committed (hope that's ok, patch attached) -
warnings are so useful, that it's well worth paying attention to /
fixing them all before further work; pwrt. 'uninitialized' warnings. (
patch attached ).

	So - in summary you want to build HEAD gnome-speech; ensure that
'festival' is in your path; then do the following:

	[ NB. it's vital that you did a 'make install' before trying
	  any of this, and that you did so to a known prefix, that
	  either your GNOME_PATH and/or BONOBO_ACTIVATION_PATH point to]
	bonobo-slay
	export BONOBO_ACTIVATION_DEBUG_OUTPUT=1
	drivers/festival/festival-synthesis-driver
	[ see if it dies, if so, report STDOUT here, if not:
	  C-z, 'bg' - so it runs in the background ]
	test/test-speech

	You should get speech then; if not, possibly your audio device has
contention ( another speech output thing ? ), or perhaps a different
problem; at least with the B*_A*_DEBUG_OUTPUT you'll see what is
happening on the console.

	HTH,

		Michael.

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot
? mark
? drivers/festival/core.21113
? drivers/festival/core.21130
? drivers/festival-tts-driver/Makefile
? drivers/festival-tts-driver/Makefile.in
? drivers/festival-tts-driver/core.7800
? drivers/festival-tts-driver/festival-tts-driver
? drivers/festival-tts-driver/festival-tts-driver.server
? drivers/viavoice-tts-driver/Makefile
? drivers/viavoice-tts-driver/Makefile.in
? drivers/viavoice-tts-driver/viavoice-tts-driver.server
? gnome-speech/SynthesisDriver-common.c
? gnome-speech/SynthesisDriver-imodule.c
? gnome-speech/SynthesisDriver-skels.c
? gnome-speech/SynthesisDriver-stubs.c
? gnome-speech/SynthesisDriver.h
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gnome-speech/ChangeLog,v
retrieving revision 1.14
diff -u -p -u -r1.14 ChangeLog
--- ChangeLog	14 Nov 2002 03:27:50 -0000	1.14
+++ ChangeLog	14 Nov 2002 09:58:42 -0000
@@ -1,3 +1,8 @@
+2002-11-14  Michael Meeks  <michael ximian com>
+
+	* test/test-speech.c (do_test): fix misc.
+	uninitalized problems / warnings.
+
 2002-11-13  Marc Mulcahy  <marc mulcahy sun com>
 
 	* test/test-speech.c (do_test): Added exception check when querying
Index: test/test-speech.c
===================================================================
RCS file: /cvs/gnome/gnome-speech/test/test-speech.c,v
retrieving revision 1.5
diff -u -p -u -r1.5 test-speech.c
--- test/test-speech.c	14 Nov 2002 03:27:53 -0000	1.5
+++ test/test-speech.c	14 Nov 2002 09:58:42 -0000
@@ -149,7 +149,7 @@ parameter_tests (GNOME_Speech_Speaker sp
 	  break;
 	}
       p = &(list->_buffer[choice-1]);
-      GNOME_Speech_Speaker_stop (speaker, &ev);
+      GNOME_Speech_Speaker_stop (speaker, ev);
       speaker_say_print (speaker, "new %s? %.2lf through %.2lf.",
 			p->name, p->min, p->max);
       fgets (input, 80, stdin);
@@ -165,7 +165,7 @@ static int
 do_test (GNOME_Speech_SynthesisDriver driver, CORBA_Environment *ev)
 {
   char input[81];
-  int choice;
+  int choice = -1;
   CORBA_string driver_name, driver_version;
   CORBA_string synth_name, synth_version;
   GNOME_Speech_Speaker speaker;
@@ -208,7 +208,7 @@ do_test (GNOME_Speech_SynthesisDriver dr
   
   if (!voices) {
     printf ("No voices, bailing out.\n");
-    return;
+    return -1;
   }
   
   speaker = GNOME_Speech_SynthesisDriver_createSpeaker (driver,
@@ -232,7 +232,7 @@ do_test (GNOME_Speech_SynthesisDriver dr
 							&voices->_buffer[choice-1], ev);
   if (speaker == CORBA_OBJECT_NIL) {
 	  fprintf (stderr, "Error creating speaker.\n");
-	  return;
+	  return -1;
   }
   speaker_say_print (speaker, "\nPlease select a test.\n\n");
   speaker_say_print (speaker, "1. Parameter test.\n");


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