Switching between runRecognitionOnWavFile & standard setup

Home Forums OpenEars Switching between runRecognitionOnWavFile & standard setup

Viewing 6 posts - 1 through 6 (of 6 total)

  • Author
    Posts
  • #1032677
    Tapestes
    Participant

    Halle,

    We’ve been using OpenEars for several years now. It’s been fantastic. Ran into an issue today. In our standard setup, speech rec is generally suspended. A three finger tap resumes speech rec, at which point the user can issue their speech rec command. We let PocketSphinx detect the silence and return the hypothesis. After the hypothesis is returned, we suspend OE again. I think of this as the “standard” method of doing things.

    That setup has always worked like a charm. Now, we’re adding a wrinkle. For some commands, the user indicates the start of the command by holding down a button, and the end of the command by releasing it. Then, we execute runRecognitionOnWavFile for that .wav. This is all done while OE is in suspended mode.

    Both of these work fine, up until you switch between them. So, if we issue a command using the “standard” method, and follow that with the our new method using runRecognitionOnWavFile, everything is fine. However, after using runRecognitionOnWavFile, if we go back to the “standard” method for the next command, OE crashes in the OEContiniousModel thread. The log isn’t super-revealing, but I’ve included it below (OE logging and verbose PocketSphinx).

    If it helps, the four processes in the broken thread are:
    – 0 [OEContiniousModel perform SingularStopForDecoder:]
    – 1 [OEContiniousModel changeLanguageMOdelForDecoder:languateModelIsJSGF:]
    – 2 [OEContiniousModel processBuffer:]
    – 3 [OEContiniousModel heartBeat]

    The problem persists, even if I use the same language model for both.

    let content = try! Data(contentsOf: Bundle.main.url(forResource: “general”, withExtension: “grmr”)!)
    let jsonDictionary = try! JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as! [AnyHashable: Any]
    let _ = lmGenerator.generateGrammar(from: jsonDictionary, withFilesNamed: “GENERAL”, forAcousticModelAtPath: OEAcousticModel.path(toModel: “AcousticModelEnglish”))
    self.generalLangaugeModel = lmGenerator.pathToSuccessfullyGeneratedGrammar(withRequestedName: “GENERAL”)
    self.generalDictionary = lmGenerator.pathToSuccessfullyGeneratedDictionary(withRequestedName: “GENERAL”)

    OEPocketsphinxController.sharedInstance().runRecognitionOnWavFile(atPath: wavPath, usingLanguageModelAtPath: self.generalLangaugeModel, dictionaryAtPath: self.generalDictionary, acousticModelAtPath: OEAcousticModel.path(toModel: “AcousticModelEnglish”), languageModelIsJSGF: true)

    Here’s my log information…
    RESUME
    2019-01-04 15:37:24.257060-0500 otto[1105:252649] setSecondsOfSilence wasn’t set, using default of 0.700000.
    2019-01-04 15:37:24.876988-0500 otto[1105:252788] Speech detected…
    2019-01-04 15:37:30.249703-0500 otto[1105:252693] End of speech detected…
    SUSPEND
    2019-01-04 15:37:30.251761-0500 otto[1105:252693] Pocketsphinx heard “TAXI TO RUNWAY ONE SIX VIA ZULU” with a score of (0) and an utterance ID of 1.
    Recording path for readback —– file:///var/mobile/Containers/Data/Application/28796A20-7A55-4195-8712-7696D6CD5534/Documents/last-readback.wav
    2019-01-04 15:37:43.751139-0500 otto[1105:252649] Pocketsphinx heard “TAXI TO RUNWAY ONE SIX VIA BRAVO SKY HAWK EIGHT THREE ZERO FIVE BRAVO” with a score of (0) and an utterance ID of 2.
    RESUME
    2019-01-04 15:37:52.155066-0500 otto[1105:252649] setSecondsOfSilence wasn’t set, using default of 0.700000.
    <–crash–>

    #1032678
    Halle Winkler
    Politepix

    Welcome,

    OK, there should actually be a lot more logging information that is possible to share, so can you take a look at this post about how much logging is needed Please read before you post – how to troubleshoot and provide logging info here to troubleshoot this kind of issue, and also share the backtrace (type ‘bt’ in lldb at the crash) in order to make further investigation possible? Thanks.

    #1032679
    Tapestes
    Participant

    Here’s the full printout, with the backtrace at the end…

    2019-01-07 09:08:54.817597-0500 otto[1393:496245] Starting OpenEars logging for OpenEars version 2.506 on 64-bit device (or build): iPad running iOS version: 12.100000
    2019-01-07 09:08:54.818944-0500 otto[1393:496245] Creating shared instance of OEPocketsphinxController
    2019-01-07 09:08:56.242688-0500 otto[1393:496245] Since there is no cached version, loading the language model lookup list for the acoustic model called AcousticModelEnglish
    2019-01-07 09:08:56.280052-0500 otto[1393:496245] The word GUMPS was not found in the dictionary of the acoustic model /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle. Now using the fallback method to look it up. If this is happening more frequently than you would expect, likely causes can be that you are entering words in another language from the one you are recognizing, or that there are symbols (including numbers) that need to be spelled out or cleaned up, or you are using your own acoustic model and there is an issue with either its phonetic dictionary or it lacks a g2p file. Please get in touch at the forums for assistance with the last two possible issues.
    2019-01-07 09:08:56.284656-0500 otto[1393:496245] Using convertGraphemes for the word or phrase gumps which doesn’t appear in the dictionary
    2019-01-07 09:08:56.296099-0500 otto[1393:496245] Elapsed time to generate unknown word phonemes in English is 0.015762
    2019-01-07 09:08:56.296521-0500 otto[1393:496245] the graphemes “G AA M P S” were created for the word GUMPS using the fallback method.
    2019-01-07 09:08:56.334851-0500 otto[1393:496245] The word ZULU was not found in the dictionary of the acoustic model /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle. Now using the fallback method to look it up. If this is happening more frequently than you would expect, likely causes can be that you are entering words in another language from the one you are recognizing, or that there are symbols (including numbers) that need to be spelled out or cleaned up, or you are using your own acoustic model and there is an issue with either its phonetic dictionary or it lacks a g2p file. Please get in touch at the forums for assistance with the last two possible issues.
    2019-01-07 09:08:56.335538-0500 otto[1393:496245] Using convertGraphemes for the word or phrase zulu which doesn’t appear in the dictionary
    2019-01-07 09:08:56.340676-0500 otto[1393:496245] Elapsed time to generate unknown word phonemes in English is 0.005588
    2019-01-07 09:08:56.341070-0500 otto[1393:496245] the graphemes “Z UW L UW” were created for the word ZULU using the fallback method.
    2019-01-07 09:08:56.341358-0500 otto[1393:496245] I’m done running performDictionaryLookup and it took 0.088049 seconds
    2019-01-07 09:08:56.516564-0500 otto[1393:496245] Returning a cached version of LanguageModelGeneratorLookupList.text
    2019-01-07 09:08:56.526831-0500 otto[1393:496245] The word CESS was not found in the dictionary of the acoustic model /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle. Now using the fallback method to look it up. If this is happening more frequently than you would expect, likely causes can be that you are entering words in another language from the one you are recognizing, or that there are symbols (including numbers) that need to be spelled out or cleaned up, or you are using your own acoustic model and there is an issue with either its phonetic dictionary or it lacks a g2p file. Please get in touch at the forums for assistance with the last two possible issues.
    2019-01-07 09:08:56.527585-0500 otto[1393:496245] Using convertGraphemes for the word or phrase cess which doesn’t appear in the dictionary
    2019-01-07 09:08:56.531316-0500 otto[1393:496245] Elapsed time to generate unknown word phonemes in English is 0.004267
    2019-01-07 09:08:56.531699-0500 otto[1393:496245] the graphemes “S EH S” were created for the word CESS using the fallback method.
    2019-01-07 09:08:56.573433-0500 otto[1393:496245] The word ZULU was not found in the dictionary of the acoustic model /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle. Now using the fallback method to look it up. If this is happening more frequently than you would expect, likely causes can be that you are entering words in another language from the one you are recognizing, or that there are symbols (including numbers) that need to be spelled out or cleaned up, or you are using your own acoustic model and there is an issue with either its phonetic dictionary or it lacks a g2p file. Please get in touch at the forums for assistance with the last two possible issues.
    2019-01-07 09:08:56.574259-0500 otto[1393:496245] Using convertGraphemes for the word or phrase zulu which doesn’t appear in the dictionary
    2019-01-07 09:08:56.578103-0500 otto[1393:496245] Elapsed time to generate unknown word phonemes in English is 0.004419
    2019-01-07 09:08:56.578463-0500 otto[1393:496245] the graphemes “Z UW L UW” were created for the word ZULU using the fallback method.
    2019-01-07 09:08:56.578631-0500 otto[1393:496245] I’m done running performDictionaryLookup and it took 0.061926 seconds
    SUSPEND
    2019-01-07 09:08:56.755857-0500 otto[1393:496328] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
    2019-01-07 09:08:56.756406-0500 otto[1393:496328] Audio route has changed for the following reason:
    2019-01-07 09:08:56.756784-0500 otto[1393:496328] There was a category change. The new category is AVAudioSessionCategoryPlayAndRecord
    2019-01-07 09:08:56.777773-0500 otto[1393:496328] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
    2019-01-07 09:08:56.778783-0500 otto[1393:496328] This is not a case in which OpenEars notifies of a route change. At the close of this method, the new audio route will be <Input route or routes: “MicrophoneBuiltIn”. Output route or routes: “Speaker”>. The previous route before changing to this route was “<AVAudioSessionRouteDescription: 0x116504420,
    inputs = (
    “<AVAudioSessionPortDescription: 0x1165045f0, type = MicrophoneBuiltIn; name = iPad Microphone; UID = Built-In Microphone; selectedDataSource = Front>”
    );
    outputs = (
    “<AVAudioSessionPortDescription: 0x116504970, type = Speaker; name = Speaker; UID = Speaker; selectedDataSource = (null)>”
    )>”.
    2019-01-07 09:08:56.779209-0500 otto[1393:496328] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
    2019-01-07 09:08:58.156527-0500 otto[1393:496245] Attempting to start listening session from startListeningWithLanguageModelAtPath:
    2019-01-07 09:08:58.162090-0500 otto[1393:496245] User gave mic permission for this app.
    2019-01-07 09:08:58.162538-0500 otto[1393:496245] setSecondsOfSilence wasn’t set, using default of 0.700000.
    2019-01-07 09:08:58.167801-0500 otto[1393:496385] Starting listening.
    2019-01-07 09:08:58.168008-0500 otto[1393:496385] About to set up audio session
    2019-01-07 09:08:58.184123-0500 otto[1393:496385] Creating audio session with mixing disabled.
    2019-01-07 09:08:58.184248-0500 otto[1393:496385] Done setting audio session category.
    2019-01-07 09:08:58.184513-0500 otto[1393:496385] audioMode is incorrect, we will change it.
    2019-01-07 09:08:58.203788-0500 otto[1393:496385] audioMode is now on the correct setting.
    2019-01-07 09:08:58.243139-0500 otto[1393:496385] Done setting preferred sample rate to 16000.000000 – now the real sample rate is 16000.000000
    2019-01-07 09:08:58.245279-0500 otto[1393:496385] number of channels is already the preferred number of 1 so not setting it.
    2019-01-07 09:08:58.246798-0500 otto[1393:496385] Done setting session’s preferred I/O buffer duration to 0.128000 – now the actual buffer duration is 0.128000
    2019-01-07 09:08:58.246897-0500 otto[1393:496385] Done setting up audio session
    CURRENT LOAD PROGRESS: 0%
    2019-01-07 09:08:58.247388-0500 otto[1393:496385] About to set up audio IO unit in a session with a sample rate of 16000.000000, a channel number of 1 and a buffer duration of 0.128000.
    2019-01-07 09:08:58.300913-0500 otto[1393:496385] Done setting up audio unit
    2019-01-07 09:08:58.301021-0500 otto[1393:496385] About to start audio IO unit
    2019-01-07 09:08:58.494435-0500 otto[1393:496385] Done starting audio unit
    INFO: pocketsphinx.c(145): Parsed model-specific feature parameters from /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/feat.params
    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -allphone
    -allphone_ci no no
    -alpha 0.97 9.700000e-01
    -ascale 20.0 2.000000e+01
    -aw 1 1
    -backtrace no no
    -beam 1e-48 1.000000e-48
    -bestpath yes yes
    -bestpathlw 9.5 9.500000e+00
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 40
    -compallsen no no
    -debug 0
    -dict /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.dic
    -dictcase no no
    -dither no no
    -doublebw no no
    -ds 1 1
    -fdict /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/noisedict
    -feat 1s_c_d_dd 1s_c_d_dd
    -featparams /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/feat.params
    -fillprob 1e-8 1.000000e-08
    -frate 100 100
    -fsg
    -fsgusealtpron yes yes
    -fsgusefiller yes yes
    -fwdflat yes yes
    -fwdflatbeam 1e-64 1.000000e-64
    -fwdflatefwid 4 4
    -fwdflatlw 8.5 8.500000e+00
    -fwdflatsfwin 25 25
    -fwdflatwbeam 7e-29 7.000000e-29
    -fwdtree yes yes
    -hmm /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle
    -input_endian little little
    -jsgf /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.gram
    -keyphrase
    -kws
    -kws_delay 10 10
    -kws_plp 1e-1 1.000000e-01
    -kws_threshold 1 1.000000e+00
    -latsize 5000 5000
    -lda
    -ldadim 0 0
    -lifter 0 22
    -lm
    -lmctl
    -lmname
    -logbase 1.0001 1.000100e+00
    -logfn
    -logspec no no
    -lowerf 133.33334 1.300000e+02
    -lpbeam 1e-40 1.000000e-40
    -lponlybeam 7e-29 7.000000e-29
    -lw 6.5 1.000000e+00
    -maxhmmpf 30000 30000
    -maxwpf -1 -1
    -mdef /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    -mean /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    -mfclogdir
    -min_endfr 0 0
    -mixw
    -mixwfloor 0.0000001 1.000000e-07
    -mllr
    -mmap yes yes
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 25
    -nwpen 1.0 1.000000e+00
    -pbeam 1e-48 1.000000e-48
    -pip 1.0 1.000000e+00
    -pl_beam 1e-10 1.000000e-10
    -pl_pbeam 1e-10 1.000000e-10
    -pl_pip 1.0 1.000000e+00
    -pl_weight 3.0 3.000000e+00
    -pl_window 5 5
    -rawlogdir
    -remove_dc no no
    -remove_noise yes yes
    -remove_silence yes yes
    -round_filters yes yes
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -sendump /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/sendump
    -senlogdir
    -senmgau
    -silprob 0.005 5.000000e-03
    -smoothspec no no
    -svspec 0-12/13-25/26-38
    -tmat /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/transition_matrices
    -tmatfloor 0.0001 1.000000e-04
    -topn 4 4
    -topn_beam 0 0
    -toprule
    -transform legacy dct
    -unit_area yes yes
    -upperf 6855.4976 6.800000e+03
    -uw 1.0 1.000000e+00
    -vad_postspeech 50 69
    -vad_prespeech 20 10
    -vad_startspeech 10 10
    -vad_threshold 2.0 2.300000e+00
    -var /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    -varfloor 0.0001 1.000000e-04
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear
    -wbeam 7e-29 7.000000e-29
    -wip 0.65 6.500000e-01
    -wlen 0.025625 2.562500e-02

    INFO: feat.c(715): Initializing feature stream to type: ‘1s_c_d_dd’, ceplen=13, CMN=’current’, VARNORM=’no’, AGC=’none’
    INFO: cmn.c(143): mean[0]= 12.00, mean[1..12]= 0.0
    INFO: acmod.c(164): Using subvector specification 0-12/13-25/26-38
    INFO: mdef.c(518): Reading model definition: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef file
    INFO: bin_mdef.c(336): Reading binary model definition: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    INFO: bin_mdef.c(516): 46 CI-phone, 168344 CD-phone, 3 emitstate/phone, 138 CI-sen, 6138 Sen, 32881 Sen-Seq
    INFO: tmat.c(206): Reading HMM transition probability matrices: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/transition_matrices
    INFO: acmod.c(117): Attempting to use PTM computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: ptm_mgau.c(805): Number of codebooks doesn’t match number of ciphones, doesn’t look like PTM: 1 != 46
    INFO: acmod.c(119): Attempting to use semi-continuous computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: s2_semi_mgau.c(904): Loading senones from dump file /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/sendump
    INFO: s2_semi_mgau.c(928): BEGIN FILE FORMAT DESCRIPTION
    INFO: s2_semi_mgau.c(991): Rows: 512, Columns: 6138
    INFO: s2_semi_mgau.c(1023): Using memory-mapped I/O for senones
    INFO: s2_semi_mgau.c(1294): Maximum top-N: 4 Top-N beams: 0 0 0
    INFO: phone_loop_search.c(114): State beam -225 Phone exit beam -225 Insertion penalty 0
    INFO: dict.c(320): Allocating 4341 * 32 bytes (135 KiB) for word entries
    INFO: dict.c(333): Reading main dictionary: /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.dic
    INFO: dict.c(213): Allocated 1 KiB for strings, 2 KiB for phones
    INFO: dict.c(336): 236 words read
    INFO: dict.c(358): Reading filler dictionary: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/noisedict
    INFO: dict.c(213): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(361): 9 words read
    INFO: dict2pid.c(396): Building PID tables for dictionary
    INFO: dict2pid.c(406): Allocating 46^3 * 2 bytes (190 KiB) for word-initial triphones
    INFO: dict2pid.c(132): Allocated 51152 bytes (49 KiB) for word-final triphones
    INFO: dict2pid.c(196): Allocated 51152 bytes (49 KiB) for single-phone word triphones
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00000>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_0>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00002>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_1>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00004>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_2>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00006>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_3>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00008>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_4>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00010>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_5>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00012>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_6>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00014>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_7>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00016>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_8>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00018>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_9>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00020>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_10>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00022>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_11>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00024>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_12>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00026>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_13>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00028>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_14>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00030>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_15>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00032>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_16>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00034>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_17>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00036>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_18>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00038>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_19>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00040>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_20>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00042>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_21>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00044>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_22>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00046>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_23>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00048>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_24>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00050>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_25>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00052>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_26>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00054>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_27>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00056>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_28>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00058>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_29>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00060>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_30>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00062>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_31>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00064>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_32>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00066>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_33>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00068>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_34>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00070>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_35>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00072>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_36>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00074>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_37>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00076>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_38>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00078>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_39>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00080>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_40>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00082>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_41>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00084>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_42>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00086>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_43>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00088>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_44>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00090>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_45>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00092>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_46>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00094>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_47>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00096>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_48>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00098>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_49>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00100>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_50>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00102>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_51>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00104>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_52>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00106>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_53>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00108>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_54>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00110>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_55>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00112>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_56>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00114>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_57>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00116>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_58>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00118>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_59>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00120>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_60>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00122>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_61>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00124>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_62>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00126>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_63>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00128>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_64>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00130>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_65>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00132>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_66>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00134>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_67>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00136>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_68>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00138>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_69>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00140>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_70>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00142>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_71>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00144>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_72>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00146>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_73>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00148>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_74>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00150>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_75>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00152>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_76>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00154>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_77>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00156>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_78>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00158>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_79>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00160>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_80>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00162>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_81>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00164>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_82>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00166>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_83>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00168>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_84>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00170>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_85>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00172>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_86>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00174>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_87>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00176>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_88>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00178>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_89>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00180>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_90>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00182>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_91>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00184>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_92>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00186>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_93>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00188>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_94>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00190>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_95>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00192>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_96>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00194>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_97>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00196>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_98>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00198>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_99>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00200>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_100>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00202>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_101>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00204>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_102>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00206>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_103>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00208>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_104>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00210>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_105>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00212>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_106>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00214>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_107>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00216>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_108>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00218>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_109>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00220>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_110>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00222>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_111>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00224>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_112>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00226>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_113>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00228>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_114>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00230>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_115>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00232>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_116>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00234>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_117>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00236>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_118>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00238>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_119>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00240>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_120>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00242>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_121>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00244>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_122>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00246>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_123>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00248>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_124>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00250>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_125>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00252>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_126>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00254>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_127>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00256>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_128>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00258>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_129>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00260>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_130>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00262>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_131>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00264>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_132>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00266>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_133>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00268>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_134>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00270>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_135>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00272>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_136>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00274>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_137>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00276>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_138>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00278>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_139>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00280>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_140>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00282>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_141>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00284>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_142>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00286>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_143>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00288>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_144>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00290>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_145>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00292>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_146>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00294>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_147>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00296>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_148>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00298>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_149>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00300>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_150>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00302>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_151>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00304>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_152>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00306>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_153>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00308>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_154>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00310>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_155>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00312>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_156>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00314>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_157>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00316>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_158>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00318>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_159>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00320>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_160>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00322>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_161>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00324>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_162>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00326>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_163>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00328>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_164>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00330>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_165>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00332>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_166>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00334>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_167>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00336>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_168>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00338>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_169>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00340>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_170>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00342>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_171>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00344>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_172>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00346>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_173>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00348>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_174>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00350>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_175>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00352>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_176>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00354>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_177>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00356>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_178>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00358>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_179>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00360>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_180>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00362>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_181>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00364>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_182>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00366>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_183>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00368>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_184>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00370>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_185>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00372>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_186>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00374>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_187>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00376>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_188>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00378>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_189>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00380>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_190>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00382>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_191>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00384>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_192>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00386>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_193>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00388>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_194>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00390>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_195>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00392>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_196>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00394>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_197>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00396>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_198>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00398>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_199>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00400>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_200>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00402>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_201>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00404>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_202>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00406>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_203>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00408>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_204>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00410>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_205>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00412>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_206>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00414>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_207>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00416>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_208>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00418>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_209>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00420>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_210>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00422>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_211>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00424>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_212>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00426>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_213>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00428>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_214>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00430>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_215>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00432>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_216>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00434>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_217>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00436>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_218>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00438>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_219>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00440>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_220>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00442>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_221>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00444>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_222>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00446>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_223>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00448>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_224>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00450>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_225>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00452>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_226>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00454>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_227>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00456>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_228>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00458>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_229>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00460>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_230>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00462>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_231>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00464>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_232>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00466>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_233>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00468>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_234>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00470>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_235>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00472>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_236>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00474>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_237>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00476>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_238>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00478>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_239>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00480>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_240>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00482>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_241>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00484>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_242>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00486>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_243>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00488>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_244>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00490>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_245>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00492>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_246>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00494>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_247>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00496>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_248>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00498>
    INFO: jsgf.c(691): Defined rule: PUBLIC <GENERAL.rule_249>
    INFO: fsg_model.c(215): Computing transitive closure for null transitions
    INFO: fsg_model.c(277): 213 null transitions added
    INFO: fsg_search.c(227): FSG(beam: -1080, pbeam: -1080, wbeam: -634; wip: -5, pip: 0)
    INFO: fsg_model.c(428): Adding silence transitions for <sil> to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for <sil> to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [BREATH] to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [COUGH] to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [NOISE] to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [SMACK] to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [UH] to FSG
    INFO: fsg_model.c(448): Added 460 silence word transitions
    INFO: fsg_search.c(173): Added 605 alternate word transitions
    INFO: fsg_lextree.c(110): Allocated 43240 bytes (42 KiB) for left and right context phones
    INFO: fsg_lextree.c(256): 73443 HMM nodes in lextree (59846 leaves)
    INFO: fsg_lextree.c(259): Allocated 10575792 bytes (10327 KiB) for all lextree nodes
    INFO: fsg_lextree.c(262): Allocated 8617824 bytes (8415 KiB) for lextree leafnodes
    2019-01-07 09:08:58.960240-0500 otto[1393:496385] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
    2019-01-07 09:08:58.963552-0500 otto[1393:496385] There was no previous CMN value in the plist so we are using the fresh CMN value 40.000000.
    2019-01-07 09:08:58.964147-0500 otto[1393:496385] Listening.
    2019-01-07 09:08:58.966244-0500 otto[1393:496385] Project has these words or phrases in its dictionary:
    A.
    A.(2)
    ADD
    AFTER
    AGAIN
    AGAIN(2)
    AIR
    AIRPORT
    ALPHA
    ALTITUDE
    AND
    AND(2)
    APRON
    ARE
    ARE(2)
    ASCENDING
    AT
    BASE
    BE
    BEARING
    BEFORE
    BEFORE(2)
    BELOW
    BELOW(2)
    BRAVO
    CEILINGS
    CENTER
    CENTER(2)
    CHARLIE
    CHECK
    CHECKLIST
    …and 206 more.
    2019-01-07 09:08:58.966423-0500 otto[1393:496385] Recognition loop has started
    2019-01-07 09:08:58.966591-0500 otto[1393:496245] Successfully started listening session from startListeningWithLanguageModelAtPath:
    2019-01-07 09:08:59.017910-0500 otto[1393:496385] Speech detected…
    2019-01-07 09:08:59.021161-0500 otto[1393:496245] [INFO] {}[General]: GPU Identifier: Apple A8X GPU
    2019-01-07 09:08:59.958945-0500 otto[1393:496396] End of speech detected…
    INFO: cmn_prior.c(131): cmn_prior_update: from < 40.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 >
    INFO: cmn_prior.c(149): cmn_prior_update: to < 0.55 -15.00 -4.49 -11.63 -8.19 -7.45 -4.83 -5.61 -7.76 -11.47 -10.85 -7.36 -2.46 >
    INFO: fsg_search.c(843): 94 frames, 66420 HMMs (706/fr), 47672 senones (507/fr), 9295 history entries (98/fr)

    2019-01-07 09:08:59.968090-0500 otto[1393:496396] Pocketsphinx heard “” with a score of (0) and an utterance ID of 0.
    2019-01-07 09:08:59.968214-0500 otto[1393:496396] Hypothesis was null so we aren’t returning it. If you want null hypotheses to also be returned, set OEPocketsphinxController’s property returnNullHypotheses to TRUE before starting OEPocketsphinxController.
    removing pack <MGLOfflinePack: 0x10a1efa30>
    SUSPEND
    2019-01-07 09:09:14.273394-0500 otto[1393:496389] [Assert] Cannot be called with asCopy = NO on non-main thread.
    RESUME
    2019-01-07 09:09:16.795984-0500 otto[1393:496245] setSecondsOfSilence wasn’t set, using default of 0.700000.
    INFO: cmn_prior.c(131): cmn_prior_update: from < 0.55 -15.00 -4.49 -11.63 -8.19 -7.45 -4.83 -5.61 -7.76 -11.47 -10.85 -7.36 -2.46 >
    INFO: cmn_prior.c(149): cmn_prior_update: to < 0.55 -15.00 -4.49 -11.63 -8.19 -7.45 -4.83 -5.61 -7.76 -11.47 -10.85 -7.36 -2.46 >
    INFO: fsg_search.c(843): 0 frames, 0 HMMs (0/fr), 0 senones (0/fr), 47 history entries (0/fr)

    2019-01-07 09:09:17.186540-0500 otto[1393:496393] Speech detected…
    2019-01-07 09:09:20.868952-0500 otto[1393:496311] End of speech detected…
    INFO: cmn_prior.c(131): cmn_prior_update: from < 0.55 -15.00 -4.49 -11.63 -8.19 -7.45 -4.83 -5.61 -7.76 -11.47 -10.85 -7.36 -2.46 >
    INFO: cmn_prior.c(149): cmn_prior_update: to < 24.73 6.75 -0.32 7.31 10.14 -0.19 -23.33 -20.95 0.29 -19.81 0.52 0.26 -6.86 >
    INFO: fsg_search.c(843): 369 frames, 256134 HMMs (694/fr), 232375 senones (629/fr), 27871 history entries (75/fr)

    2019-01-07 09:09:20.872509-0500 otto[1393:496311] Pocketsphinx heard “RUNWAYS ONE SIX FOUR INDIA BRAVO” with a score of (0) and an utterance ID of 1.
    SUSPEND
    Recording path for readback —– file:///var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Documents/last-readback.wav
    INFO: pocketsphinx.c(145): Parsed model-specific feature parameters from /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/feat.params
    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -allphone
    -allphone_ci no no
    -alpha 0.97 9.700000e-01
    -ascale 20.0 2.000000e+01
    -aw 1 1
    -backtrace no no
    -beam 1e-48 1.000000e-48
    -bestpath yes yes
    -bestpathlw 9.5 9.500000e+00
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 40
    -compallsen no no
    -debug 0
    -dict /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/READBACK.dic
    -dictcase no no
    -dither no no
    -doublebw no no
    -ds 1 1
    -fdict /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/noisedict
    -feat 1s_c_d_dd 1s_c_d_dd
    -featparams /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/feat.params
    -fillprob 1e-8 1.000000e-08
    -frate 100 100
    -fsg
    -fsgusealtpron yes yes
    -fsgusefiller yes yes
    -fwdflat yes yes
    -fwdflatbeam 1e-64 1.000000e-64
    -fwdflatefwid 4 4
    -fwdflatlw 8.5 8.500000e+00
    -fwdflatsfwin 25 25
    -fwdflatwbeam 7e-29 7.000000e-29
    -fwdtree yes yes
    -hmm /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle
    -input_endian little little
    -jsgf /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/READBACK.gram
    -keyphrase
    -kws
    -kws_delay 10 10
    -kws_plp 1e-1 1.000000e-01
    -kws_threshold 1 1.000000e+00
    -latsize 5000 5000
    -lda
    -ldadim 0 0
    -lifter 0 22
    -lm
    -lmctl
    -lmname
    -logbase 1.0001 1.000100e+00
    -logfn
    -logspec no no
    -lowerf 133.33334 1.300000e+02
    -lpbeam 1e-40 1.000000e-40
    -lponlybeam 7e-29 7.000000e-29
    -lw 6.5 1.000000e+00
    -maxhmmpf 30000 30000
    -maxwpf -1 -1
    -mdef /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    -mean /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    -mfclogdir
    -min_endfr 0 0
    -mixw
    -mixwfloor 0.0000001 1.000000e-07
    -mllr
    -mmap yes yes
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 25
    -nwpen 1.0 1.000000e+00
    -pbeam 1e-48 1.000000e-48
    -pip 1.0 1.000000e+00
    -pl_beam 1e-10 1.000000e-10
    -pl_pbeam 1e-10 1.000000e-10
    -pl_pip 1.0 1.000000e+00
    -pl_weight 3.0 3.000000e+00
    -pl_window 5 5
    -rawlogdir
    -remove_dc no no
    -remove_noise yes yes
    -remove_silence yes yes
    -round_filters yes yes
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -sendump /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/sendump
    -senlogdir
    -senmgau
    -silprob 0.005 5.000000e-03
    -smoothspec no no
    -svspec 0-12/13-25/26-38
    -tmat /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/transition_matrices
    -tmatfloor 0.0001 1.000000e-04
    -topn 4 4
    -topn_beam 0 0
    -toprule
    -transform legacy dct
    -unit_area yes yes
    -upperf 6855.4976 6.800000e+03
    -uw 1.0 1.000000e+00
    -vad_postspeech 50 69
    -vad_prespeech 20 10
    -vad_startspeech 10 10
    -vad_threshold 2.0 2.300000e+00
    -var /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    -varfloor 0.0001 1.000000e-04
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear
    -wbeam 7e-29 7.000000e-29
    -wip 0.65 6.500000e-01
    -wlen 0.025625 2.562500e-02

    INFO: feat.c(715): Initializing feature stream to type: ‘1s_c_d_dd’, ceplen=13, CMN=’current’, VARNORM=’no’, AGC=’none’
    INFO: cmn.c(143): mean[0]= 12.00, mean[1..12]= 0.0
    INFO: acmod.c(164): Using subvector specification 0-12/13-25/26-38
    INFO: mdef.c(518): Reading model definition: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef file
    INFO: bin_mdef.c(336): Reading binary model definition: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/mdef
    INFO: bin_mdef.c(516): 46 CI-phone, 168344 CD-phone, 3 emitstate/phone, 138 CI-sen, 6138 Sen, 32881 Sen-Seq
    INFO: tmat.c(206): Reading HMM transition probability matrices: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/transition_matrices
    INFO: acmod.c(117): Attempting to use PTM computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: ptm_mgau.c(805): Number of codebooks doesn’t match number of ciphones, doesn’t look like PTM: 1 != 46
    INFO: acmod.c(119): Attempting to use semi-continuous computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(294): 512×13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: s2_semi_mgau.c(904): Loading senones from dump file /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/sendump
    INFO: s2_semi_mgau.c(928): BEGIN FILE FORMAT DESCRIPTION
    INFO: s2_semi_mgau.c(991): Rows: 512, Columns: 6138
    INFO: s2_semi_mgau.c(1023): Using memory-mapped I/O for senones
    INFO: s2_semi_mgau.c(1294): Maximum top-N: 4 Top-N beams: 0 0 0
    INFO: phone_loop_search.c(114): State beam -225 Phone exit beam -225 Insertion penalty 0
    INFO: dict.c(320): Allocating 4212 * 32 bytes (131 KiB) for word entries
    INFO: dict.c(333): Reading main dictionary: /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/READBACK.dic
    INFO: dict.c(213): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(336): 107 words read
    INFO: dict.c(358): Reading filler dictionary: /var/containers/Bundle/Application/E55C078E-ED64-4F36-80AF-5F2FD98F7B60/otto.app/AcousticModelEnglish.bundle/noisedict
    INFO: dict.c(213): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(361): 9 words read
    INFO: dict2pid.c(396): Building PID tables for dictionary
    INFO: dict2pid.c(406): Allocating 46^3 * 2 bytes (190 KiB) for word-initial triphones
    INFO: dict2pid.c(132): Allocated 51152 bytes (49 KiB) for word-final triphones
    INFO: dict2pid.c(196): Allocated 51152 bytes (49 KiB) for single-phone word triphones
    INFO: jsgf.c(691): Defined rule: <READBACK.g00000>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_0>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00002>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_1>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00004>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_2>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00006>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_3>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00008>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_4>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00010>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_5>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00012>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_6>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00014>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_7>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00016>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_8>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00018>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_9>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00020>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_10>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00022>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_11>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00024>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_12>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00026>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_13>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00028>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_14>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00030>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_15>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00032>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_16>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00034>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_17>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00036>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_18>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00038>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_19>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00040>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_20>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00042>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_21>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00044>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_22>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00046>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_23>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00048>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_24>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00050>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_25>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00052>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_26>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00054>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_27>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00056>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_28>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00058>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_29>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00060>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_30>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00062>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_31>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00064>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_32>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00066>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_33>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00068>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_34>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00070>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_35>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00072>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_36>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00074>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_37>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00076>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_38>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00078>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_39>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00080>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_40>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00082>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_41>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00084>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_42>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00086>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_43>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00088>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_44>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00090>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_45>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00092>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_46>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00094>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_47>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00096>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_48>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00098>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_49>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00100>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_50>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00102>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_51>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00104>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_52>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00106>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_53>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00108>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_54>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00110>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_55>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00112>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_56>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00114>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_57>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00116>
    INFO: jsgf.c(691): Defined rule: <READBACK.rule_58>
    INFO: jsgf.c(691): Defined rule: <READBACK.g00118>
    INFO: jsgf.c(691): Defined rule: PUBLIC <READBACK.rule_59>
    INFO: fsg_model.c(215): Computing transitive closure for null transitions
    INFO: fsg_model.c(277): 142 null transitions added
    INFO: fsg_search.c(227): FSG(beam: -1080, pbeam: -1080, wbeam: -634; wip: -5, pip: 0)
    INFO: fsg_model.c(428): Adding silence transitions for <sil> to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for <sil> to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [BREATH] to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [COUGH] to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [NOISE] to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [SMACK] to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_model.c(428): Adding silence transitions for [UH] to FSG
    INFO: fsg_model.c(448): Added 77 silence word transitions
    INFO: fsg_search.c(173): Added 90 alternate word transitions
    INFO: fsg_lextree.c(110): Allocated 7238 bytes (7 KiB) for left and right context phones
    INFO: fsg_lextree.c(256): 10457 HMM nodes in lextree (8643 leaves)
    INFO: fsg_lextree.c(259): Allocated 1505808 bytes (1470 KiB) for all lextree nodes
    INFO: fsg_lextree.c(262): Allocated 1244592 bytes (1215 KiB) for lextree leafnodes
    INFO: cmn_prior.c(131): cmn_prior_update: from < 40.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 >
    INFO: cmn_prior.c(149): cmn_prior_update: to < 26.29 7.09 1.46 8.30 8.42 0.48 -25.98 -13.86 -4.69 -19.28 1.63 5.83 -12.93 >
    INFO: fsg_search.c(843): 630 frames, 324609 HMMs (515/fr), 148508 senones (235/fr), 59712 history entries (94/fr)

    2019-01-07 09:09:42.786964-0500 otto[1393:496245] Pocketsphinx heard “TAXI TO RUNWAY ONE SIX LEFT VIA BRAVO SKY HAWK EIGHT THREE ZERO FIVE BRAVO” with a score of (0) and an utterance ID of 2.
    2019-01-07 09:09:49.432039-0500 otto[1393:496245] setSecondsOfSilence wasn’t set, using default of 0.700000.
    2019-01-07 09:09:49.661709-0500 otto[1393:496397] there is a request to change to the grammar file /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.gram
    2019-01-07 09:09:49.662565-0500 otto[1393:496397] The grammar ID is 1546870189
    2019-01-07 09:09:49.670583-0500 otto[1393:496397] Success loading the specified dictionary file /var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.dic.
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00000>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_0>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00002>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_1>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00004>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_2>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00006>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_3>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00008>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_4>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00010>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_5>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00012>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_6>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00014>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_7>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00016>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_8>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00018>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_9>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00020>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_10>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00022>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_11>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00024>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_12>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00026>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_13>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00028>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_14>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00030>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_15>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00032>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_16>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00034>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_17>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00036>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_18>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00038>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_19>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00040>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_20>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00042>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_21>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00044>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_22>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00046>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_23>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00048>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_24>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00050>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_25>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00052>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_26>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00054>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_27>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00056>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_28>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00058>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_29>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00060>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_30>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00062>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_31>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00064>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_32>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00066>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_33>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00068>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_34>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00070>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_35>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00072>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_36>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00074>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_37>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00076>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_38>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00078>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_39>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00080>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_40>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00082>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_41>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00084>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_42>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00086>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_43>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00088>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_44>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00090>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_45>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00092>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_46>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00094>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_47>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00096>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_48>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00098>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_49>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00100>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_50>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00102>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_51>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00104>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_52>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00106>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_53>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00108>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_54>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00110>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_55>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00112>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_56>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00114>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_57>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00116>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_58>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00118>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_59>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00120>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_60>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00122>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_61>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00124>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_62>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00126>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_63>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00128>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_64>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00130>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_65>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00132>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_66>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00134>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_67>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00136>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_68>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00138>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_69>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00140>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_70>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00142>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_71>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00144>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_72>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00146>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_73>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00148>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_74>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00150>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_75>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00152>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_76>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00154>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_77>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00156>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_78>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00158>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_79>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00160>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_80>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00162>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_81>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00164>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_82>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00166>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_83>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00168>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_84>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00170>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_85>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00172>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_86>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00174>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_87>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00176>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_88>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00178>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_89>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00180>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_90>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00182>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_91>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00184>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_92>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00186>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_93>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00188>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_94>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00190>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_95>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00192>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_96>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00194>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_97>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00196>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_98>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00198>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_99>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00200>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_100>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00202>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_101>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00204>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_102>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00206>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_103>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00208>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_104>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00210>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_105>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00212>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_106>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00214>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_107>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00216>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_108>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00218>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_109>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00220>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_110>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00222>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_111>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00224>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_112>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00226>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_113>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00228>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_114>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00230>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_115>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00232>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_116>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00234>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_117>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00236>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_118>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00238>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_119>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00240>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_120>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00242>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_121>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00244>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_122>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00246>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_123>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00248>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_124>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00250>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_125>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00252>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_126>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00254>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_127>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00256>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_128>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00258>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_129>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00260>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_130>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00262>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_131>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00264>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_132>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00266>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_133>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00268>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_134>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00270>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_135>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00272>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_136>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00274>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_137>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00276>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_138>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00278>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_139>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00280>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_140>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00282>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_141>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00284>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_142>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00286>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_143>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00288>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_144>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00290>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_145>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00292>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_146>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00294>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_147>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00296>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_148>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00298>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_149>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00300>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_150>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00302>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_151>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00304>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_152>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00306>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_153>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00308>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_154>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00310>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_155>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00312>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_156>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00314>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_157>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00316>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_158>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00318>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_159>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00320>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_160>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00322>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_161>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00324>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_162>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00326>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_163>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00328>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_164>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00330>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_165>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00332>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_166>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00334>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_167>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00336>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_168>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00338>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_169>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00340>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_170>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00342>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_171>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00344>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_172>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00346>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_173>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00348>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_174>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00350>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_175>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00352>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_176>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00354>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_177>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00356>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_178>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00358>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_179>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00360>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_180>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00362>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_181>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00364>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_182>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00366>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_183>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00368>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_184>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00370>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_185>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00372>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_186>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00374>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_187>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00376>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_188>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00378>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_189>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00380>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_190>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00382>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_191>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00384>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_192>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00386>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_193>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00388>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_194>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00390>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_195>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00392>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_196>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00394>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_197>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00396>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_198>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00398>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_199>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00400>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_200>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00402>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_201>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00404>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_202>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00406>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_203>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00408>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_204>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00410>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_205>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00412>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_206>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00414>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_207>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00416>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_208>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00418>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_209>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00420>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_210>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00422>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_211>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00424>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_212>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00426>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_213>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00428>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_214>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00430>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_215>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00432>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_216>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00434>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_217>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00436>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_218>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00438>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_219>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00440>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_220>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00442>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_221>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00444>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_222>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00446>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_223>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00448>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_224>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00450>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_225>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00452>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_226>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00454>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_227>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00456>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_228>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00458>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_229>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00460>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_230>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00462>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_231>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00464>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_232>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00466>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_233>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00468>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_234>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00470>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_235>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00472>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_236>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00474>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_237>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00476>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_238>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00478>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_239>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00480>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_240>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00482>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_241>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00484>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_242>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00486>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_243>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00488>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_244>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00490>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_245>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00492>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_246>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00494>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_247>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00496>
    INFO: jsgf.c(691): Defined rule: <GENERAL.rule_248>
    INFO: jsgf.c(691): Defined rule: <GENERAL.g00498>
    INFO: jsgf.c(691): Defined rule: PUBLIC <GENERAL.rule_249>
    otto was compiled with optimization – stepping may behave oddly; variables may not be available.
    (lldb) bt
    * thread #24, queue = ‘com.apple.root.default-qos’, stop reason = EXC_BAD_ACCESS (code=1, address=0x1a21a61d079)
    * frame #0: 0x00000001011bbe60 otto`cmd_ln_str_r [inlined] cmd_ln_access_r(cmdln=0x000001a21a61d071, name=”-toprule”) at cmd_ln.c:943 [opt]
    frame #1: 0x00000001011bbe60 otto`cmd_ln_str_r(cmdln=0x000001a21a61d071, name=”-toprule”) at cmd_ln.c:954 [opt]
    frame #2: 0x000000010115d330 otto`ps_set_jsgf_file(ps=0x000000011086f860, name=”1546870189″, path=”/var/mobile/Containers/Data/Application/19F5A73A-1E2C-47A8-A147-45533591DC4E/Library/Caches/GENERAL.gram”) at pocketsphinx.c:679 [opt]
    frame #3: 0x0000000101171e84 otto`-[OEContinuousModel changeLanguageModelForDecoder:languageModelIsJSGF:](self=<unavailable>, _cmd=<unavailable>, pocketsphinxDecoder=<unavailable>, languageModelIsJSGF=<unavailable>) at OEContinuousModel.m:397 [opt]
    frame #4: 0x0000000101170468 otto`-[OEContinuousModel processBuffer:](self=0x000000010a2c0810, _cmd=<unavailable>, buffer=<unavailable>) at OEContinuousModel.m:159 [opt]
    frame #5: 0x00000001011700c4 otto`-[OEContinuousModel heartBeat](self=<unavailable>, _cmd=<unavailable>) at OEContinuousModel.m:96 [opt]
    frame #6: 0x0000000109a60dc8 libdispatch.dylib`_dispatch_client_callout + 16
    frame #7: 0x0000000109a641c4 libdispatch.dylib`_dispatch_continuation_pop + 528
    frame #8: 0x0000000109a76c90 libdispatch.dylib`_dispatch_source_invoke + 1864
    frame #9: 0x0000000109a721dc libdispatch.dylib`_dispatch_root_queue_drain + 376
    frame #10: 0x0000000109a72bc8 libdispatch.dylib`_dispatch_worker_thread2 + 156
    frame #11: 0x00000001e11f917c libsystem_pthread.dylib`_pthread_wqthread + 472
    frame #12: 0x00000001e11fbcec libsystem_pthread.dylib`start_wqthread + 4
    (lldb)

    #1032685
    Halle Winkler
    Politepix

    Hi, can you show me the code where you switch between the recognition methods?

    #1032686
    Tapestes
    Participant

    Either speech rec is active and we autodetect start of speech, or it’s suspended and we send the .wav to the parseWav function in the code below…

    open class OpenEarsManager: NSObject, OEEventsObserverDelegate {
        public static let sharedInstance = OpenEarsManager()
        var openEarsEventsObserver: OEEventsObserver!
    
        var words: Array<String> = []
        var lmGenerator = OELanguageModelGenerator()
        var resumeOnFinished = true
        
        var generalLangaugeModel  = ""
        var generalDictionary     = ""
        
        var readBackLangaugeModel = ""
        var readBackDictionary    = ""
        
        var useReadback = false
    
        
        override init() {
            super.init()
                    
            OEPocketsphinxController.sharedInstance().disableMixing = true
    
            openEarsEventsObserver = OEEventsObserver()
            openEarsEventsObserver.delegate = self
            
            //setup general recognition
            let content = try! Data(contentsOf: Bundle.main.url(forResource: "general", withExtension: "grmr")!)
            let jsonDictionary = try! JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as! [AnyHashable: Any]
            let _ = lmGenerator.generateGrammar(from: jsonDictionary, withFilesNamed: "GENERAL", forAcousticModelAtPath: OEAcousticModel.path(toModel: "AcousticModelEnglish"))
            self.generalLangaugeModel = lmGenerator.pathToSuccessfullyGeneratedGrammar(withRequestedName: "GENERAL")
            self.generalDictionary = lmGenerator.pathToSuccessfullyGeneratedDictionary(withRequestedName: "GENERAL")
            
            //setup readback recognition
            let rBcontent = try! Data(contentsOf: Bundle.main.url(forResource: "readback", withExtension: "grmr")!)
            let rBjsonDictionary = try! JSONSerialization.jsonObject(with: rBcontent, options: JSONSerialization.ReadingOptions.mutableContainers) as! [AnyHashable: Any]
            let _ = lmGenerator.generateGrammar(from: rBjsonDictionary, withFilesNamed: "READBACK", forAcousticModelAtPath: OEAcousticModel.path(toModel: "AcousticModelEnglish"))
            self.readBackLangaugeModel = lmGenerator.pathToSuccessfullyGeneratedGrammar(withRequestedName: "READBACK")
            self.readBackDictionary = lmGenerator.pathToSuccessfullyGeneratedDictionary(withRequestedName: "READBACK")
            
        }
    
       
        
        /**
         Method for manually parsing wav for speech rec
         - parameter wavPath: path to wav to be parsed
         */
        open func parseWav(_ wavPath: String) {
    OEPocketsphinxController.sharedInstance().runRecognitionOnWavFile(atPath: wavPath, usingLanguageModelAtPath: self.generalLangaugeModel, dictionaryAtPath: self.generalDictionary, acousticModelAtPath: OEAcousticModel.path(toModel: "AcousticModelEnglish"), languageModelIsJSGF: true)
        }
    
        
        /**
         Method for spooling up OpenEars speech rec
         - parameter grammarType:   grammar type to be used for speech rec
         - parameter appendGeneral: whether to append the general grammar to the grammar file
         */
        open func startDetectingSpeech() {
            try! AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playAndRecord, mode: AVAudioSession.sharedInstance().mode)
            let inputs = AVAudioSession.sharedInstance().availableInputs
    
            for input in inputs! {
                if(input.portType.rawValue == "MicrophoneWired") {
                    try! AVAudioSession.sharedInstance().setPreferredInput(input)
                }
            }
    
            if (OEPocketsphinxController.sharedInstance().isListening) {
                self.stopDetectingSpeech()
            }
    
            //might delete and use default - VoiceChat includes system sounds...
            OEPocketsphinxController.sharedInstance().audioMode = "VoiceChat"
            do { try OEPocketsphinxController.sharedInstance().setActive(true) } catch {}
            OEPocketsphinxController.sharedInstance().startListeningWithLanguageModel(atPath: self.generalLangaugeModel, dictionaryAtPath: self.generalDictionary, acousticModelAtPath: OEAcousticModel.path(toModel: "AcousticModelEnglish"), languageModelIsJSGF: true)
        }
    
        
        /**
         Method for OpenEars tear down
         */
        open func stopDetectingSpeech() {
            OEPocketsphinxController.sharedInstance().stopListening()
        }
    
        
        /**
         Method for suspending speech rec without tear down
         */
        open func suspendDetectingSpeech() {
            print("SUSPEND")
            OEPocketsphinxController.sharedInstance().suspendRecognition()
        }
    
        
        /**
         Method for resuming suspended speech rec
         */
        open func resumeDetectingSpeech() {
            print("RESUME")
            OEPocketsphinxController.sharedInstance().resumeRecognition()
        }
    
        
        /**
         Method handler for speech rec hypothesis
         - parameter hypothesis:       Open ears text from speech
         - parameter recognitionScore: confidence
         - parameter utteranceID:      utterance id
         */
        open func pocketsphinxDidReceiveHypothesis(_ hypothesis: String!, recognitionScore: String!, utteranceID: String!) {
            sharedSpeechRecParser.parseSpeechRec(hypothesis)
        }
        
        
         
        /**
         Method handler for detecting of speech
         */
        open func pocketsphinxDidDetectSpeech() {
            NotificationCenter.default.post(name: Foundation.Notification.Name(rawValue: "SpeechStarted"), object: nil, userInfo: nil) //listened for by MicButton
        }
    
        /**
         Method handler for catching speech rec tear down
         */
        open func pocketsphinxDidStopListening() {
            NotificationCenter.default.post(name: Foundation.Notification.Name(rawValue: "SpeechStopped"), object: nil, userInfo: nil) //listened for by MicButton
        }
    
        
        /**
         Method handler for catching suspend of speech rec
         */
        open func pocketsphinxDidSuspendRecognition() {
            NotificationCenter.default.post(name: Foundation.Notification.Name(rawValue: "SpeechSuspended"), object: nil, userInfo: nil) //listened for by MicButton
        }
    
        
        /**
         Method handler for catching resume of speech rec
         */
        open func pocketsphinxDidResumeRecognition() {
            NotificationCenter.default.post(name: Foundation.Notification.Name(rawValue: "SpeechResumed"), object: nil, userInfo: nil) //listened for by MicButton
        }
        
    }
    
    #1032687
    Halle Winkler
    Politepix

    Ah, I would not really expect this to work during suspension, to be honest. Starting and stopping should be very quick, have you tried that and timed it?

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.