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.

TMDX5535EZDSP: Processors forum

Part Number: TMDX5535EZDSP
Other Parts Discussed in Thread: TIDEP0066

Hello,

I have compiled and built the Linux Recognition engine  in TIesrSI.

I ran testtiesrsi program to recognize from an audio file.

This error shows up:

Creating TIesrSI recognizer
Opening TIesrSI recognizer
Failed to open TIesr
Reco/audio status: 400 0 0
Could not open TIesr

I would appreciate some help to fix this error.

Regards, 

Vladimir

P.S. This is exactly the issue another guy in this forum had two years ago. Unfortunately his thread was closed without showing a resolution.

  • Hi,

    These devices have limited support, see:
     

    Best Regards,
    Yordan

  • Hello,

    The issue is not directly related to the device, but to the building process of the software supplied with the device. Namely, an issue related to the functionality of the helper LINUX built, where the testtiesrsi program, when built correctly, according to the guidelines, gives a strange failure: Cannot open TIesr. I would appreciate some help in resolving this software issue.

    Best regards,

    Vladimir

  • Vladimir,

    Can you please take a look at this E2E? It has detailed information. The key thing is to use the latest CSL and later CCS versions.

    http://e2e.ti.com/support/processors/f/791/p/836444/3095314#3095314

    best regards,

    David Zhou

  • Vladimir,

    Which instructions are you using to build TIesr?

    TIesr use is limited to what is mentioned in the TI design http://www.ti.com/tool/TIDEP0066 any customization outside the scope of this document is NOT supported.

    I don't think file read is supported.

    Lali

  • Hello,

    I build the Linux code as specified in the Makefile, and the build goes OK. I can execute testtiesrflex, and it works fine. I can execute testtiesrfa, and although it gives a message: Rate plugin version 10002 is invalid, it does produce a file of 32000 samples. I use the instructions in each folder Readme file to run the corresponding program as shown.

    When I run testtiesrsi, exactly as shown in the Readme:

    Dist/LinuxReleaseGnu/bin/testtiesrsi \
        200000 \
        Data/GramDir \
        Data/testtiesrsi_linuxgnu.jac \
        Data/OffDT_GenDict_PhbVR_LE_MQ/English/hlrtree.bin \
        plughw:0,0 \
        Data/AudioDir/capture.raw

    I get the error mentioned in the previous post: Fail to open . In the TIDEP0066 pack there is no folder containing a library, as required by the command line example, but this one is available through github, same folder name, same library name, https://github.com/proegssilb/tiesr-dialer

    I then edited TIesrSI.c, and put printfs before every return with an error, printing the error enum name. And the program shows that it fails there:

       /* Open the recognizer engine */
       engStatus = (aTIesrSI->engine).OpenASR( (char*)aGrammarDir,
          (int)aMemorySize,
          aTIesrSI->srchmemory );

       if( engStatus != eTIesrEngineSuccess )
       {
          TIesrSIL_freeopen( aTIesrSI );
          aTIesrSI->recostatus = engStatus;
          printf("TIesrSIErrReco\n");
          return TIesrSIErrReco;
       }

    Since I use everything default, follow the build instructions and run the programs as shown, I was puzzled by this error message. I know in the past people have reported having been able to run the yes no maybe example, but for some reason it evades me. Any help is highly appreciated.

    the program being ran from the bin folder, it will fail with the command line shown because there is no Data directory in the bin folder, and of course no AudioDir directory, etc. So before running the suggested by the Readme command line, I create these required folders in the bin folder, and copy over the Gramdir. But the code fails even before getting to read from these folders, even if somehow the path before Data directory was built within the code.

    Best regards,

    Vladimir

  • In short, please help me running this example(from the corresponding Readme file):

    The TIesrSI API is the top-level API that an application designer uses to
    perform speech recognition. It requires that the TIesrFlex API has already been
    used to create a binary grammar network and acoustic model file set. The TIesrSI
    API uses the TIesrEnginecore, TIesrEngineSI, and TIesrFA APIs.

    Using the testtiesrsi Program
    -----------------------------

    The testtiesrsi program exercises the TIesrSI API. The source of the testtiesrsi
    program provides an illustration of how the TIesrSI API can be used to recognize
    speech. The detailed description of the user API functions supplied by the
    TIesrSI API is found in the TIesrSI_User.h header file. THe command line for the
    program is:

    testtiesrsi mem_size grm_dir jac_file sbc_file aud_dev capture_file

    mem_size: Working memory size in 2-byte shorts for the recognizer search engine
    grm_dir:  Directory holding binary grammar and model file set from TIesrFlex
    jac_file: Recognizer state file to use. Will be created if it does not exist.
    sbc_file: A binary phone tree file. (Supplied with model data)
    aud_dev:  Audio device, or file, to be used as the audio source

    An example of running the testtiesrsi program from the top-level distribution
    directory on a Linux OS is shown below. This program recognizes the grammar and
    model file set created using TIesrFlex. The default example supplied with the
    TIesr distribution recognizes the word "yes", or "no", or "maybe". Successful
    use of the testtiesrsi program requires that you provide speech and say one of
    the three words. To use testtiesrsi, start the program, wait for it to prompt
    for you to speak, and then say one of the words "yes", or "no", or "maybe".


    Dist/LinuxReleaseGnu/bin/testtiesrsi \
        200000 \
        Data/GramDir \
        Data/testtiesrsi_linuxgnu.jac \
        Data/OffDT_GenDict_PhbVR_LE_MQ/English/hlrtree.bin \
        plughw:0,0 \
        Data/AudioDir/capture.raw


    For example, if the word "maybe" is spoken after the "Speak now..." prompt, the
    output will be:

    Creating TIesrSI recognizer
    Opening TIesrSI recognizer
    Starting TIesrSI recognizer
    Speak now...
    Stopping TIesrSI recognizer
    Recognized: maybe
    Closing TIesrSI recognizer
    Destroying TIesrSI recognizer
     

    without errors. I don't even get to the Speak now...

    Best regards,

    Vladimir

  • Vladimir,

    As Lali mentioned earlier, TIesr use is limited to what is mentioned in the TI design http://www.ti.com/tool/TIDEP0066 any customization outside the scope of this document is NOT officially supported.

    best regards,

    David Zhou

  • Thank you very much! I made it work with as many keyword phrases as possible on the C5535. I use 7 at the moment, from which 2 are recognized once in a while, 1 is very noise like anyway, so I get it more often than I would like.

    The only question remaining, cygwin build has been reported successful by a colleague, is why testtiesrsi gives a "cannot open tiesr" message.

    Best,

    Vladimir