[mary-dev] [Mary-dev] PronunciationModel not working

fxavier at ircam.fr fxavier at ircam.fr
Thu Jun 30 15:47:54 CEST 2011


Also, in the http interface, when I hace:

input: PHONEMES
output: ALLOPHONES

input is:

<?xml version="1.0" encoding="UTF-8"?>
<maryxml xmlns="http://mary.dfki.de/2002/MaryXML"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="0.5"
xml:lang="fr">
<p>
<s>
<t ph="_" pos="[ZTRM-&gt;EXCEPTION]"/>
<t ph="saly" pos="[NMS]">
salut
</t>
</s>
</p>
</maryxml>


I get this error:


java.lang.Exception: Module PronunciationModel: Problem processing the data.
	at marytts.server.Request.processOneChunk(Request.java:556)
	at marytts.server.Request.processOrLookupOneChunk(Request.java:394)
	at marytts.server.Request.process(Request.java:303)
	at
marytts.server.http.SynthesisRequestHandler.process(SynthesisRequestHandler.java:286)
	at
marytts.server.http.SynthesisRequestHandler.handleClientRequest(SynthesisRequestHandler.java:112)
	at
marytts.server.http.BaseHttpRequestHandler.handle(BaseHttpRequestHandler.java:150)
	at
org.apache.http.nio.protocol.BufferingHttpServiceHandler$RequestHandlerAdaptor.handle(BufferingHttpServiceHandler.java:193)
	at
org.apache.http.nio.protocol.SimpleNHttpRequestHandler.handle(SimpleNHttpRequestHandler.java:55)
	at
org.apache.http.nio.protocol.AsyncNHttpServiceHandler.processRequest(AsyncNHttpServiceHandler.java:454)
	at
org.apache.http.nio.protocol.AsyncNHttpServiceHandler.inputReady(AsyncNHttpServiceHandler.java:320)
	at
org.apache.http.nio.protocol.BufferingHttpServiceHandler.inputReady(BufferingHttpServiceHandler.java:135)
	at
org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:179)
	at
org.apache.http.impl.nio.DefaultServerIOEventDispatch.inputReady(DefaultServerIOEventDispatch.java:145)
	at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:153)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:314)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:294)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:256)
	at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:96)
	at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:556)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IllegalArgumentException: Found unknown symbol `a' in
phonetic string `saly' -- ignoring.
	at
marytts.modules.phonemiser.AllophoneSet.splitIntoAllophoneList(AllophoneSet.java:361)
	at
marytts.modules.phonemiser.AllophoneSet.splitIntoAllophones(AllophoneSet.java:291)
	at
marytts.modules.PronunciationModel.createSubStructure(PronunciationModel.java:317)
	at marytts.modules.PronunciationModel.process(PronunciationModel.java:190)
	at marytts.server.Request.processOneChunk(Request.java:554)
	... 19 more



So there might be a problem with my allophones.fr.xml. If I understood
this error, the phonem "a" is not recognized, which means that it is not
existing in my allophone file. Here is it:

<allophones name="sampa" xml:lang="fr"
		features="vlng vheight vfront vrnd ctype cplace cvox">
	<silence ph="_"/>

	<vowel ph="i:" vlng="l" vheight="1" vfront="1" vrnd="-"/>
	<vowel ph="e:" vlng="l" vheight="2" vfront="1" vrnd="-"/>
	<vowel ph="3:" vlng="l" vheight="1" vfront="1" vrnd="-"/>
	<vowel ph="E:" vlng="l" vheight="2" vfront="1" vrnd="-"/>
	<vowel ph="a:" vlng="l" vheight="3" vfront="2" vrnd="-"/>
	<vowel ph="O" vlng="s" vheight="2" vfront="3" vrnd="+"/>
	<vowel ph="o:" vlng="l" vheight="2" vfront="3" vrnd="+"/>
	<vowel ph="u:" vlng="l" vheight="1" vfront="3" vrnd="+"/>
	<vowel ph="y:" vlng="l" vheight="1" vfront="2" vrnd="+"/>
	<vowel ph="2:" vlng="l" vheight="2" vfront="2" vrnd="+"/>
	<vowel ph="9" vlng="s" vheight="2" vfront="2" vrnd="+"/>
	<vowel ph="@" vlng="a" vheight="2" vfront="2" vrnd="-"/>
	<vowel ph="e~" vlng="l" vheight="2" vfront="1" vrnd="-" ctype="n"/>
	<vowel ph="a~" vlng="l" vheight="3" vfront="2" vrnd="-" ctype="n"/>
	<vowel ph="o~" vlng="l" vheight="2" vfront="3" vrnd="+" ctype="n"/>
	<vowel ph="9~" vlng="l" vheight="2" vfront="2" vrnd="+" ctype="n"/>

	<consonant ph="p" ctype="s" cplace="l" cvox="-"/>
	<consonant ph="t" ctype="s" cplace="a" cvox="-"/>
	<consonant ph="k" ctype="s" cplace="v" cvox="-"/>
	<consonant ph="b" ctype="s" cplace="l" cvox="+"/>
	<consonant ph="d" ctype="s" cplace="a" cvox="+"/>
	<consonant ph="g" ctype="s" cplace="v" cvox="+"/>
	<consonant ph="f" ctype="f" cplace="b" cvox="-"/>
	<consonant ph="s" ctype="f" cplace="a" cvox="-"/>
	<consonant ph="S" ctype="f" cplace="p" cvox="-"/>
	<consonant ph="v" ctype="f" cplace="b" cvox="+"/>
	<consonant ph="z" ctype="f" cplace="a" cvox="+"/>
	<consonant ph="Z" ctype="f" cplace="p" cvox="-"/>
	<consonant ph="l" ctype="l" cplace="a" cvox="+"/>
	<consonant ph="R" ctype="f" cplace="u" cvox="-"/>
	<consonant ph="m" ctype="n" cplace="l" cvox="+"/>
	<consonant ph="n" ctype="n" cplace="a" cvox="+"/>
	<consonant ph="J" ctype="n" cplace="p" cvox="+"/>
	<consonant ph="H" ctype="r" cplace="l" cvox="+"/>
	<consonant ph="w" ctype="r" cplace="l" cvox="+"/>
	<consonant ph="j" ctype="r" cplace="p" cvox="+"/>

</allophones>


I think that all the phonemes are written in the file. So why is there
this exception?


Thank you very much,

Florent




---------------------------- Message original ----------------------------
Objet:    [Mary-dev] PronunciationModel not working
De:       fxavier at ircam.fr
Date:     Jeu 30 juin 2011 13:55
À:       mary-dev at dfki.de
--------------------------------------------------------------------------

Dear all,

While running the AllophonesExtractor for importing the brand new french
voice, I get this error in the server.log

2011-06-30 13:46:09,831 [I/O dispatcher 1] INFO  marytts.server Connection
from null
2011-06-30 13:46:09,899 [I/O dispatcher 1] WARN  marytts.Voice Could not
find default voice for locale fr
2011-06-30 13:46:09,904 [I/O dispatcher 1] INFO  marytts.R 0 New request
(input type "RAWMARYXML", output type "ALLOPHONES", effect "", style "",
audio "AU")
2011-06-30 13:46:09,905 [I/O dispatcher 1] WARN  marytts.Voice Could not
find default voice for locale fr
2011-06-30 13:46:09,905 [I/O dispatcher 1] INFO  marytts.server Read:
<?xml version="1.0" encoding="UTF-8" ?>
<maryxml version="0.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mary.dfki.de/2002/MaryXML"
xml:lang="fr">
<boundary  breakindex="2" duration="100"/>
le bateau n'est pas amarré à la balise.

</maryxml>
2011-06-30 13:46:09,907 [I/O dispatcher 1] INFO  marytts.R 0 Handling
request using the following modules:
2011-06-30 13:46:09,907 [I/O dispatcher 1] INFO  marytts.R 0 -
FrenchPhonemiser (marytts.language.fr.PhonemiserFR)
2011-06-30 13:46:09,907 [I/O dispatcher 1] INFO  marytts.R 0 - Prosody
(marytts.modules.ProsodyGeneric)
2011-06-30 13:46:09,907 [I/O dispatcher 1] INFO  marytts.R 0 -
PronunciationModel (marytts.modules.PronunciationModel)
2011-06-30 13:46:09,907 [I/O dispatcher 1] INFO  marytts.R 0 Next module:
FrenchPhonemiser
2011-06-30 13:46:10,417 [I/O dispatcher 1] INFO  marytts.R 0 Next module:
Prosody
2011-06-30 13:46:10,421 [I/O dispatcher 1] INFO  marytts.R 0 Next module:
PronunciationModel
2011-06-30 13:46:10,422 [I/O dispatcher 1] ERROR marytts.server Processing
failed.
java.lang.Exception: Module PronunciationModel: Problem processing the data.
	at marytts.server.Request.processOneChunk(Request.java:556)
	at marytts.server.Request.processOrLookupOneChunk(Request.java:394)
	at marytts.server.Request.process(Request.java:341)
	at
marytts.server.http.SynthesisRequestHandler.process(SynthesisRequestHandler.java:286)
	at
marytts.server.http.SynthesisRequestHandler.handleClientRequest(SynthesisRequestHandler.java:112)
	at
marytts.server.http.BaseHttpRequestHandler.handle(BaseHttpRequestHandler.java:150)
	at
org.apache.http.nio.protocol.BufferingHttpServiceHandler$RequestHandlerAdaptor.handle(BufferingHttpServiceHandler.java:193)
	at
org.apache.http.nio.protocol.SimpleNHttpRequestHandler.handle(SimpleNHttpRequestHandler.java:55)
	at
org.apache.http.nio.protocol.AsyncNHttpServiceHandler.processRequest(AsyncNHttpServiceHandler.java:454)
	at
org.apache.http.nio.protocol.AsyncNHttpServiceHandler.inputReady(AsyncNHttpServiceHandler.java:320)
	at
org.apache.http.nio.protocol.BufferingHttpServiceHandler.inputReady(BufferingHttpServiceHandler.java:135)
	at
org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:179)
	at
org.apache.http.impl.nio.DefaultServerIOEventDispatch.inputReady(DefaultServerIOEventDispatch.java:145)
	at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:153)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:314)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:294)
	at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:256)
	at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:96)
	at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:556)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.util.NoSuchElementException
	at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
	at marytts.util.MaryUtils.string2locale(MaryUtils.java:473)
	at
marytts.modules.phonemiser.AllophoneSet.determineAllophoneSet(AllophoneSet.java:93)
	at marytts.modules.PronunciationModel.process(PronunciationModel.java:188)
	at marytts.server.Request.processOneChunk(Request.java:554)
	... 19 more
2011-06-30 13:46:10,424 [I/O dispatcher 1] INFO  marytts.server Request
couldn't be handled successfully.



Which tells me that the PronunciationModel doesn't process because of a
NoSuchElement exception. Other modules (French phonemiser and prosody)
seems to work. I precise that I created the allophones.fr.xml and put it
on MARY_BASE/lib/modules/fr/lexicon. I also included it in the fr.config.
Any help will be much appreciated,


Regards,
Florent



More information about the Mary-dev mailing list