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!"); } }
/* * 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); } }