Spiker / Legacy Software / Software / Home
During the use of the switchboard database, it was noticed that occasional samples were corrupted, apparently by having all their bits flipped. Because of the details of how mulaw coding is done, this sometimes made small positive values into large negative ones. It may happen in other situations, but this is the one we can detect.

A program was written to detect and repair these corrupted samples. The program depends on there being more than 10 or so samples between hits.

The program works as follows:

  • 1) for each 3-long window of consecutive samples A,B,C ask if A and C are small in absolute value and B is large negative.

  • 2) If so, ask if inverting B's bits would put the resulting value closer to the average of A and C.

  • 3) If so, ask if a 5-long LPC polynomial built on the original 21 samples centered at B has a much higher energy residual than the LPC polynomial built on the sequence with B inverted.

  • 4) If so, declare that this was an instance of corruption, so fix it and move on.
This problem appears not to have been reported in previous annotations and descriptions of Switchboard.

The program consists of two files: spiker.c and mulaw.h.