public void DetectsSingleCleanTone()
        {
            foreach (var tone in AllTones)
            {
                GenerateToneWaveFile(TempFilePath, DtmfTone.Hash, 8000, 250.0);

                using (var audioFile = new AudioFileReader(TempFilePath))
                {
                    var tones = audioFile.DtmfTones().ToArray();
                    Assert.AreEqual(1, tones.Length);
                    Assert.AreEqual(DtmfTone.Hash, tones[0].DtmfTone);
                    // TODO: why tone Position starts at 26 ms ?
                }
            }
        }
Beispiel #2
0
 private static void AnalyzeWaveFile(string path)
 {
     using (var log = new Log("waveFile.log"))
     {
         using (var audioFile = new AudioFileReader(path))
         {
             foreach (var occurence in audioFile.DtmfTones())
             {
                 log.Add(
                     $"{occurence.Position.TotalSeconds:00.000} s "
                     + $"({occurence.Channel}): "
                     + $"{occurence.DtmfTone.Key} key "
                     + $"(duration: {occurence.Duration.TotalSeconds:00.000} s)");
             }
         }
     }
 }
        public void DetectsSingleToneWithPinkNoise()
        {
            foreach (var tone in AllTones)
            {
                GenerateToneWaveFile(TempFilePath, tone, 8000, 250.0, new SignalGenerator(8000, 1)
                {
                    Gain = 0.6,
                    Type = SignalGeneratorType.Pink,
                });

                using (var audioFile = new AudioFileReader(TempFilePath))
                {
                    var tones = audioFile.DtmfTones().ToArray();
                    Assert.AreEqual(1, tones.Length);
                    Assert.AreEqual(tone, tones[0].DtmfTone);
                }
            }
        }
Beispiel #4
0
 public List <DtmfOccurence> LastRelease() => audioFile.DtmfTones().ToList();
Beispiel #5
0
        private static void AnalyzeWaveFile(string path)
        {
            using (var log = new Log("waveFile.log"))
            {
                PureTones.ClearTones();
                //PureTones.AddLowTone(0);
                //PureTones.AddHighTone(645);

                //PureTones.AddTonePair(794, 524); // Station 2
                //PureTones.AddTonePair(1084, 794); // Station 3
                //PureTones.AddTonePair(716, 645); // Station 6

                PureTones.TryAddHighTone(794);
                PureTones.TryAddHighTone(881);
                PureTones.TryAddHighTone(524);
                PureTones.TryAddHighTone(1084);
                //PureTones.AddHighTone(881);
                PureTones.TryAddHighTone(645);
                PureTones.TryAddHighTone(716);
                PureTones.TryAddHighTone(384);
                PureTones.TryAddHighTone(547);
                PureTones.TryAddHighTone(802);
                PureTones.TryAddHighTone(346);
                PureTones.TryAddHighTone(426);
                PureTones.TryAddHighTone(582);
                PureTones.TryAddHighTone(757);
                PureTones.TryAddHighTone(592);
                PureTones.TryAddHighTone(473);

                DtmfClassification.ClearAllTones();


                DtmfTone custom1 = new DtmfTone(794, 0, PhoneKey.Custom1);
                DtmfTone custom2 = new DtmfTone(881, 0, PhoneKey.Custom2);
                DtmfTone custom3 = new DtmfTone(524, 0, PhoneKey.Custom3);
                DtmfTone custom4 = new DtmfTone(1084, 0, PhoneKey.Custom4);
                //DtmfTone custom5 = new DtmfTone(881, 0, PhoneKey.Custom5);
                DtmfTone custom6  = new DtmfTone(645, 0, PhoneKey.Custom6);
                DtmfTone custom7  = new DtmfTone(716, 0, PhoneKey.Custom7);
                DtmfTone custom8  = new DtmfTone(384, 0, PhoneKey.Custom8);
                DtmfTone custom9  = new DtmfTone(547, 0, PhoneKey.Custom9);
                DtmfTone custom10 = new DtmfTone(802, 0, PhoneKey.Custom10);
                DtmfTone custom11 = new DtmfTone(346, 0, PhoneKey.Custom11);
                DtmfTone custom12 = new DtmfTone(426, 0, PhoneKey.Custom12);
                DtmfTone custom13 = new DtmfTone(582, 0, PhoneKey.Custom13);
                DtmfTone custom14 = new DtmfTone(757, 0, PhoneKey.Custom14);
                DtmfTone custom15 = new DtmfTone(592, 0, PhoneKey.Custom15);
                DtmfTone custom16 = new DtmfTone(473, 0, PhoneKey.Custom16);

                DtmfClassification.AddCustomTone(custom1);
                DtmfClassification.AddCustomTone(custom2);
                DtmfClassification.AddCustomTone(custom3);
                DtmfClassification.AddCustomTone(custom4);
                //DtmfClassification.AddCustomTone(custom5);
                DtmfClassification.AddCustomTone(custom6);
                DtmfClassification.AddCustomTone(custom7);
                DtmfClassification.AddCustomTone(custom8);
                DtmfClassification.AddCustomTone(custom9);
                DtmfClassification.AddCustomTone(custom10);
                DtmfClassification.AddCustomTone(custom11);
                DtmfClassification.AddCustomTone(custom12);
                DtmfClassification.AddCustomTone(custom13);
                DtmfClassification.AddCustomTone(custom14);
                DtmfClassification.AddCustomTone(custom15);
                DtmfClassification.AddCustomTone(custom16);


                using (var audioFile = new AudioFileReader(path))
                {
                    foreach (var occurence in audioFile.DtmfTones())
                    {
                        if (occurence.Duration.TotalSeconds >= .5)
                        {
                            log.Add(
                                $"{occurence.Position.TotalSeconds:00.000} s "
                                + $"({occurence.Channel}): "
                                + $"{occurence.DtmfTone.Key} key "
                                + $"(duration: {occurence.Duration.TotalSeconds:00.000} s)");
                        }
                    }
                }
            }
        }