Menu

Disabling console messages in Sphinx4

2012-10-19
2012-10-22
  • Ben Sanders

    Ben Sanders - 2012-10-19

    Hi,

    I'm currently working with a Sphinx application that transcribes all audio files in a given folder. Currently, the program prints messages similar to the following to the console:

    13:41:30.509 INFO Loading dictionary from: /home/ben/Desktop/transcriber/custom_dictionary
    13:41:30.865 INFO Loading filler dictionary from: /home/ben/Desktop/transcriber/eclipse_project/lib/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz.jar!/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz/noisedict
    13:41:31.459 INFO unitManager CI Unit: *+AH+
    ...
    13:41:33.106 INFO wsjLoader Sphinx3Loader
    ...
    13:41:33.109 INFO wsj CompositeSenoneSequences: 0
    13:41:43.767 INFO lexTreeLinguist Max CI Units 55
    13:41:43.767 INFO lexTreeLinguist Unit table size 166375

    where the dots (...) represent similar outputs. I understand that these are not warnings or errors, but rather informative messages. However, I don't want them printed to the console. As a quick note, I'm using the latest version of the cmudict dictionary, but I added some words to it. The acoustic model I'm using is WSJ 8kHz.

    I searched for similar posts in these forums, and tried adding the following property at the very top of my configuration file:

    <property name="logLevel" value="OFF"></property>

    However, I'm still getting the same messages printed to the console.

    Could anyone please let me know how to avoid having these messages printed to the console?

    Thanks a lot in advance,
    -Ben

     
  • Nickolay V. Shmyrev

    In config file find

    <property name="logLevel" value="INFO"/>
    

    and change to

    <property name="logLevel" value="WARNING"/>
    
     
  • Ben Sanders

    Ben Sanders - 2012-10-19

    Hi Nickolay,

    Thanks for your reply. Sorry, but my original post was incomplete. I meant:

    I searched for similar posts in these forums, and tried adding the following property at the very top of my configuration file:

    <property name="logLevel" value="OFF"/>
    

    However, I'm still getting the same messages printed to the console. Shouldn't this line completely disable any log printing to the console?

    Thanks,
    -Ben

     
    • Nickolay V. Shmyrev

      If there is later a same property with value INFO, they may interact with each other. Also it's possible that you didn't update config file in the jar.

      So I would doublecheck.

       
  • Ben Sanders

    Ben Sanders - 2012-10-21

    Thanks for your reply, Nickolay. I run my code form Eclipse, and I always make sure that I'm pointing to the latest configuration file. I also checked if the same property is repeated in the configuration, and that's not the case.

    I should add that this problem ONLY happens when I run my code in Ubuntu. When I run it in Mac OS X (on the same recordings), I don't get any messages printed to the console once I set logLevel to OFF.

    I thought I would post my full configuration file, in case you spot something that I'm missing. Thanks a lot in advance!

        <!-- ******************************************************** -->
        <!-- frequently tuned properties                              -->
        <!-- ******************************************************** --> 
        <property name="logLevel" value="OFF"/>
        <property name="absoluteBeamWidth" value="10000"/>
        <property name="relativeBeamWidth" value="1E-70"/>
        <property name="absoluteWordBeamWidth" value="30"/>
        <property name="relativeWordBeamWidth" value="1E-20"/>
        <property name="wordInsertionProbability" value="0.8"/>
        <property name="languageWeight" value="7"/>
        <property name="silenceInsertionProbability" value=".1"/>
        <property name="frontend" value="epFrontEnd"/>
        <property name="recognizer" value="recognizer"/>
        <property name="showCreations" value="false"/>
    
        <!-- ******************************************************** -->
        <!-- word recognizer configuration                            -->
        <!-- ******************************************************** --> 
    
         <component name="recognizer" type="edu.cmu.sphinx.recognizer.Recognizer">
            <property name="decoder" value="decoder"/>
            <propertylist name="monitors">
                <item>accuracyTracker </item>
                <item>speedTracker </item>
                <item>memoryTracker </item>
                <item>recognizerMonitor </item>
            </propertylist>
       </component>
    
        <!-- ******************************************************** -->
        <!-- The Decoder   configuration                              -->
        <!-- ******************************************************** --> 
    
        <component name="decoder" type="edu.cmu.sphinx.decoder.Decoder">
            <property name="searchManager" value="wordPruningSearchManager"/>
            <property name="featureBlockSize" value="50"/>
        </component>
    
    
        <!-- ******************************************************** -->
        <!-- The Search Manager                                       -->
        <!-- ******************************************************** --> 
    
        <component name="wordPruningSearchManager" 
        type="edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManager">
            <property name="logMath" value="logMath"/>
            <property name="linguist" value="lexTreeLinguist"/>
            <property name="pruner" value="trivialPruner"/>
            <property name="scorer" value="threadedScorer"/>
            <property name="activeListManager" value="activeListManager"/>
            <property name="growSkipInterval" value="0"/>
            <property name="checkStateOrder" value="false"/>
            <property name="buildWordLattice" value="true"/>
            <property name="acousticLookaheadFrames" value="1.7"/>
            <property name="relativeBeamWidth" value="${relativeBeamWidth}"/>
            <property name="keepAllTokens" value="true"/>
        </component>
    
        <component name="activeList"
            type="edu.cmu.sphinx.decoder.search.PartitionActiveListFactory">
        <property name="logMath" value="logMath"/>
        <property name="absoluteBeamWidth" value="${absoluteBeamWidth}"/>
        <property name="relativeBeamWidth" value="${relativeBeamWidth}"/>
        </component>
    
    
        <!-- ******************************************************** -->
        <!-- The Active Lists                                         -->
        <!-- ******************************************************** --> 
    
       <component name="activeListManager" 
                 type="edu.cmu.sphinx.decoder.search.SimpleActiveListManager">
            <propertylist name="activeListFactories">
            <item>standardActiveListFactory</item>
            <item>wordActiveListFactory</item>
            <item>wordActiveListFactory</item>
            <item>standardActiveListFactory</item>
            <item>standardActiveListFactory</item>
            <item>standardActiveListFactory</item>
        </propertylist>
        </component>
    
        <component name="standardActiveListFactory" 
                 type="edu.cmu.sphinx.decoder.search.PartitionActiveListFactory">
            <property name="logMath" value="logMath"/>
            <property name="absoluteBeamWidth" value="${absoluteBeamWidth}"/>
            <property name="relativeBeamWidth" value="${relativeBeamWidth}"/>
        </component>
    
        <component name="wordActiveListFactory" 
                 type="edu.cmu.sphinx.decoder.search.PartitionActiveListFactory">
            <property name="logMath" value="logMath"/>
            <property name="absoluteBeamWidth" value="${absoluteWordBeamWidth}"/>
            <property name="relativeBeamWidth" value="${relativeWordBeamWidth}"/>
        </component>
    
        <!-- ******************************************************** -->
        <!-- The Pruner                                               -->
        <!-- ******************************************************** --> 
        <component name="trivialPruner" 
                    type="edu.cmu.sphinx.decoder.pruner.SimplePruner"/>
    
        <!-- ******************************************************** -->
        <!-- TheScorer                                                -->
        <!-- ******************************************************** --> 
        <component name="threadedScorer" 
                    type="edu.cmu.sphinx.decoder.scorer.ThreadedAcousticScorer">
            <property name="frontend" value="${frontend}"/>
        </component>
    
        <!-- ******************************************************** -->
        <!-- The linguist  configuration                              -->
        <!-- ******************************************************** -->
    
        <component name="lexTreeLinguist" 
                    type="edu.cmu.sphinx.linguist.lextree.LexTreeLinguist">
            <property name="logMath" value="logMath"/>
            <property name="acousticModel" value="wsj"/>
            <property name="languageModel" value="trigramModel"/>
            <property name="dictionary" value="dictionary"/>
            <property name="addFillerWords" value="false"/>
            <property name="fillerInsertionProbability" value="1E-10"/>
            <property name="generateUnitStates" value="false"/>
            <property name="wantUnigramSmear" value="true"/>
            <property name="unigramSmearWeight" value="1"/>
            <property name="wordInsertionProbability" 
                    value="${wordInsertionProbability}"/>
            <property name="silenceInsertionProbability" 
                    value="${silenceInsertionProbability}"/>
            <property name="languageWeight" value="${languageWeight}"/>
            <property name="unitManager" value="unitManager"/>
        </component>   
    
        <!-- ******************************************************** -->
        <!-- The Dictionary configuration                            -->
        <!-- ******************************************************** -->
         <component name="dictionary" 
            type="edu.cmu.sphinx.linguist.dictionary.FastDictionary">
            <property name="dictionaryPath"
                      value="/home/ubuntu/SphinxTest/CustomDictionary"/>
            <property name="fillerPath" 
                  value="resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz/noisedict"/>
            <property name="addSilEndingPronunciation" value="false"/>
            <property name="wordReplacement" value="&lt;sil&gt;"/>
            <property name="unitManager" value="unitManager"/>
        </component>
    
    
        <!-- ******************************************************** -->
        <!-- The Language Model configuration                         -->
        <!-- ******************************************************** -->
        <component name="trigramModel" 
            type="edu.cmu.sphinx.linguist.language.ngram.SimpleNGramModel">
            <property name="location" 
                value="/home/ubuntu/SphinxTest/LanguageModel.lm"/>
            <property name="logMath" value="logMath"/>
            <property name="dictionary" value="dictionary"/>
            <property name="maxDepth" value="3"/>
            <property name="unigramWeight" value=".7"/>
        </component>
    
    
        <!-- ******************************************************** -->
        <!-- The acoustic model configuration                         -->
        <!-- ******************************************************** -->
        <component name="wsj"
                   type="edu.cmu.sphinx.linguist.acoustic.tiedstate.TiedStateAcousticModel">
            <property name="loader" value="wsjLoader"/>
            <property name="unitManager" value="unitManager"/>
        </component>
    
        <component name="wsjLoader" type="edu.cmu.sphinx.linguist.acoustic.tiedstate.Sphinx3Loader">
            <property name="logMath" value="logMath"/>
            <property name="unitManager" value="unitManager"/>
            <property name="location" value="resource:/WSJ_8gau_13dCep_8kHz_31mel_200Hz_3500Hz"/>
        </component>
    
        <!-- ******************************************************** -->
        <!-- The unit manager configuration                           -->
        <!-- ******************************************************** -->
    
        <component name="unitManager" 
                   type="edu.cmu.sphinx.linguist.acoustic.UnitManager"/>
    
    
        <!-- ******************************************************** -->
        <!-- The live frontend configuration                          -->
        <!-- ******************************************************** -->
        <component name="epFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd">
            <propertylist name="pipeline">
                <item>audioFileDataSource </item>
                <item>dataBlocker </item>
                <item>speechClassifier </item>
                <item>speechMarker </item>
                <item>nonSpeechDataFilter </item>
                <item>preemphasizer </item>
                <item>windower </item>
                <item>fft </item>
                <item>melFilterBank </item>
                <item>dct </item>
                <item>liveCMN </item>
                <item>featureExtraction </item>
            </propertylist>
        </component>
    
        <component name="audioFileDataSource" type="edu.cmu.sphinx.frontend.util.AudioFileDataSource"/>
    
        <component name="dataBlocker" type="edu.cmu.sphinx.frontend.DataBlocker"/>
    
        <component name="speechClassifier"
                    type="edu.cmu.sphinx.frontend.endpoint.SpeechClassifier">
            <property name="threshold" value="13"/>
        </component>
    
        <component name="nonSpeechDataFilter" 
                   type="edu.cmu.sphinx.frontend.endpoint.NonSpeechDataFilter"/>
    
           <component name="speechMarker" 
                    type="edu.cmu.sphinx.frontend.endpoint.SpeechMarker">
            <property name="speechTrailer" value="50"/>
        </component>
    
        <component name="preemphasizer"
                   type="edu.cmu.sphinx.frontend.filter.Preemphasizer"/>
    
        <component name="windower" 
                   type="edu.cmu.sphinx.frontend.window.RaisedCosineWindower">
        </component>
    
        <component name="fft" 
                type="edu.cmu.sphinx.frontend.transform.DiscreteFourierTransform">
        </component>
    
         <component name="melFilterBank" 
            type="edu.cmu.sphinx.frontend.frequencywarp.MelFrequencyFilterBank">
            <property name="numberFilters" value="31"/>
            <property name="minimumFrequency" value="200"/>
            <property name="maximumFrequency" value="3500"/>
        </component>
    
        <component name="dct" 
                type="edu.cmu.sphinx.frontend.transform.DiscreteCosineTransform"/>
    
        <component name="liveCMN" 
                   type="edu.cmu.sphinx.frontend.feature.LiveCMN"/>
    
        <component name="featureExtraction" 
                   type="edu.cmu.sphinx.frontend.feature.DeltasFeatureExtractor"/>
    
        <!-- ******************************************************* -->
        <!--  monitors                                               -->
        <!-- ******************************************************* -->
    
        <component name="accuracyTracker" 
                   type="edu.cmu.sphinx.instrumentation.BestPathAccuracyTracker">
            <property name="recognizer" value="${recognizer}"/>
            <property name="showRawResults" value="false"/>
            <property name="showAlignedResults" value="false"/>
        </component>
    
        <component name="memoryTracker" 
                   type="edu.cmu.sphinx.instrumentation.MemoryTracker">
            <property name="recognizer" value="${recognizer}"/>
        <property name="showDetails" value="false"/>
        <property name="showSummary" value="false"/>
        </component>
    
        <component name="speedTracker" 
                   type="edu.cmu.sphinx.instrumentation.SpeedTracker">
            <property name="recognizer" value="${recognizer}"/>
            <property name="frontend" value="${frontend}"/>
        <property name="showDetails" value="false"/>
        </component>
    
        <component name="recognizerMonitor" 
                   type="edu.cmu.sphinx.instrumentation.RecognizerMonitor">
            <property name="recognizer" value="${recognizer}"/>
            <propertylist name="allocatedMonitors">
                <item>configMonitor </item>
            </propertylist>
        </component>
    
        <component name="configMonitor" 
                   type="edu.cmu.sphinx.instrumentation.ConfigMonitor">
            <property name="showConfig" value="false"/>
        </component>
    
    
        <!-- ******************************************************* -->
        <!--  Miscellaneous components                               -->
        <!-- ******************************************************* -->
    
        <component name="logMath" type="edu.cmu.sphinx.util.LogMath">
            <property name="logBase" value="1.0001"/>
            <property name="useAddTable" value="true"/>
        </component>
    
    
        <component name="confidenceScorer"
                   type="edu.cmu.sphinx.result.MAPConfidenceScorer">
            <property name="languageWeight" value="${languageWeight}"/>
        </component>
    
     
  • Nickolay V. Shmyrev

    I should add that this problem ONLY happens when I run my code in Ubuntu. When I run it in Mac OS X (on the same recordings), I don't get any messages printed to the console once I set logLevel to OFF.

    It should be Ubuntu Java issue then. I recommend to use Oracle Java, not other variants which might be distributed with Ubuntu.

     

Log in to post a comment.