This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Error at running the program on ezdspC5535

Hello, everyone. I need your help.

I'm working with ezdspC5535 and I'm trying to run modified TIesr engine for speech recognition. I ran basic demo program and everything worked perfectly (when I said "t i voice trigger" those words appear on LCD display). Now I would like to make program work for some other words. I did all steps from pdf file "Speech Recognition Reference Design on C5535 eZdsp" for building modified TIesr engine, but when I try to run the program with files generated on Linux based PC (Kali Linux), I get:

Can't find a source file at "/tmp/TI_MKLIBNhUOhW/SRC/exit.c"
Locate the file or edit the source lookup path to include its location.

I've read that this should be ignored but I can't run program with this error. Here's a screenshot.

Please, help.


Thank you.

  • Hi Dusan,

    Could you please post a copy of the below file?
    \TIesr_model_build\build_files.sh

    I want to see how you modified this file for your custom word.

    Also, when you ran the demo and it worked, did you import the default project into the CCS workspace, build and load the .out?

    Lali
  • Hey Lali,

    Thank you for replying.

    I edited only phrase part of build_files.sh. Here's how it looks now.

    #!/bin/sh

    Dist/LinuxDebugGnu/bin/testtiesrflex \
          "start( WakeGram ).
        WakeGram ---> ( [_Fill] Phrase [_Fill] ) | _Fill.
        Phrase ---> hello world | t i voice trigger | ti technology | university | company | ice cream." \
          Data/GramDir \
          Data/filler_model \
          English \
          2 0 1 0 0 0 0

    Answer to your second question is yes. I imported default project, build it (had some memory overlap error but fixed it) and load the .out file and it worked.

    Could the problem be that the new .c and .h files were generated in Kali Linux and not Ubuntu, as specified in speech recognition pdf file?

    And also, I had to fix makefiles from TIesrDictoso, TIesrDTso, TIesrEngineCoreso, TIesrEngineSIso, TIesrFA_ALSAso, TIesrFlexso and TIesrSIso in order to execute make LinuxDebugGnu successfully. I erased one = sign from all if parts of makefiles, because that's how shell programming works. And I had to add -lpthread to \TIesr_model_build\TIesrSI\TestTIesrSI\nbproject\Makefile-LinuxDebugGnu.mk.

    Maybe that changes are the problem? But all steps for file generation I did successfully (execution of build_files.sh and then convert.sh worked perfectly).

    Thank you.

    Dusan

  • Dusan,

    I don't know if the issues are with Kali and all the other changes to the TIesr package in order to get make to work successfully. This has not been tried previously.

    Could you please try with only "hello world" in your .sh file? I want to eliminate if the multiple trigger word scenario is causing problems.

    I will ask some colleagues here who are more familiar with Linux if the changes you mentioned above will have an impact on the .c and .h

    Lali

  • Hey Lali,


    I tried like you said, with only "hello world", and it worked. It seems that multiple word trigger is the problem.

    Dusan

  • Dusan,

    Interesting. I have tried it with multiple phrases before and it worked. Could you please try just one word at a time like: hello | world?
    Also try changing 2 0 1 0 0 0 0 to 2 0 0 0 0 0 0 in the flags section. The 1 is for auto_sil, a flag indicating to include optional silence between words.

    Sorry for the back and forth, just trying to further narrow.

    Lali
  • Hey Lali,

    I tried as you said and it loads the program but doesn't work as it should. When I say "hello", LCD display says _Fill _Fill, and when I say "world", LCD display says _Fill world _Fill. Like it's recognizing some noise with words...


    It's ok, we're just trying to solve this issue.

    Thanks.

    Dusan

  • Dusan,

    The _Fill typically appears when a word other than the trigger word is detected. This includes any ambient noise around the mic. So, its normal to see _FIll when any unrecognized word is seen.

    Lali
  • Hey Lali,

    Do you have any other idea what could cause the problem, or what else could I try?

    Thanks.

    Dusan

  • Hi Dusan,

    I think the problem lies in using more than 2 sets of trigger phrases. Please try this:

    Dist/LinuxDebugGnu/bin/testtiesrflex \
    "start( WakeGram ).
    WakeGram ---> ( [_Fill] Phrase [_Fill] ) | _Fill.
    Phrase ---> voice wakeup | trigger." \
    Data/GramDir \
    Data/filler_model \
    English \
    2 0 1 0 0 0 0

    This worked for me. When another phrase was added to this line-up, thats when the program would not run. I think we can rule out any Kali issues, because I was seeing the same problem using Ubuntu. Would need some time to look into why a 3rd phrase would cause a problem; no timeline.

    We will get the TI design doc modified to reflect the 2 phrase limit. Thanks for all your feedback!

    Lali

  • Lali,

    It seems that with anything other than t i voice trigger program is not working properly. I tried hello world and other combination of words and sometimes LCD display prints right thing (just word combination) but most of the time it prints _Fill word combination. One of the messages that I sent you, up there, says that it worked perfect for hello world but it seems that I was just lucky.

    For multiple word trigger or multiple combination of words trigger, program won't even start, like first message I post.

    Also, I tried executing make command on Ubuntu and had same problems. I had to fix makefiles and add -lpthread to one of them in order to execute it successfully.

    Do you have some idea what else could I try in order to make it work?

    Thanks.

    Dusan

  • Lali,

    I saw your message when I sent you 2nd reply to answer containing information about _Fill. I'll try with new build_files.sh and let you know how it goes.

    Thanks.

    Dusan

  • Dusan,

    Does the attached .out work for you? It uses the words voice wakeup or trigger

    I don't know what impact all the -lpthread changes you made has on the demo. This was something I did not have to do on Ubuntu.

    /cfs-file/__key/communityserver-discussions-components-files/791/2630.TIesrDemoC55.out

    Lali

  • Lali,

    It works perfectly for those words, with file you sent me and with .out file I builded.

    Dusan

  • Hi Lali and Dusan,

    I am also working with TIesr_demo and have similar observations as Dusan: using Ubuntu I had to modify makefiles on exactly the same way as Dusan wrote.
    However, using the trigger phrase: "hello figaro" I sometimes get "hello+1 figaro" on display and sometimes a correct phrase.

    Question to Lali: has that "+1" any special meaning?

    Regards,
    Arek
  • Hi Arek,

    I don't know if "figaro" is something that would be understood since it's not technically in the English dictionary. The TIesr engine is only for English. The +1 indicates multiple pronunciations of the word. In build_files.sh can you try changing 2 0 1 0 0 0 0 to 1 0 1 0 0 0 0 and see if you still see the +1?

    The first flag indicates the max number of pronunciations for a word.
    Lali