예제 #1
0
        // Code generation for 11,025Hz mono 16 bit audio data
        public string Generate(Int16[] pcm)
        {
            var whitening = new Whitening(pcm);

            whitening.Compute();


            // Test Whitening

            /*int i;
             * for (i = 0; i < 20; i++)
             * {
             *      if (Math.Abs(whiteningTest[i]-whitening.WhitenedSamples[i]) > 0.00001f)
             *      {
             *              Debug.WriteLine("Whitening test failed");
             *              break;
             *      }
             * }*/


            var subAnal = new SubbandAnalysis(whitening.WhitenedSamples);

            subAnal.Compute();


            // Subband analysis test
            //int j;
            //for (j = 0; j < 10; ++j)

            /*{
             *      Debug.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t",
             *              subAnal.Data[0,j],
             *              subAnal.Data[1,j],
             *              subAnal.Data[2,j],
             *              subAnal.Data[3,j],
             *              subAnal.Data[4,j],
             *              subAnal.Data[5,j],
             *              subAnal.Data[6,j],
             *              subAnal.Data[7,j]
             *      );
             *      for (i = 0; i < 8; i++)
             *      {
             *              if (Math.Abs(subAnalTest[i] - subAnal.Data[i, 9]) > 0.00001f)
             *              {
             *                      Debug.WriteLine("Whitening tst failed");
             *                      break;
             *              }
             *      }
             * }*/



            var fingerprint = new Fingerprint(ref subAnal, 0);

            fingerprint.Compute();

            /*if (fingerprint.GetCodes()[1800].code != 19692 || fingerprint.GetCodes()[1800].frame != 1383)
             * {
             *      Debug.WriteLine("Fingerprinting test failed");
             * }*/

            _CodeString = CreateCodeString(fingerprint.GetCodes());
            _NumCodes   = fingerprint.GetCodes().Length;

            return(_CodeString);
        }
예제 #2
0
 public Fingerprint(ref SubbandAnalysis pSubbandAnalysis, int offset)
 {
     _pSubbandAnalysis = pSubbandAnalysis;
     _Offset           = offset;
 }