marytts / marytts-lang-hsb

Upper Sorbian language component for MaryTTS
GNU Lesser General Public License v3.0
2 stars 2 forks source link

Possible G2P problem #10

Open aStereoID opened 3 years ago

aStereoID commented 3 years ago

When running and testing the voice in a local MaryTTS server, audio output with test sentences containing "kedźbnosć" always results in the following abort: "INFO marytts.server Request couldn't be handled successfully". However, phonemes output works.

psibre commented 3 years ago

I'm afraid I can't reproduce this. I get the following ACOUSTPARAMS output:

<?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="hsb">
  <p>
    <s>
      <phrase>
        <t accent="!H*" g2p_method="rules" ph="' k E dZ - b n O s tS" pos="content">
          kedźbnosć
          <syllable accent="!H*" ph="k E dZ" stress="1">
            <ph d="168" end="0.168283" p="k"/>
            <ph d="39" end="0.2075282" f0="(0,98) (50,94)" p="E"/>
            <ph d="39" end="0.2468016" f0="(100,94)" p="dZ"/>
          </syllable>
          <syllable ph="b n O s tS">
            <ph d="59" end="0.3060686" f0="(0,98)" p="b"/>
            <ph d="38" end="0.3445301" p="n"/>
            <ph d="122" end="0.4669241" f0="(50,96) (100,96)" p="O"/>
            <ph d="39" end="0.5061693" p="s"/>
            <ph d="168" end="0.6744523" p="tS"/>
          </syllable>
        </t>
        <boundary breakindex="5" duration="400" tone="L-L%"/>
      </phrase>
    </s>
  </p>
</maryxml>

and the attached audio and TextGrid: kedźbnosć.zip

psibre commented 3 years ago

@aStereoID Could you please paste or attach the exact input and debug log that trigger the error?

aStereoID commented 3 years ago

hm.. I get this ACOUSTPARAMS output:

<?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="hsb">
    <p>
        <s>
            <phrase>
                <t accent="!H*" g2p_method="rules" ph="' k E dZ - b n O s tS" pos="content">
                    kedźbnosć

                    <syllable accent="!H*" ph="k E dZ" stress="1">
                        <ph d="58" end="0.057875" p="k"/>
                        <ph d="73" end="0.1309261" f0="(0,104) (50,100)" p="E"/>
                        <ph d="45" end="0.1763522" f0="(100,91)" p="dZ"/>
                    </syllable>
                    <syllable ph="b n O s tS">
                        <ph d="50" end="0.2262723" f0="(0,103)" p="b"/>
                        <ph d="67" end="0.2933393" p="n"/>
                        <ph d="73" end="0.3663904" f0="(50,97) (100,91)" p="O"/>
                        <ph d="168" end="0.5340554" p="s"/>
                        <ph d="168" end="0.7017204" p="tS"/>
                    </syllable>
                </t>
                <boundary breakindex="5" duration="400" tone="L-L%"/>
            </phrase>
        </s>
    </p>
</maryxml>

but trying to get AUDIO output leads to this:

