BeamformIt icon indicating copy to clipboard operation
BeamformIt copied to clipboard

warning my signals contain digital zeros

Open great-thoughts opened this issue 8 years ago • 5 comments

I have multiple recording of an event. the recordings started recording at different instances. first I aligned them by computing the (offset) and then padding the signal with zeros. when i run do_beamforming.sh I get the following warning: WARNING!!! no maximum points found in crosscorrelation!!! does your signal contain digital zeros? Do beamformit have its own way to align signals? what should i pad my signal with to avoid this warning?

great-thoughts avatar Jul 17 '16 08:07 great-thoughts

Hi, beamformit performs some initial computations to come up with appropriate normalization parameters for each channel, as well as to select the best channel to act as reference for the alignment. This warning is telling you what you already know. I believe that this warning will not have much effect on your case, as there is real signal after a while. If your output looks good, I would not worry much about it.

xanguera avatar Jul 17 '16 16:07 xanguera

The output of one set of recordings was good. However, when I tried it on another set of recordings, I get the following messages:

WARNING!!! no maximum points found in crosscorrelation!!! does your signal contain digital zeros?

Finished computing delays
Computing the optimum delays
Threshold is 0.035354 (min: 0.000100 max 0.242273)
Thresholding noisy frames lower than 0.035354
  Aplying a noise thresholding
  Finished applying a noise filter
Deconding Each channel Independently to find the 2-best delays from each N-best inputComputing the 1st best delay
First best start

Trans_weight selected to 25.000000
Starting Viterbi with 4 channels and 4 N-best values per channel
Computing Viterbi for channel 0
   Segmentation Over with Viterbi score = -24917.488841
Computing Viterbi for channel 1
   Segmentation Over with Viterbi score = -127606.615162
Computing Viterbi for channel 2
   Segmentation Over with Viterbi score = -16027.760915
Computing Viterbi for channel 3
   Segmentation Over with Viterbi score = -30160.853181
First best finish
Computing the 2nd best delay
second best start

Trans_weight selected to 25.000000
Starting Viterbi with 4 channels and 4 N-best values per channel
Computing Viterbi for channel 0
   Segmentation Over with Viterbi score = -46394.214585
Computing Viterbi for channel 1
   Segmentation Over with Viterbi score = -17084606.615167
Computing Viterbi for channel 2
   Segmentation Over with Viterbi score = -36442.701399
Computing Viterbi for channel 3
   Segmentation Over with Viterbi score = -43371.373290
second best finish
Done computing the 2nd best delay
Finished decoding both best paths, writting out results

Decoding all 2-best input delays to find the optimum path in coherence with all channels
Total number of possible delays: 16
Starting the viterbi
   Segmentation Over with Viterbi score = -97944.974326
Finished computing optimum delays
Finished computing the optimum delays
Printing delays to file
Summing up all the channels
Memory allocation for all data
Finished allocating memory
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
Wrong channel number 3 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000

then it exists with the following message?

Wrong channel number 2 with correlation 0.000000
Wrong channel number 1 with correlation 0.000000
Wrong channel number 2 with correlation 0.000000
finished writing files
Sinc-ed all files' outputs for the 0 best
Finished summing up all the channels
Closing all used channels
Finished closing all the channels

Process finished with exit code 0

My output has echoes right know. Do you think that this is due to the digital zeros. I am padding with zeros because the recordings start at different time instances. Hence some of the recordings are ahead of the others. If I pass it to as is to beamformit I get a mixed speech.

great-thoughts avatar Jul 27 '16 09:07 great-thoughts

Probably the computation of relative delay between channels got messed up with too much silence. You can try two possible solutions:

  1. add the parameter --do_compute_skew 1 inside do_beamforming.sh (in case you are using the script) and run the alignment without any padding between the signals. This will try to perform an initial global alignment between the channels for them to start roughly at the same time.
  2. If the previous does not work, could you consider trimming the longer audios instead of adding digital zeroes?

xanguera avatar Jul 27 '16 10:07 xanguera

I added --do_compute_skew 1 in my shell code and got the following error

NumChannels is: 4, sampling rate is 16000
Opening output channels
Opening ./output/out5/out5.wav file
Marginst for delays in frames: 480 in ms: 30
Computing the skew between input signalsFinding the skew for channel 1
Average skew: -703.320007
Finding the skew for channel 2
ERROR: Error retrieving data for file_in, not enough samples in the file

great-thoughts avatar Jul 27 '16 10:07 great-thoughts

I see, I will need to debug this case. Would it be possible for you to share the files so that I can reproduce the issue? you can pm me at [email protected]

xanguera avatar Jul 27 '16 10:07 xanguera