Re: Festival server - notes on testing
- From: Michael Meeks <michael ximian com>
- To: Cheryl Homiak <chomiak chartermi net>
- Cc: gnome-accessibility-list gnome org, Marc Mulcahy <marc mulcahy sun com>
- Subject: Re: Festival server - notes on testing
- Date: 14 Nov 2002 10:01:26 +0000
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]