PocketsphinxController plus Nuance SDK breaks AudioSessionManager in iOS6

Home Forums OpenEars PocketsphinxController plus Nuance SDK breaks AudioSessionManager in iOS6

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

  • Author
    Posts
  • #11285
    explodingphone
    Participant

    I have recently tested my app on iOS6 as a client was experiencing problems with crashing every time Open Ears tried to start listening for speech recognition.

    The crash seems to happen once the device calls – (void)pocketsphinxDidStartListening; but it doesn’t seem to get any audio input.

    Here is the output of _pocketsphinxController.verbosePocketSphinx = TRUE;


    INFO: cmd_ln.c(706): Parsing command line:
    \
    -lm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.DMP \
    -dict /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic \
    -hmm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app \
    -lw 6.500000 \
    -maxhmmpf 3000 \
    -samprate 16000

    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -alpha 0.97 9.700000e-01
    -argfile
    -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
    -bghist no no
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 8.0
    -compallsen no no
    -debug 0
    -dict /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic
    -dictcase no no
    -dither no no
    -doublebw no no
    -ds 1 1
    -fdict
    -feat 1s_c_d_dd 1s_c_d_dd
    -featparams
    -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/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app
    -input_endian little little
    -jsgf
    -kdmaxbbi -1 -1
    -kdmaxdepth 0 0
    -kdtree
    -latsize 5000 5000
    -lda
    -ldadim 0 0
    -lextreedump 0 0
    -lifter 0 0
    -lm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.DMP
    -lmctl
    -lmname default default
    -logbase 1.0001 1.000100e+00
    -logfn
    -logspec no no
    -lowerf 133.33334 1.333333e+02
    -lpbeam 1e-40 1.000000e-40
    -lponlybeam 7e-29 7.000000e-29
    -lw 6.5 6.500000e+00
    -maxhmmpf -1 3000
    -maxnewoov 20 20
    -maxwpf -1 -1
    -mdef
    -mean
    -mfclogdir
    -min_endfr 0 0
    -mixw
    -mixwfloor 0.0000001 1.000000e-07
    -mllr
    -mmap yes yes
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 40
    -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-5 1.000000e-05
    -pl_window 0 0
    -rawlogdir
    -remove_dc no no
    -round_filters yes yes
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -sendump
    -senlogdir
    -senmgau
    -silprob 0.005 5.000000e-03
    -smoothspec no no
    -svspec
    -tmat
    -tmatfloor 0.0001 1.000000e-04
    -topn 4 4
    -topn_beam 0 0
    -toprule
    -transform legacy legacy
    -unit_area yes yes
    -upperf 6855.4976 6.855498e+03
    -usewdphones no no
    -uw 1.0 1.000000e+00
    -var
    -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

    2012-09-25 15:18:34.827 test[791:907] Pocketsphinx is starting up.
    2012-09-25 15:18:34.861 test[791:907] [NMSP_ERROR] check status Error: 696e6974 init -> line: 318
    INFO: cmd_ln.c(706): Parsing command line:
    \
    -nfilt 20 \
    -lowerf 1 \
    -upperf 4000 \
    -wlen 0.025 \
    -transform dct \
    -round_filters no \
    -remove_dc yes \
    -svspec 0-12/13-25/26-38 \
    -feat 1s_c_d_dd \
    -agc none \
    -cmn current \
    -cmninit 47 \
    -varnorm no

    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -alpha 0.97 9.700000e-01
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 47
    -dither no no
    -doublebw no no
    -feat 1s_c_d_dd 1s_c_d_dd
    -frate 100 100
    -input_endian little little
    -lda
    -ldadim 0 0
    -lifter 0 0
    -logspec no no
    -lowerf 133.33334 1.000000e+00
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 20
    -remove_dc no yes
    -round_filters yes no
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -smoothspec no no
    -svspec 0-12/13-25/26-38
    -transform legacy dct
    -unit_area yes yes
    -upperf 6855.4976 4.000000e+03
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear

    -wlen 0.025625 2.500000e-02

    INFO: acmod.c(250): Parsed model-specific feature parameters from /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/feat.params
    INFO: feat.c(713): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='current', VARNORM='no', AGC='none'
    INFO: cmn.c(142): mean[0]= 12.00, mean[1..12]= 0.0
    INFO: acmod.c(171): Using subvector specification 0-12/13-25/26-38
    INFO: mdef.c(517): Reading model definition: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/mdef
    INFO: mdef.c(528): Found byte-order mark BMDF, assuming this is a binary mdef file
    INFO: bin_mdef.c(336): Reading binary model definition: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/mdef
    INFO: bin_mdef.c(513): 50 CI-phone, 143047 CD-phone, 3 emitstate/phone, 150 CI-sen, 5150 Sen, 27135 Sen-Seq
    INFO: tmat.c(205): Reading HMM transition probability matrices: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/transition_matrices
    INFO: acmod.c(125): Attempting to use SCHMM computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: s2_semi_mgau.c(995): Loading senones from dump file /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/sendump
    INFO: s2_semi_mgau.c(1019): BEGIN FILE FORMAT DESCRIPTION
    INFO: s2_semi_mgau.c(1114): Using memory-mapped I/O for senones
    INFO: s2_semi_mgau.c(1391): Maximum top-N: 4 Top-N beams: 0 0 0
    INFO: dict.c(317): Allocating 4127 * 20 bytes (80 KiB) for word entries
    INFO: dict.c(332): Reading main dictionary: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic
    INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(335): 20 words read
    INFO: dict.c(341): Reading filler dictionary: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/noisedict
    INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(344): 11 words read
    INFO: dict2pid.c(400): Building PID tables for dictionary
    INFO: dict2pid.c(408): Allocating 50^3 * 2 bytes (244 KiB) for word-initial triphones
    INFO: dict2pid.c(135): Allocated 30200 bytes (29 KiB) for word-final triphones
    INFO: dict2pid.c(199): Allocated 30200 bytes (29 KiB) for single-phone word triphones
    INFO: ngram_model_arpa.c(84): No \data\ mark in LM file
    INFO: ngram_model_dmp.c(146): Will use memory-mapped I/O for LM file
    INFO: ngram_model_dmp.c(201): ngrams 1=17, 2=28, 3=26
    INFO: ngram_model_dmp.c(248): 17 = LM.unigrams(+trailer) read
    INFO: ngram_model_dmp.c(298): 28 = LM.bigrams(+trailer) read
    INFO: ngram_model_dmp.c(326): 26 = LM.trigrams read
    INFO: ngram_model_dmp.c(353): 7 = LM.prob2 entries read
    INFO: ngram_model_dmp.c(375): 7 = LM.bo_wt2 entries read
    INFO: ngram_model_dmp.c(398): 3 = LM.prob3 entries read
    INFO: ngram_model_dmp.c(428): 1 = LM.tseg_base entries read
    INFO: ngram_model_dmp.c(486): 17 = ascii word strings read
    INFO: ngram_search_fwdtree.c(99): 13 unique initial diphones
    INFO: ngram_search_fwdtree.c(147): 0 root, 0 non-root channels, 12 single-phone words
    INFO: ngram_search_fwdtree.c(186): Creating search tree
    INFO: ngram_search_fwdtree.c(191): before: 0 root, 0 non-root channels, 12 single-phone words
    INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 185
    INFO: ngram_search_fwdtree.c(338): after: 13 root, 57 non-root channels, 11 single-phone words
    INFO: ngram_search_fwdflat.c(167): fwdflat: min_ef_width = 4, max_sf_win = 25
    makeFullPathname /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Library/Application Support/vst_dns_cache.dat
    2012-09-25 15:18:35.192 test[791:5b03] 15:18:35.192 shm_open failed: "AppleAURemoteIO.i.72497" (23) flags=0x2 errno=2
    2012-09-25 15:18:35.197 test[791:5b03] 15:18:35.193 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:18:35.199 test[791:5b03] 15:18:35.200 shm_open failed: "AppleAURemoteIO.i.72497" (23) flags=0x2 errno=2
    2012-09-25 15:18:35.201 test[791:5b03] 15:18:35.201 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:18:35.275 test[791:5b03] 15:18:35.275 shm_open failed: "AppleAURemoteIO.i.72497" (23) flags=0x2 errno=2
    2012-09-25 15:18:35.278 test[791:5b03] 15:18:35.278 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:18:35.883 test[791:907] Pocketsphinx calibration has started.
    2012-09-25 15:18:38.126 test[791:907] Setting up the continuous recognition loop has failed for some reason, please turn on OPENEARSLOGGING in OpenEarsConfig.h to learn more.
    2012-09-25 15:18:38.129 test[791:907] Pocketsphinx calibration is complete.
    2012-09-25 15:18:38.130 test[791:907] Pocketsphinx is now listening.
    2012-09-25 15:19:20.518 test[791:7103] [NMSP_ERROR] Session idle for too long timer fired, disconnecting.

    The oddest part of this situation is that iOS5 never caused any issue like this, so I’m fairly sure it’s in the upgrade. I’ve installed the lasted OpenEars framework to be sure, but that hasn’t had much impact.

    I’ve searched for the CAListenerProxy errors but now found anything particularly useful.

    Is this a known issue? Any ideas would be appreciated please.

    #11286
    Halle Winkler
    Politepix

    OK, I haven’t heard of this before but it looks like something is going awry with the audio session. OpenEarsLogging turns on verbosity for the audio session, can you run your test again with [OpenEarsLogging startOpenEarsLogging] running and show me the output? Is there anything special about the app as far as the audio session or other media objects goes?

    #11287
    explodingphone
    Participant

    There’s nothing particularly special about the audio session or anything. Nuance Dragon SDK is there to allow for long text entry, but this isn’t allocated or initialised by the time this crash is happening, and they played together nicely in iOS5.

    Open Ears logging:

    2012-09-25 15:38:42.943 test[819:907] Starting OpenEars logging for OpenEars version {{{{1.2.2}}}} on device: iPhone running iOS version: 6.000000
    2012-09-25 15:38:42.946 test[819:907] Normalized array contains the following entries:
    (
    ...
    )
    2012-09-25 15:38:42.952 test[819:907] Starting dynamic language model generation
    2012-09-25 15:38:42.958 test[819:907] Able to open /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.corpus for reading
    2012-09-25 15:38:42.960 test[819:907] Able to open /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar_pipe.txt for writing
    2012-09-25 15:38:42.962 test[819:907] Starting text2wfreq_impl
    2012-09-25 15:38:42.985 test[819:907] Done with text2wfreq_impl
    2012-09-25 15:38:42.993 test[819:907] Able to open /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar_pipe.txt for reading.
    2012-09-25 15:38:42.997 test[819:907] Able to open /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.vocab for reading.
    2012-09-25 15:38:43.002 test[819:907] Starting wfreq2vocab
    2012-09-25 15:38:43.007 test[819:907] Done with wfreq2vocab
    2012-09-25 15:38:43.012 test[819:907] Starting text2idngram
    2012-09-25 15:38:43.034 test[819:907] Done with text2idngram
    2012-09-25 15:38:43.039 test[819:907] Starting idngram2lm

    2012-09-25 15:38:43.059 test[819:907] Done with idngram2lm
    2012-09-25 15:38:43.060 test[819:907] Starting sphinx_lm_convert
    2012-09-25 15:38:43.064 test[819:907] Finishing sphinx_lm_convert
    2012-09-25 15:38:43.070 test[819:907] Done creating language model with CMUCLMTK in 0.116787 seconds.
    2012-09-25 15:38:43.367 test[819:907] I'm done running performDictionaryLookup and it took 0.193136 seconds
    2012-09-25 15:38:43.375 test[819:907] I'm done running dynamic language model generation and it took 370276723.375013 seconds
    2012-09-25 15:38:46.053 test[819:907] A sample rate was requested that isn't one of the two supported values of 16000 or 8000 so we will use the default of 16000.
    2012-09-25 15:38:46.057 test[819:907] The audio session has never been initialized so we will do that now.
    2012-09-25 15:38:46.058 test[819:907] Checking and resetting all audio session settings.
    2012-09-25 15:38:46.060 test[819:907] audioCategory is incorrect, we will change it.
    2012-09-25 15:38:46.061 test[819:907] audioCategory is now on the correct setting of kAudioSessionCategory_PlayAndRecord.
    2012-09-25 15:38:46.063 test[819:907] bluetoothInput is incorrect, we will change it.
    2012-09-25 15:38:46.064 test[819:907] bluetooth input is now on the correct setting of 1.
    2012-09-25 15:38:46.065 test[819:907] categoryDefaultToSpeaker is incorrect, we will change it.
    2012-09-25 15:38:46.067 test[819:907] CategoryDefaultToSpeaker is now on the correct setting of 1.
    2012-09-25 15:38:46.068 test[819:907] preferredBufferSize is incorrect, we will change it.
    2012-09-25 15:38:46.069 test[819:907] PreferredBufferSize is now on the correct setting of 0.128000.
    2012-09-25 15:38:46.070 test[819:907] preferredSampleRateCheck is incorrect, we will change it.
    2012-09-25 15:38:46.072 test[819:907] preferred hardware sample rate is now on the correct setting of 16000.000000.
    2012-09-25 15:38:46.139 test[819:907] AudioSessionManager startAudioSession has reached the end of the initialization.
    2012-09-25 15:38:46.140 test[819:907] Exiting startAudioSession.
    2012-09-25 15:38:46.143 test[819:6607] Recognition loop has started
    INFO: cmd_ln.c(706): Parsing command line:
    \
    -lm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.DMP \
    -dict /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic \
    -hmm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app \
    -lw 6.500000 \
    -maxhmmpf 3000 \
    -samprate 16000

    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -alpha 0.97 9.700000e-01
    -argfile
    -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
    -bghist no no
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 8.0
    -compallsen no no
    -debug 0
    -dict /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic
    -dictcase no no
    -dither no no
    -doublebw no no
    -ds 1 1
    -fdict
    -feat 1s_c_d_dd 1s_c_d_dd
    -featparams
    -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/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app
    -input_endian little little
    -jsgf
    -kdmaxbbi -1 -1
    -kdmaxdepth 0 0
    -kdtree
    -latsize 5000 5000
    -lda
    -ldadim 0 0
    -lextreedump 0 0
    -lifter 0 0
    -lm /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.DMP
    -lmctl
    -lmname default default
    -logbase 1.0001 1.000100e+00
    -logfn
    -logspec no no
    -lowerf 133.33334 1.333333e+02
    -lpbeam 1e-40 1.000000e-40
    -lponlybeam 7e-29 7.000000e-29
    -lw 6.5 6.500000e+00
    -maxhmmpf -1 3000
    -maxnewoov 20 20
    -maxwpf -1 -1
    -mdef
    -mean
    -mfclogdir
    -min_endfr 0 0
    -mixw
    -mixwfloor 0.0000001 1.000000e-07
    -mllr
    -mmap yes yes
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 40
    -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-5 1.000000e-05
    -pl_window 0 0
    -rawlogdir
    -remove_dc no no
    -round_filters yes yes
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -sendump
    -senlogdir
    -senmgau
    -silprob 0.005 5.000000e-03
    -smoothspec no no
    -svspec
    -tmat
    -tmatfloor 0.0001 1.000000e-04
    -topn 4 4
    -topn_beam 0 0
    -toprule
    -transform legacy legacy
    -unit_area yes yes
    -upperf 6855.4976 6.855498e+03
    -usewdphones no no
    -uw 1.0 1.000000e+00
    -var
    -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

    2012-09-25 15:38:46.156 test[819:907] Pocketsphinx is starting up.
    2012-09-25 15:38:46.194 test[819:907] [NMSP_ERROR] check status Error: 696e6974 init -> line: 318
    INFO: cmd_ln.c(706): Parsing command line:
    \
    -nfilt 20 \
    -lowerf 1 \
    -upperf 4000 \
    -wlen 0.025 \
    -transform dct \
    -round_filters no \
    -remove_dc yes \
    -svspec 0-12/13-25/26-38 \
    -feat 1s_c_d_dd \
    -agc none \
    -cmn current \
    -cmninit 47 \
    -varnorm no

    Current configuration:
    [NAME] [DEFLT] [VALUE]
    -agc none none
    -agcthresh 2.0 2.000000e+00
    -alpha 0.97 9.700000e-01
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 47
    -dither no no
    -doublebw no no
    -feat 1s_c_d_dd 1s_c_d_dd
    -frate 100 100
    -input_endian little little
    -lda
    -ldadim 0 0
    -lifter 0 0
    -logspec no no
    -lowerf 133.33334 1.000000e+00
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 20
    -remove_dc no yes
    -round_filters yes no
    -samprate 16000 1.600000e+04
    -seed -1 -1
    -smoothspec no no
    -svspec 0-12/13-25/26-38
    -transform legacy dct
    -unit_area yes yes
    -upperf 6855.4976 4.000000e+03
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear
    -wlen 0.025625 2.500000e-02

    INFO: acmod.c(250): Parsed model-specific feature parameters from /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/feat.params
    INFO: feat.c(713): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='current', VARNORM='no', AGC='none'
    INFO: cmn.c(142): mean[0]= 12.00, mean[1..12]= 0.0
    INFO: acmod.c(171): Using subvector specification 0-12/13-25/26-38
    INFO: mdef.c(517): Reading model definition: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/mdef
    INFO: mdef.c(528): Found byte-order mark BMDF, assuming this is a binary mdef file
    INFO: bin_mdef.c(336): Reading binary model definition: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/mdef
    INFO: bin_mdef.c(513): 50 CI-phone, 143047 CD-phone, 3 emitstate/phone, 150 CI-sen, 5150 Sen, 27135 Sen-Seq
    INFO: tmat.c(205): Reading HMM transition probability matrices: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/transition_matrices
    INFO: acmod.c(125): Attempting to use SCHMM computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/means
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/variances
    INFO: ms_gauden.c(292): 1 codebook, 3 feature, size:
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(294): 256x13
    INFO: ms_gauden.c(354): 0 variance values floored
    INFO: s2_semi_mgau.c(995): Loading senones from dump file /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/sendump
    INFO: s2_semi_mgau.c(1019): BEGIN FILE FORMAT DESCRIPTION
    INFO: s2_semi_mgau.c(1114): Using memory-mapped I/O for senones
    INFO: s2_semi_mgau.c(1391): Maximum top-N: 4 Top-N beams: 0 0 0
    INFO: dict.c(317): Allocating 4127 * 20 bytes (80 KiB) for word entries
    INFO: dict.c(332): Reading main dictionary: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Documents/OpenEarsDynamicGrammar.dic
    INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(335): 20 words read
    INFO: dict.c(341): Reading filler dictionary: /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/test.app/noisedict
    INFO: dict.c(211): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(344): 11 words read
    INFO: dict2pid.c(400): Building PID tables for dictionary
    INFO: dict2pid.c(408): Allocating 50^3 * 2 bytes (244 KiB) for word-initial triphones
    makeFullPathname /var/mobile/Applications/3EBCB88B-8610-4F6B-ACD0-016FB0B8024A/Library/Application Support/vst_dns_cache.dat
    INFO: dict2pid.c(135): Allocated 30200 bytes (29 KiB) for word-final triphones
    INFO: dict2pid.c(199): Allocated 30200 bytes (29 KiB) for single-phone word triphones
    INFO: ngram_model_arpa.c(84): No \data\ mark in LM file
    INFO: ngram_model_dmp.c(146): Will use memory-mapped I/O for LM file
    INFO: ngram_model_dmp.c(201): ngrams 1=17, 2=28, 3=26
    INFO: ngram_model_dmp.c(248): 17 = LM.unigrams(+trailer) read
    INFO: ngram_model_dmp.c(298): 28 = LM.bigrams(+trailer) read
    INFO: ngram_model_dmp.c(326): 26 = LM.trigrams read
    INFO: ngram_model_dmp.c(353): 7 = LM.prob2 entries read
    INFO: ngram_model_dmp.c(375): 7 = LM.bo_wt2 entries read
    INFO: ngram_model_dmp.c(398): 3 = LM.prob3 entries read
    INFO: ngram_model_dmp.c(428): 1 = LM.tseg_base entries read
    INFO: ngram_model_dmp.c(486): 17 = ascii word strings read
    INFO: ngram_search_fwdtree.c(99): 13 unique initial diphones
    INFO: ngram_search_fwdtree.c(147): 0 root, 0 non-root channels, 12 single-phone words
    INFO: ngram_search_fwdtree.c(186): Creating search tree
    INFO: ngram_search_fwdtree.c(191): before: 0 root, 0 non-root channels, 12 single-phone words
    INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 185
    INFO: ngram_search_fwdtree.c(338): after: 13 root, 57 non-root channels, 11 single-phone words
    INFO: ngram_search_fwdflat.c(167): fwdflat: min_ef_width = 4, max_sf_win = 25
    2012-09-25 15:38:46.385 test[819:6607] Starting openAudioDevice on the device.
    2012-09-25 15:38:46.388 test[819:6607] Audio unit wrapper successfully created.
    2012-09-25 15:38:46.407 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.408 test[819:907] There has been a change of category
    2012-09-25 15:38:46.409 test[819:907] The previous audio route was SpeakerAndMicrophone
    2012-09-25 15:38:46.535 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is Speaker
    2012-09-25 15:38:46.536 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.541 test[819:907] There has been a change of category
    2012-09-25 15:38:46.542 test[819:6607] Set audio route to Speaker
    2012-09-25 15:38:46.542 test[819:907] The previous audio route was MicrophoneBuiltIn
    2012-09-25 15:38:46.544 test[819:6607] Checking and resetting all audio session settings.
    2012-09-25 15:38:46.545 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is Speaker
    2012-09-25 15:38:46.546 test[819:6607] audioCategory is incorrect, we will change it.
    2012-09-25 15:38:46.782 test[819:6607] audioCategory is now on the correct setting of kAudioSessionCategory_PlayAndRecord.
    2012-09-25 15:38:46.786 test[819:6607] bluetoothInput is incorrect, we will change it.
    2012-09-25 15:38:46.791 test[819:5c03] 15:38:46.792 shm_open failed: "AppleAURemoteIO.i.724ba" (23) flags=0x2 errno=2
    2012-09-25 15:38:46.795 test[819:5c03] 15:38:46.795 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.796 test[819:5c03] 15:38:46.797 shm_open failed: "AppleAURemoteIO.i.724ba" (23) flags=0x2 errno=2
    2012-09-25 15:38:46.797 test[819:5c03] 15:38:46.798 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.805 test[819:6607] bluetooth input is now on the correct setting of 1.
    2012-09-25 15:38:46.808 test[819:6607] categoryDefaultToSpeaker is incorrect, we will change it.
    2012-09-25 15:38:46.808 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.810 test[819:907] There has been a change of category
    2012-09-25 15:38:46.811 test[819:907] The previous audio route was Speaker
    2012-09-25 15:38:46.893 test[819:6607] CategoryDefaultToSpeaker is now on the correct setting of 1.
    2012-09-25 15:38:46.895 test[819:6607] preferredBufferSize is correct, we will leave it as it is.
    2012-09-25 15:38:46.897 test[819:6607] preferredSampleRateCheck is correct, we will leave it as it is.
    2012-09-25 15:38:46.896 test[819:5c03] 15:38:46.896 shm_open failed: "AppleAURemoteIO.i.724ba" (23) flags=0x2 errno=2
    2012-09-25 15:38:46.898 test[819:6607] Setting the variables for the device and starting it.
    2012-09-25 15:38:46.900 test[819:6607] Looping through ringbuffer sections and pre-allocating them.
    2012-09-25 15:38:46.895 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is SpeakerAndMicrophone
    2012-09-25 15:38:46.899 test[819:5c03] 15:38:46.899 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.907 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.908 test[819:907] There has been a change of category
    2012-09-25 15:38:46.909 test[819:907] The previous audio route was ReceiverAndMicrophone
    2012-09-25 15:38:47.497 test[819:6607] Started audio output unit.
    2012-09-25 15:38:47.499 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is SpeakerAndMicrophone
    2012-09-25 15:38:47.500 test[819:6607] Calibration has started
    2012-09-25 15:38:47.500 test[819:907] Pocketsphinx calibration has started.
    2012-09-25 15:38:47.624 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:47.752 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:47.880 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.008 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.136 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.264 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.392 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.520 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.648 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.776 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:48.904 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.032 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.160 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.288 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.416 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.544 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.672 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.744 test[819:6607] cont_ad_calib failed
    2012-09-25 15:38:49.746 test[819:6607] Calibration has completed
    2012-09-25 15:38:49.746 test[819:907] Setting up the continuous recognition loop has failed for some reason, please turn on OPENEARSLOGGING in OpenEarsConfig.h to learn more.
    2012-09-25 15:38:49.748 test[819:907] Pocketsphinx calibration is complete.
    2012-09-25 15:38:49.749 test[819:6607] Project has these words in its dictionary:
    ...

    2012-09-25 15:38:49.750 test[819:6607] Listening.
    2012-09-25 15:38:49.751 test[819:907] Pocketsphinx is now listening.
    2012-09-25 15:38:49.800 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:49.928 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.056 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.184 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.312 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.440 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.568 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.696 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.824 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:50.952 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.080 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.208 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.336 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.464 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.592 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.720 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.848 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:51.976 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.104 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.232 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.360 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.488 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.616 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.744 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:52.872 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.000 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.128 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.256 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.384 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.512 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.640 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.768 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:53.896 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.024 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.152 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.280 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.408 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.536 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.664 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.792 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:54.920 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.048 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.176 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.304 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.432 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.560 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.688 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.816 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:55.944 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.072 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.200 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.328 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.456 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.584 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.712 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.840 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:56.968 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.096 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.224 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.352 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.480 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.608 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    2012-09-25 15:38:57.736 test[819:8703] Audio Unit render error: kAudioUnitErr_CannotDoInCurrentContext
    ...

    #11288
    Halle Winkler
    Politepix

    Which iPhone?

    #11289
    explodingphone
    Participant

    This is on an iPhone 4S with iOS6.

    #11290
    Halle Winkler
    Politepix

    OK, I’ll check it out and get back to you.

    #11291
    explodingphone
    Participant

    Cheers

    #11292
    Halle Winkler
    Politepix

    Do you see this on the same device and OS with the sample app?

    #11293
    explodingphone
    Participant

    No, the sample app seems to run fine, which seems to indicate that it’s not a library issue. It’s strange that the app doesn’t seem to be able to get audio though.

    #11294
    Halle Winkler
    Politepix

    OK, since that means that it is something relating to code that I don’t have access to, let me explain what is weird in the logging and maybe it will point you towards what to check out.

    Early on in the app session your category is set (correctly) the first time and we’d normally expect it to remain that way for the rest of the app session unless it is overridden by a call to audiosession or AVAudioSession or the use of a media object like AVPlayer or MPMoviePlayerController:

    2012-09-25 15:38:46.061 test[819:907] audioCategory is now on the correct setting of kAudioSessionCategory_PlayAndRecord.

    Then some very normal stuff is done to bluetooth, default to speaker, etc, with no errors returned. At this point the audio session settings look very normal and if an attempt were made here to start the audio unit I would expect it to work.

    Then the device has some kind of DNS library issue which might be unrelated:

    2012-09-25 15:38:46.194 test[819:907] [NMSP_ERROR] check status Error: 696e6974 init -> line: 318

    However, if this is an automatic function of the Nuance SDK it is a sign that its objects might be instantiated at this point.

    PocketsphinxController continues starting up and gets as far as it can without any errors before it needs to start the audio unit, which is when things get weird:

    2012-09-25 15:38:46.407 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.408 test[819:907] There has been a change of category
    2012-09-25 15:38:46.409 test[819:907] The previous audio route was SpeakerAndMicrophone
    2012-09-25 15:38:46.535 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is Speaker
    2012-09-25 15:38:46.536 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.541 test[819:907] There has been a change of category
    2012-09-25 15:38:46.542 test[819:6607] Set audio route to Speaker
    2012-09-25 15:38:46.542 test[819:907] The previous audio route was MicrophoneBuiltIn
    2012-09-25 15:38:46.544 test[819:6607] Checking and resetting all audio session settings.
    2012-09-25 15:38:46.545 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is Speaker
    2012-09-25 15:38:46.546 test[819:6607] audioCategory is incorrect, we will change it.
    2012-09-25 15:38:46.782 test[819:6607] audioCategory is now on the correct setting of kAudioSessionCategory_PlayAndRecord.
    2012-09-25 15:38:46.786 test[819:6607] bluetoothInput is incorrect, we will change it.
    2012-09-25 15:38:46.791 test[819:5c03] 15:38:46.792 shm_open failed: “AppleAURemoteIO.i.724ba” (23) flags=0x2 errno=2
    2012-09-25 15:38:46.795 test[819:5c03] 15:38:46.795 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.796 test[819:5c03] 15:38:46.797 shm_open failed: “AppleAURemoteIO.i.724ba” (23) flags=0x2 errno=2
    2012-09-25 15:38:46.797 test[819:5c03] 15:38:46.798 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.805 test[819:6607] bluetooth input is now on the correct setting of 1.
    2012-09-25 15:38:46.808 test[819:6607] categoryDefaultToSpeaker is incorrect, we will change it.
    2012-09-25 15:38:46.808 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.810 test[819:907] There has been a change of category
    2012-09-25 15:38:46.811 test[819:907] The previous audio route was Speaker
    2012-09-25 15:38:46.893 test[819:6607] CategoryDefaultToSpeaker is now on the correct setting of 1.
    2012-09-25 15:38:46.895 test[819:6607] preferredBufferSize is correct, we will leave it as it is.
    2012-09-25 15:38:46.897 test[819:6607] preferredSampleRateCheck is correct, we will leave it as it is.
    2012-09-25 15:38:46.896 test[819:5c03] 15:38:46.896 shm_open failed: “AppleAURemoteIO.i.724ba” (23) flags=0x2 errno=2
    2012-09-25 15:38:46.898 test[819:6607] Setting the variables for the device and starting it.
    2012-09-25 15:38:46.900 test[819:6607] Looping through ringbuffer sections and pre-allocating them.
    2012-09-25 15:38:46.895 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is SpeakerAndMicrophone
    2012-09-25 15:38:46.899 test[819:5c03] 15:38:46.899 AURemoteIO::ChangeHardwareFormats: error 3
    2012-09-25 15:38:46.907 test[819:907] Audio route has changed for the following reason:
    2012-09-25 15:38:46.908 test[819:907] There has been a change of category
    2012-09-25 15:38:46.909 test[819:907] The previous audio route was ReceiverAndMicrophone
    2012-09-25 15:38:47.497 test[819:6607] Started audio output unit.
    2012-09-25 15:38:47.499 test[819:907] This is not a case in which OpenEars performs a route change voluntarily. At the close of this function, the audio route is SpeakerAndMicrophone

    I count 4 category changes and 4 route changes resulting from it, all in approximately one second. That seems like something trying to override the OpenEars settings in an automatic way. You can see that at the moment that the audio unit begins, it isn’t set to a category which has a recording input, because the next thing that happens is that OpenEarsLogging announces that there was a route change to a route that contains a recording input (the last line above). The fact that the audio unit is trying to start at a time in which it seems like it has a mic input, then it disappears while the unit starts, is probably the origin of the crash.

    Are you completely positive that there is nothing going on with your Nuance SDK at the time that PocketsphinxController has started? Because that would make a lot of sense as the source of objects which are listening for audio session changes and automatically reacting to them. Otherwise, do a case-insensitive search of your app for “audiosession” and see if there are any AudioSession or AVAudioSession calls made by the app. You might also want to look for AVPlayer, AVAudioRecorder and/or MPMovieController objects (or other objects that assert their own audio session settings) that are instantiated at that time. I will keep looking into it in the meantime so please let me know if you find a cause in your app.

    #11295
    Halle Winkler
    Politepix

    Another approach for locating the conflict would be to make a copy of your app and to start removing functionality in stages until PocketsphinxController starts working again, at which point you can suspect the last thing your removed as at least a partial cause. I would be very interested in more info about this since it is certainly not something I’m blasé about if it is an interaction with OpenEars.

    #11298
    explodingphone
    Participant

    Hey, I’ve had another look at the conflict that’s occurring here. It is Nuance that is causing the issue, I’d not dug deep enough. Let me run you through the code.


    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    XPLogInViewController *logInViewController = [[XPLogInViewController alloc] initWithNibName:@"XPLogInViewController" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:logInViewController];
    self.window.rootViewController = self.navigationController;
    ...
    }

    But in XPLogInViewController I add a subview with:

    - (id)initWithFrame:(CGRect)frame
    {
    self = [super initWithFrame:frame];
    if (self) {
    ...
    [SpeechKit setupWithID:@"......"
    host:@"sandbox.nmdp.nuancemobility.net"
    port:443
    useSSL:NO
    delegate:nil];
    }

    So Nuance SDK is instantiated (but not actually ‘listening’) when I try to get PocketSphinx going.

    As the whole system seems to work fine in iOS5, I think that Nuance isn’t allowing PocketSphinx to get at the hardware. Does that sound plausible? I’ll get on and see if I can contact Nuance and see what they suggest.

    #11299
    Halle Winkler
    Politepix

    Yup, that matches my expectation. Here is what I would guess is going on:

    There are a few different iOS objects which take over the audio session and do not return it to the state it was in after they are no longer instantiated. Specifically, some of them turn off recording. So if you are responsible for an SDK that does continuous listening (e.g. both OpenEars and Nuance) you will get a lot of complaints about it ceasing to work after using AVPlayer or similar, because the iOS object removes the audio input. So you will put in a sanity check that makes sure to fix the audio session before your product does its thing.

    OpenEars does its sanity check when it re-opens the audio unit so that it is possible to play video while speech recognition is in suspended mode, since this is a very frequently-requested feature.

    The call you make to the Nuance object above almost certainly initializes their own listeners for audio session changes, which they deal with in their own way.

    I think that what you are seeing is that OpenEars is performing its sanity check before it tries to open its audio unit, discovers that Nuance has changed the audio session, fixes it, and Nuance discovers that OpenEars has changed the audio session, fixes it, comedy ensues.

    I can’t speculate about why it’s only happening with iOS6 but it could easily be a race condition that was always there but was resolving differently in iOS5.

    #11300
    Halle Winkler
    Politepix

    If you don’t mind, I’d like to change the title to mention the Nuance issue so it’s Google-able and so that casual readers of the forum don’t get the impression that OpenEars isn’t compatible with iOS6, OK with you?

    #11301
    explodingphone
    Participant

    Fine by me :)

    #11302
    Halle Winkler
    Politepix

    Thanks :)

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