Menu

Hello World Link Errors

Help
Tikiboy
2012-02-20
2012-09-22
  • Tikiboy

    Tikiboy - 2012-02-20

    Hey guys, I am trying to run the helloworld example of pocketsphinx on my
    windows vista machine. http://cmusphinx.sourceforge.net/wiki/tutorialpocketsp
    hinx

    I have downloaded the latest version of pocketsphinx and sphinxbase, compiled
    them without any problems using visual studio 2010 express. After that, i
    proceeded to creating a new project in visual studio, created the helloworld.c
    file (i merely copy-pasted the code listing in the above link). After that,
    naturally there were a lot of errors because i had not included any of
    pocketsphinx or sphinxbase's files. So i added the following into my include
    section:
    C:\Users\NTUAdmin\Desktop\silly\pocketsphinx\include
    C:\Users\NTUAdmin\Desktop\silly\sphinxbase\include

    After adding these include files, the helloworld.c no longer has any syntax
    errors. After that, i attempted to compile the codes and ended up with the
    following errors:
    1>------ Build started: Project: Difficult, Configuration: Debug Win32 ------
    1> hello_ps.c
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(15): warning C4129: 'N' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(15): warning C4129: 'D' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(15): warning C4129: 'H' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(15): warning C4129: 'p' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(15): warning C4129: 'm' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(16): warning C4129: 'N' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(16): warning C4129: 'D' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(16): warning C4129: 'H' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(16): warning C4129: 'p' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(16): warning C4129: 'm' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(17): warning C4129: 'N' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(17): warning C4129: 'D' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(17): warning C4129: 'H' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(17): warning C4129: 'p' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(17): warning C4129: 'm' :
    unrecognized character escape sequence
    1>c:\users\ntuadmin\documents\visual studio
    2010\projects\difficult\difficult\hello_ps.c(25): warning C4996: 'fopen': This
    function or variable may be unsafe. Consider using fopen_s instead. To disable
    deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(234) : see
    declaration of 'fopen'
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_free
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_end_utt
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol
    __imp__ps_process_raw referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_start_utt
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_get_hyp
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol
    __imp__ps_decode_raw referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_init
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__cmd_ln_init
    referenced in function _main
    1>hello_ps.obj : error LNK2019: unresolved external symbol __imp__ps_args
    referenced in function _main
    1>c:\Users\NTUAdmin\Documents\Visual Studio
    2010\Projects\Difficult\Debug\Difficult.exe : fatal error LNK1120: 9
    unresolved externals
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    I have no idea how to solve this. I tried searching for similar problems but
    most of them are rather unrelated.

    Thanks in advance for any help. :D

     
  • Nickolay V. Shmyrev

    You need to add pocketsphinx.dll and sphinxbase.dll to the project properies
    in linker section. You need to tell VS that you want to link your application
    to forementioned libraries.

    See for details

    http://msdn.microsoft.com/en-
    us/library/9yd93633.aspx

     
  • Tikiboy

    Tikiboy - 2012-02-20

    Hey, Thanks for your response, i appreciate it.

    After going through the link and some additional searching, i ended up
    following the solution posted here:

    The project has managed to compile now. I have linked the .lib and .dll files
    to the ones available in the bin-->DEBUG folder of sphinxbase and pocketsphinx
    respectively. I used the DEBUG version instead of the RELEASE version. So far
    no issues.

    Upon trying to run the program, i get the following print out on the command
    line:
    INFO: cmd_ln.c(691): Parsing command line:
    \
    -hmm C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/model/hmm/en_US/hub4ws
    j_sc_8k \
    -lm C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/model/lm/en/turtle.DMP
    \
    -dict C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/model/lm/en/turtle.di
    c

    Current configuration:

    -agc none none
    -agcthresh 2.0 2.000000e+000
    -alpha 0.97 9.700000e-001
    -ascale 20.0 2.000000e+001
    -aw 1 1
    -backtrace no no
    -beam 1e-48 1.000000e-048
    -bestpath yes yes
    -bestpathlw 9.5 9.500000e+000
    -bghist no no
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 8.0
    -compallsen no no
    -debug 0
    -dict C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/mod
    el/lm/en/turtle.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-008
    -frate 100 100
    -fsg
    -fsgusealtpron yes yes
    -fsgusefiller yes yes
    -fwdflat yes yes
    -fwdflatbeam 1e-64 1.000000e-064
    -fwdflatefwid 4 4
    -fwdflatlw 8.5 8.500000e+000
    -fwdflatsfwin 25 25
    -fwdflatwbeam 7e-29 7.000000e-029
    -fwdtree yes yes
    -hmm C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/mod
    el/hmm/en_US/hub4wsj_sc_8k
    -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 C:/Users/NTUAdmin/Desktop/Haiya/pocketsphinx/mod
    el/lm/en/turtle.DMP
    -lmctl
    -lmname default default
    -logbase 1.0001 1.000100e+000
    -logfn
    -logspec no no
    -lowerf 133.33334 1.333333e+002
    -lpbeam 1e-40 1.000000e-040
    -lponlybeam 7e-29 7.000000e-029
    -lw 6.5 6.500000e+000
    -maxhmmpf -1 -1
    -maxnewoov 20 20
    -maxwpf -1 -1
    -mdef
    -mean
    -mfclogdir
    -min_endfr 0 0
    -mixw
    -mixwfloor 0.0000001 1.000000e-007
    -mllr
    -mmap yes yes
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 40
    -nwpen 1.0 1.000000e+000
    -pbeam 1e-48 1.000000e-048
    -pip 1.0 1.000000e+000
    -pl_beam 1e-10 1.000000e-010
    -pl_pbeam 1e-5 1.000000e-005
    -pl_window 0 0
    -rawlogdir
    -remove_dc no no
    -round_filters yes yes
    -samprate 16000 1.600000e+004
    -seed -1 -1
    -sendump
    -senlogdir
    -senmgau
    -silprob 0.005 5.000000e-003
    -smoothspec no no
    -svspec
    -tmat
    -tmatfloor 0.0001 1.000000e-004
    -topn 4 4
    -topn_beam 0 0
    -toprule
    -transform legacy legacy
    -unit_area yes yes
    -upperf 6855.4976 6.855498e+003
    -usewdphones no no
    -uw 1.0 1.000000e+000
    -var
    -varfloor 0.0001 1.000000e-004
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear
    -wbeam 7e-29 7.000000e-029
    -wip 0.65 6.500000e-001
    -wlen 0.025625 2.562500e-002

    INFO: cmd_ln.c(691): 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 56,-3,1 \
    -varnorm no

    Current configuration:

    -agc none none
    -agcthresh 2.0 2.000000e+000
    -alpha 0.97 9.700000e-001
    -ceplen 13 13
    -cmn current current
    -cmninit 8.0 56,-3,1
    -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+000
    -ncep 13 13
    -nfft 512 512
    -nfilt 40 20
    -remove_dc no yes
    -round_filters yes no
    -samprate 16000 1.600000e+004
    -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+003
    -varnorm no no
    -verbose no no
    -warp_params
    -warp_type inverse_linear inverse_linear
    -wlen 0.025625 2.500000e-002

    INFO: acmod.c(242): Parsed model-specific feature parameters from
    C:/Users/NTUAd
    min/Desktop/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/feat.params
    INFO: feat.c(684): Initializing feature stream to type: '1s_c_d_dd',
    ceplen=13,
    CMN='current', VARNORM='no', AGC='none'
    INFO: cmn.c(142): mean= 12.00, mean= 0.0
    INFO: acmod.c(163): Using subvector specification 0-12/13-25/26-38
    INFO: mdef.c(520): Reading model definition:
    C:/Users/NTUAdmin/Desktop/Haiya/poc
    ketsphinx/model/hmm/en_US/hub4wsj_sc_8k/mdef
    INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef
    fi
    le
    INFO: bin_mdef.c(330): Reading binary model definition:
    C:/Users/NTUAdmin/Deskto
    p/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/mdef
    INFO: bin_mdef.c(507): 50 CI-phone, 143047 CD-phone, 3 emitstate/phone, 150
    CI-s
    en, 5150 Sen, 27135 Sen-Seq
    INFO: tmat.c(205): Reading HMM transition probability matrices:
    C:/Users/NTUAdmi
    n/Desktop/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/transition_matrices
    INFO: acmod.c(117): Attempting to use SCHMM computation module
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter:
    C:/Users/NTUAdmin/De
    sktop/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/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:
    C:/Users/NTUAdmin/De
    sktop/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/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(908): Loading senones from dump file
    C:/Users/NTUAdmin/Desk
    top/Haiya/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k/sendump
    INFO: s2_semi_mgau.c(932): BEGIN FILE FORMAT DESCRIPTION
    INFO: s2_semi_mgau.c(1027): Using memory-mapped I/O for senones
    INFO: s2_semi_mgau.c(1304): Maximum top-N: 4 Top-N beams: 0 0 0
    INFO: dict.c(306): Allocating 4217 * 20 bytes (82 KiB) for word entries
    INFO: dict.c(321): Reading main dictionary:
    C:/Users/NTUAdmin/Desktop/Haiya/pock
    etsphinx/model/lm/en/turtle.dic
    INFO: dict.c(212): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(324): 110 words read
    INFO: dict.c(330): Reading filler dictionary:
    C:/Users/NTUAdmin/Desktop/Haiya/po
    cketsphinx/model/hmm/en_US/hub4wsj_sc_8k/noisedict
    INFO: dict.c(212): Allocated 0 KiB for strings, 0 KiB for phones
    INFO: dict.c(333): 11 words read
    INFO: dict2pid.c(396): Building PID tables for dictionary
    INFO: dict2pid.c(404): Allocating 50^3 * 2 bytes (244 KiB) for word-initial
    trip
    hones
    INFO: dict2pid.c(131): Allocated 30200 bytes (29 KiB) for word-final triphones
    INFO: dict2pid.c(195): Allocated 30200 bytes (29 KiB) for single-phone word
    trip
    hones
    INFO: ngram_model_arpa.c(77): No \data\ mark in LM file
    INFO: ngram_model_dmp.c(142): Will use memory-mapped I/O for LM file
    INFO: ngram_model_dmp.c(196): ngrams 1=91, 2=212, 3=177
    INFO: ngram_model_dmp.c(242): 91 = LM.unigrams(+trailer) read
    INFO: ngram_model_dmp.c(291): 212 = LM.bigrams(+trailer) read
    INFO: ngram_model_dmp.c(317): 177 = LM.trigrams read
    INFO: ngram_model_dmp.c(342): 20 = LM.prob2 entries read
    INFO: ngram_model_dmp.c(362): 12 = LM.bo_wt2 entries read
    INFO: ngram_model_dmp.c(382): 12 = LM.prob3 entries read
    INFO: ngram_model_dmp.c(410): 1 = LM.tseg_base entries read
    INFO: ngram_model_dmp.c(466): 91 = ascii word strings read
    INFO: ngram_search_fwdtree.c(99): 67 unique initial diphones
    INFO: ngram_search_fwdtree.c(147): 0 root, 0 non-root channels, 15 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, 15
    singl
    e-phone words
    INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 328
    INFO: ngram_search_fwdtree.c(338): after: 67 root, 200 non-root channels, 14
    sin
    gle-phone words
    INFO: ngram_search_fwdflat.c(156): fwdflat: min_ef_width = 4, max_sf_win = 25
    Failed to open goforward.raw: No such file or directory
    Press any key to continue . . .

    So, at this point in time, i have 2 question.

    The first is, is the above print out expected? As in considering the parts
    prior to the "file not found", all those data on current configuration and
    plenty of INFO:, are they suppose to be there? Am i almost there in getting it
    to work or is it still messed up?

    The second is, where do i put the goforward.raw file? I tried putting it in
    the project folder and the same folder as the helloworld.exe(in this case, i
    named helloworld.exe as difficult.exe instead) file and in both instances it
    does not find it.

    Sorry to ask some rather fundamental questions, my foundation is in java so
    concepts of C and VS confuses me.

    Thanks for helping. :D

     
  • Nickolay V. Shmyrev

    The first is, is the above print out expected? As in considering the parts
    prior to the "file not found", all those data on current configuration and
    plenty of INFO:, are they suppose to be there? Am i almost there in getting it
    to work or is it still messed up?

    The output is expected

    The second is, where do i put the goforward.raw file? I tried putting it in
    the project folder and the same folder as the helloworld.exe(in this case, i
    named helloworld.exe as difficult.exe instead) file and in both instances it
    does not find it. Sorry to ask some rather fundamental questions, my
    foundation is in java so concepts of C and VS confuses me.

    You need to put it in the project folder. Current working directory is
    specified in project properties. If you are not sure where is it you can
    specify an absolute path to the file.

     
  • Tikiboy

    Tikiboy - 2012-02-20

    Thank you nshmyrev!

    After making the changes to use the absolute path it is finally working as
    intended, a days worth of work has now achieved something :D

    Thanks alot for your help, ill be running along to hopefully making smooth
    modifications to it.

     

Log in to post a comment.