2021-04-27 15:06:04,341 [I/O dispatcher 1] INFO  marytts.R 0 New request (input type "TEXT", output type "AUDIO", voice "hsb_poc", effect "", audio "WAVE")
2021-04-27 15:06:04,342 [I/O dispatcher 1] INFO  marytts.server Read: kedźbnosć
2021-04-27 15:06:04,342 [I/O dispatcher 1] INFO  marytts.R 0 Handling request using the following modules:
2021-04-27 15:06:04,342 [I/O dispatcher 1] INFO  marytts.R 0 - TextToMaryXML (marytts.modules.TextToMaryXML)
2021-04-27 15:06:04,342 [I/O dispatcher 1] INFO  marytts.R 0 Next module: TextToMaryXML
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 Handling request using the following modules:
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - JTokeniser (marytts.modules.JTokeniser)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - Preprocess (marytts.language.hsb.Preprocess)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - OpenNLPPosTagger (marytts.modules.MinimalisticPosTagger)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - JPhonemiser (marytts.language.hsb.UpperSorbianPhonemiser)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - Prosody (marytts.modules.ProsodyGeneric)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - PronunciationModel (marytts.modules.PronunciationModel)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - AcousticModeller (marytts.modules.AcousticModeller)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 - Synthesis (marytts.modules.Synthesis)
2021-04-27 15:06:04,344 [I/O dispatcher 1] INFO  marytts.R 0 Next module: JTokeniser
2021-04-27 15:06:04,351 [I/O dispatcher 1] INFO  marytts.R 0 Next module: Preprocess
2021-04-27 15:06:04,368 [I/O dispatcher 1] INFO  marytts.R 0 Next module: OpenNLPPosTagger
2021-04-27 15:06:04,369 [I/O dispatcher 1] INFO  marytts.R 0 Next module: JPhonemiser
2021-04-27 15:06:04,375 [I/O dispatcher 1] INFO  marytts.R 0 Next module: Prosody
2021-04-27 15:06:04,376 [I/O dispatcher 1] INFO  marytts.R 0 Next module: PronunciationModel
2021-04-27 15:06:04,377 [I/O dispatcher 1] INFO  marytts.R 0 Next module: AcousticModeller
2021-04-27 15:06:04,388 [I/O dispatcher 1] INFO  marytts.R 0 Next module: Synthesis
2021-04-27 15:06:04,437 [I/O dispatcher 1] ERROR marytts.server Processing failed.
java.lang.Exception: Module Synthesis: Problem processing the data.
        at marytts.server.Request.processOneChunk(Request.java:568)
        at marytts.server.Request.processOrLookupOneChunk(Request.java:403)
        at marytts.server.Request.process(Request.java:337)
        at marytts.server.http.SynthesisRequestHandler.process(SynthesisRequestHandler.java:261)
        at marytts.server.http.SynthesisRequestHandler.handleClientRequest(SynthesisRequestHandler.java:91)
        at marytts.server.http.BaseHttpRequestHandler.handle(BaseHttpRequestHandler.java:138)
        at org.apache.http.nio.protocol.BufferingHttpServiceHandler$RequestHandlerAdaptor.handle(BufferingHttpServiceHandler.java:189)
        at org.apache.http.nio.protocol.SimpleNHttpRequestHandler.handle(SimpleNHttpRequestHandler.java:51)
        at org.apache.http.nio.protocol.AsyncNHttpServiceHandler.processRequest(AsyncNHttpServiceHandler.java:453)
        at org.apache.http.nio.protocol.AsyncNHttpServiceHandler.requestReceived(AsyncNHttpServiceHandler.java:225)
        at org.apache.http.nio.protocol.BufferingHttpServiceHandler.requestReceived(BufferingHttpServiceHandler.java:127)
        at org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:161)
        at org.apache.http.impl.nio.DefaultServerIOEventDispatch.inputReady(DefaultServerIOEventDispatch.java:147)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:161)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:335)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:275)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.BufferUnderflowException
        at java.base/java.nio.Buffer.nextGetIndex(Buffer.java:651)
        at java.base/java.nio.DirectByteBuffer.getLong(DirectByteBuffer.java:850)
        at marytts.unitselection.data.TimelineReader.skipNextDatagram(TimelineReader.java:385)
        at marytts.unitselection.data.TimelineReader.hopToTime(TimelineReader.java:456)
        at marytts.unitselection.data.TimelineReader.getMappedByteBufferAtTime(TimelineReader.java:498)
        at marytts.unitselection.data.TimelineReader.getByteBufferAtTime(TimelineReader.java:483)
        at marytts.unitselection.data.TimelineReader.getDatagram(TimelineReader.java:582)
        at marytts.unitselection.concat.OverlapUnitConcatenator.getDatagramsFromTimeline(OverlapUnitConcatenator.java:64)
        at marytts.unitselection.concat.BaseUnitConcatenator.getAudio(BaseUnitConcatenator.java:113)
        at marytts.unitselection.UnitSelectionSynthesizer.synthesize(UnitSelectionSynthesizer.java:190)
        at marytts.modules.synthesis.Voice.synthesize(Voice.java:527)
        at marytts.modules.Synthesis.synthesizeOneSection(Synthesis.java:252)
        at marytts.modules.Synthesis.process(Synthesis.java:222)
        at marytts.server.Request.processOneChunk(Request.java:566)
        ... 19 more
2021-04-27 15:06:04,443 [I/O dispatcher 1] INFO  marytts.server Request couldn't be handled successfully.
psibre commented 3 years ago

That seems very strange. I wonder if there is some subtle side-effect of running this on a different OS or with different Java versions. Will investigate tomorrow...

aStereoID commented 3 years ago

@psibre: Could you find out anything new about this?