Sound Source Localization with suppression of constant noise

HARK FORUM Sound Source Localization with suppression of constant noise

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #410
    AvatarZouhair_Ghalfi
    Participant

    I have some problems when trying to perform sound source localization with suppression of constant noise. I have build the network proposed in HARK cookbook page 11.
    First I recorded the noise in one file .wav with 4 channels.
    In Constant node in the MAIN sheet I have written the path to the .wav file
    In the InputStream node I’m not sure what to put but I tried with the path to the .wav file
    In the rest of the nodes I put what the HARK cookbook recommends, although I have tried changing some parameters to see if it works.
    But I always get the same error:
    > Stopped
    > UINodeRepository::Scan()
    > Scanning def /usr/lib/flowdesigner/toolbox
    > done loading def files
    > loading XML document from memory
    > Invalid link from node_MultiFFT_1:OUTPUT to node_CMMakerFromFFTwithFlag_1:INPUT
    > Invalid link from
    > node_CMMakerFromFFTwithFlag_1:OUTPUT to node_CMSave_1:INPUTCM
    > Invalid link from node_IterCount_1:OUTPUT to node_Smaller_1:INPUT1
    > Invalid link from node_Constant_1:VALUE to node_Smaller_1:INPUT2
    > Invalid link from node_IterCount_1:OUTPUT
    > to node_Equal_1:INPUT1
    > Invalid link from node_Constant_1:VALUE to node_Equal_1:INPUT2
    > Invalid link from node_Equal_1:OUTPUT to node_CMSave_1:
    > OPERATION_FLAG
    > Invalid link from node_Constant_3:VALUE to node_CMSave_1:FILENAMEI
    > Invalid link from node_Constant_2:VALUE to node_CMSave_1:FILENAMER
    > Invalid link from node_Smaller_1:OUTPUT to node_CMMakerFromFFTwithFlag_1
    > :ADDER_FLAG
    > done!
    > Building network :MAIN
    > NodeNotFoundException occured, nodeName: NETWORK_CONDITION
    > UINode.cc line 232
    > : Exception caught while creating node_Gener_Pre_Measured_Noise_SSL_1 (type Gener_Pre_Measured_Noise_SSL)
    > UINetwork.cc line 559: Exception caught while building network MAIN

    #419

    Please set the VALUE parameter of Constant node of MAIN as follows.
    – Set type to subnet_param.
    – Enter ARG1 in the text box.
    If you execute network file on terminal, you can give an input WAV file by specifying a file name with the first argument.

    e.g.) ./network.n ./your_input.wav

    Please set no values to all parameters of InputStream node in MAIN.

    Best regards,
    m.takigahira

    #429
    AvatarZouhair_Ghalfi
    Participant

    Thank you very much for your answer!
    But, what do you mean with ARG1? It is the name of my input.wav?

    #430

    >> It is the name of my input.wav?
    Yes.

    If type is set to string and file name is entered directly in the text box, processing will be done with the specified file.
    On the other hand, if you set the type to subnet_param and enter the string ARG1 in the text box you can specify the file at startup.
    This has the same effect as $1 written in the shell script.
    In other words, when you write ARG2, the contents specified by the 2nd argument in the runtime are reflected.
    It is often used when you want to perform the same processing with HARK for various input data.
    This method can be used on many other nodes, but sometimes it is necessary to explicitly indicate the type.
    In that case, specify as :ARG like string:ARG1, float:ARG3 or etc…

    Best regards,
    m.takigahira

    #432
    AvatarZouhair_Ghalfi
    Participant

    Thank you for your answer.
    I still get errors trying to perform SSL with suppression of constant noise.
    When I set the NOT_EOF output in AudioStreamFromWave node as a condition as it is shown in HARK cookbook (page 11) I get the error shown in the attached file 1.png

    When I remove the condition output from AudioStreamFromWave node I get the result shown in the file 2.png.but nothing is saved because the output of Equal node it is always 0.

    The network that I’m using to record noise is 3.png
    The network that I’m using to generate the noise files is 4.png
    Any help would be greatly appreciated.
    Zouhair

    #437

    I expect that the cause is the following.
    IterCount is a node that outputs frame count.
    In the cookbook the constant node uses 200 frames. Every 1 frame can be considered 10 ms. So 200 is the same as 2 seconds. (If ADVANCE is 160 samples in case of the 16 kHz sampling, one frame is 10 ms.)
    In other words, input data must be greater than 2 seconds.
    You can either lower the frames to match the length of the input file.
    Or you can increase the length of the input file to match the frame count.

    The detailed behavior of CMMakerFromFFTwithFlag is described in the HARK document. The HTML version can be found at the following URL.
    http://www.hark.jp/document/hark-document-en/subsec-CMMakerFromFFTwithFlag.html

    Also, although it is irrelevant to the calculation result, old description may remain in the cookbook manual.
    For example, since the format saved by CMSave has been changed to zip format, it is preferable to make the file name extension zip.
    http://www.hark.jp/document/hark-document-en/subsec-.html

    Best regards,
    m.takigahira

    #438

    Reference information

    You can try the attached sample network file.

    
    wget http://www.hark.jp/networks/HARK_recog_2.3.0.1_practice2.zip
    unzip HARK_recog_2.3.0.1_practice2.zip
    cd HARK_recog_2.3.0.1_practice2
    cp <your download path>/sep_rec_offline_output_cm_test.n ./
    batchflow ./sep_rec_offline_output_cm_test.n ./2SPK-jp.wav
    

    Sorry, this sample audio file is in Japanese.

    Best regards,
    m.takigahira

    #441
    AvatarZouhair_Ghalfi
    Participant

    Thank you for your answer.
    As you can see from the attached file 3.png my input file is 10 seconds which fulfill “In other words, input data must be greater than 2 seconds.”
    So unfortunately I still have the same issues as in my last question.
    My HARK version is 2.2.0

    Zouhair

    #442

    Please try the following.
    Run the sample network file I posted last time and check if there is an error.

    If an error occurred, the HARK installation itself may have failed. First, try reinstalling HARK. If there is no reason to use the current version, please consider updating to the latest version. If an error occurs during installation, please provide detailed error information, we can help you.

    If it can be executed without error, the noise correlation matrix file named cm.zip will be saved. In that is the case, there are two things you can do. The first is to edit the network file I posted. The second thing is to post your network file to this thread. We want to take a look at your network file.

    Notes:
    I confirmed that the sample network file “sep_rec_offline_output_cm_test.n” I posted last time can be executed even in the environment of HARK 2.2.0. Since it is a network file that does not use the new functions, so you probably can execute it with HARK 2.1.0 or later.

    The reason for downloading the HARK 2.3.0 recognition sample set is that the set of input WAV file and transfer function file can be easily obtained. Of course, recognition scripts for kaldi are only supported on hark 2.3.0 or higher. It will not work on the version you currently have.

    Best regards,
    m.takigahira

    #444
    AvatarZouhair_Ghalfi
    Participant

    Finally it worked when I edited the file “sep_rec_offline_output_cm_test.n” as you recommended. But I can not figure why that the file cm.zip is only saved when I execute the network from the GUI but not from the command line.
    My network with errors “PreMeasuredNoiseSSL.n” is attached to this message.
    Thank you very much for your help
    Zouhair

    #448

    I identified the cause by checking your network file (PreMeasuredNoiseSSL.n).
    The problem is very simple, the Gener_Pre_Measured_Noise_SSL sheet must be set to “iterator”. Right now it is set to “subnet”.
    In HARK, processing is repeated on an input stream on a frame-by-frame basis.
    Therefore, the type of the sheet created by the user placed next to the InputStream node in the MAIN sheet should be an iterator in general.
    The name of the sheet can be arbitrarily given, but as in the cookbook example, we often use the name “LOOP” for the sheet to be processed repeatedly.

    How to change:
    Left click on the tab of the target sheet and select it, then click “Change to iterator” from the pop menu displayed by right clicking.

    When creating a new sheet:
    If you click on the “+” button, You can change the “Type” parameter from “subnet” to “iterator”.

    Best regards,
    m.takigahira

    #461
    AvatarZouhair_Ghalfi
    Participant

    Thank you so much for your help!

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