示例#1
0
        public static void ConvertMP3sToSpectrogram(
            string dataDir            = @"D:\ML\Speech recognition\NLP_diploma\uk",
            string clipsDir           = "clips",
            string spectroDir         = "test_spectrograms",
            string dataSourceFilePath = "test.tsv")
        {
            string path = dataDir;

            DataPreparation.clipsPath        = Path.Combine(path, clipsDir);
            DataPreparation.spectrogramsPath = Path.Combine(path, spectroDir);
            path = Path.Combine(path, dataSourceFilePath);
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            List <SpeechData> trainData = new List <SpeechData>();
            var preparator = new DataPreparation();

            // Get data from .tsv file
            Console.WriteLine($"Loading data from: {path}");
            using (var _reader = new StreamReader(path))
            {
                CsvConfiguration myConfig = new CsvConfiguration(CultureInfo.InvariantCulture);
                myConfig.Delimiter = "\t";
                myConfig.Encoding  = System.Text.Encoding.UTF8;
                using (var csvReader = new CsvReader(_reader, myConfig))
                {
                    while (csvReader.Read())
                    {
                        var data = csvReader.GetRecord <SpeechData>();
                        preparator.Prepare(ref data);
                        trainData.Add(data);
                        //break;
                    }
                }
            }
            Console.WriteLine("Train data was loaded!");
            Console.WriteLine(trainData.Count);

            bool isFormedSpectrograms = false;

            if (!isFormedSpectrograms)
            {
                int counter = 0;
                foreach (var sample in trainData)
                {
                    preparator.GenerateSpectrogram(sample);
                    counter++;
                    if (counter % 400 == 0)
                    {
                        Console.WriteLine($"{counter} audio files processed");
                    }
                }
                Console.WriteLine("Spectrograms data was created!");
            }
        }
示例#2
0
        /*
         * TODO: Run virtual env from C#
         *  Process process = new Process();
         *  process.StartInfo.FileName = "cmd.exe";
         *  process.StartInfo.CreateNoWindow = true;
         *  process.StartInfo.RedirectStandardInput = true;
         *  process.StartInfo.RedirectStandardOutput = true;
         *  process.StartInfo.UseShellExecute = false;
         *  process.Start();
         *  process.StandardInput.WriteLine("activate virtualenvName");
         *  process.StandardInput.WriteLine("cd C:\\PathWhereYourPythonIsLocated");
         *  process.StandardInput.WriteLine("python hello.py");
         *  process.StandardInput.Flush();
         *  process.StandardInput.Close();
         *  Console.WriteLine(process.StandardOutput.ReadToEnd());
         *  Console.ReadKey();
         *
         */

        static void Main(string[] args)
        {
            try
            {
                /*
                 * 0. None
                 * 1. "Запустити відео обтікання будинків"
                 *  2. "запустити відео демонстрації вихорів"
                 *  3. "запустити відео обтікання крила"
                 *  4. "закрити відео
                 */

                const string DATA_DIR    = @"D:\ML\Speech recognition\NLP_diploma\uk";
                const string CLIPS_DIR   = @"D:\ML\Speech recognition\NLP_diploma\uk\clips_classifire\aug+orig";   //@"D:\ML\Speech recognition\NLP_diploma\uk\clips";
                const string SPECTRO_DIR = @"D:\ML\Speech recognition\NLP_diploma\uk\mel_spectrograms_classifire"; //@"D:\ML\Speech recognition\NLP_diploma\uk\train_spectrograms";//

                DataPreparation.clipsPath        = CLIPS_DIR;
                DataPreparation.spectrogramsPath = SPECTRO_DIR;

                string[] audios = Directory.GetFiles(CLIPS_DIR, "*.wav");

                foreach (string path in audios)
                {
                    DataPreparation.GenerateSpectrogram(path);
                    Console.WriteLine(path);
                }

                /*
                 * string fileName = $"4_{GetRandomString(12)}";
                 *
                 * RecordAudioFromMicro(
                 *  audioFileName: Path.Combine(DATA_DIR, $"clips_classifire\\{fileName}.wav"),
                 *  imageFilePath: Path.Combine(DATA_DIR, $"spectrograms_classifire\\{fileName}.jpg")
                 * ) ;
                 */

                //ConvertMP3sToSpectrogram();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }