diff --git a/gene-pool-backend/.vs/gene-pool-backend/DesignTimeBuild/.dtbcache.v2 b/gene-pool-backend/.vs/gene-pool-backend/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..b8dd1bf Binary files /dev/null and b/gene-pool-backend/.vs/gene-pool-backend/DesignTimeBuild/.dtbcache.v2 differ diff --git a/gene-pool-backend/.vs/gene-pool-backend/v16/.suo b/gene-pool-backend/.vs/gene-pool-backend/v16/.suo index 6c8de2e..f68d7fb 100644 Binary files a/gene-pool-backend/.vs/gene-pool-backend/v16/.suo and b/gene-pool-backend/.vs/gene-pool-backend/v16/.suo differ diff --git a/gene-pool-backend/Controllers/SpeechToTextController.cs b/gene-pool-backend/Controllers/SpeechToTextController.cs index f911ba2..7255ce9 100644 --- a/gene-pool-backend/Controllers/SpeechToTextController.cs +++ b/gene-pool-backend/Controllers/SpeechToTextController.cs @@ -1,18 +1,17 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; -using MediaToolkit; -using MediaToolkit.Model; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using VideoLibrary; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; -using System.Drawing.Printing; -using System.Reflection; using System.IO; using System.Text; +using NAudio.Wave; +using Azure.Storage.Blobs; +using Azure.Storage.Blobs.Models; +using VideoLibrary; +using MediaToolkit.Model; +using NAudio.Utils; namespace gene_pool_backend.Controllers { public class MyFile { @@ -33,30 +32,18 @@ public async Task WavFileTranscribe([FromForm] MyFile files) { var config = SpeechConfig.FromSubscription("0afaff0095f946eaa101f44563f3c341", "eastus2"); var stopRecognition = new TaskCompletionSource(); - /* - byte channels = 1; - byte bitsPerSample = 16; - int samplesPerSecond = 16000; // or 8000 - var audioFormat = AudioStreamFormat.GetWaveFormatPCM((uint)samplesPerSecond, bitsPerSample, channels); - PushAudioInputStream audioStream = AudioInputStream.CreatePushStream(audioFormat); - - BinaryReader reader = new BinaryReader(files.file.OpenReadStream()); - audioStream.Write(reader.ReadBytes((int) files.file.Length)); - audioStream.Close(); - */ - Console.WriteLine(Path.GetFullPath("test.wav")); StringBuilder sb = new StringBuilder(); // using (var audioConfig = AudioConfig.FromStreamInput(audioStream)) { - using (var audioConfig = AudioConfig.FromWavFileInput(Path.GetFullPath("test.wav"))) { + using (var audioConfig = AudioConfig.FromWavFileInput(Path.GetFullPath("helloworld.wav"))) { using (var recognizer = new SpeechRecognizer(config, audioConfig)) { // Subscribes to events. recognizer.Recognized += (s, e) => { if (e.Result.Reason == ResultReason.RecognizedSpeech) { - // Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); sb.Append(e.Result.Text); } else if (e.Result.Reason == ResultReason.NoMatch) { Console.WriteLine($"NOMATCH: Speech could not be recognized."); @@ -105,28 +92,82 @@ public async Task WavFileTranscribe([FromForm] MyFile files) { return Ok(); } + string connectionString = "DefaultEndpointsProtocol=https;AccountName=genepoolstorage;AccountKey=gYC3jnsvdZCSxQJH4hTn2kpy9SyDW5bpfB5KIjB7D0SPMu0GG7y/mlrJNFrAGi56kadHW+VDwsxoYKvb3eaCAw==;EndpointSuffix=core.windows.net"; + string containerName = "genepoolcontainer"; + string blobFileName = "helloworld"; + [HttpPost] - [Route("byte_file_transcribe")] - public async Task ByteFileTranscribe([FromForm] MyFile files) { - Console.WriteLine(files); - Console.WriteLine(files.test); - Console.WriteLine(files.file); + [Route("upload_file")] + public async Task UploadFile ([FromForm] MyFile files) { + // Create a BlobServiceClient object which will be used to create a container client + BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); + + // Create the container and return a container client object + BlobContainerClient containerClient; + try { + containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName); + } catch { + containerClient = blobServiceClient.GetBlobContainerClient(containerName); + } + + string fileName = $"{blobFileName}.wav"; + + // Get a reference to a blob + BlobClient blobClient = containerClient.GetBlobClient(fileName); + + Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri); + + // Open the file and upload its data + using (var stream = files.file.OpenReadStream()) { + await blobClient.UploadAsync(stream, true); + } + + return Ok(); + } + [HttpPost] + [Route("link_to_wav")] + public async Task LinkToWav([FromForm] MyFile files) { + FileHelpers.SaveVideoToDisk("https://www.youtube.com/watch?v=tpIctyqH29Q"); + FileHelpers.ToWavFormat("hello.mp4", "hello.wav"); + + return Ok(); + } + + [HttpPost] + [Route("blob_to_text")] + public async Task BlobToText([FromForm] MyFile files) { var config = SpeechConfig.FromSubscription("0afaff0095f946eaa101f44563f3c341", "eastus2"); + var stopRecognition = new TaskCompletionSource(); - Console.WriteLine(Path.GetFullPath("test.wav")); + // Create a BlobServiceClient object which will be used to create a container client + BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); - StringBuilder sb = new StringBuilder(); + // Create the container and return a container client object + BlobContainerClient containerClient; + try { + containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName); + } catch { + containerClient = blobServiceClient.GetBlobContainerClient(containerName); + } - // using (var audioConfig = AudioConfig.FromStreamInput(audioStream)) { - using (var audioConfig = AudioConfig.FromWavFileInput(Path.GetFullPath("test.wav"))) { - using (var recognizer = new SpeechRecognizer(config, audioConfig)) { + BlobClient blobClient = containerClient.GetBlobClient($"{blobFileName}.wav"); + BlobDownloadInfo download = await blobClient.DownloadAsync(); + + // Create an audio stream from a wav file. + // Replace with your own audio file name. + using (var audioInput = Utility.OpenWavFile(new BinaryReader(download.Content))) { + // Creates a speech recognizer using audio stream input. + using (var recognizer = new SpeechRecognizer(config, audioInput)) { // Subscribes to events. + recognizer.Recognizing += (s, e) => { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + recognizer.Recognized += (s, e) => { if (e.Result.Reason == ResultReason.RecognizedSpeech) { - // Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); - sb.Append(e.Result.Text); + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); } else if (e.Result.Reason == ResultReason.NoMatch) { Console.WriteLine($"NOMATCH: Speech could not be recognized."); } @@ -145,11 +186,11 @@ public async Task ByteFileTranscribe([FromForm] MyFile files) { }; recognizer.SessionStarted += (s, e) => { - Console.WriteLine("\n Session started event."); + Console.WriteLine("\nSession started event."); }; recognizer.SessionStopped += (s, e) => { - Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nSession stopped event."); Console.WriteLine("\nStop recognition."); stopRecognition.TrySetResult(0); }; @@ -166,8 +207,6 @@ public async Task ByteFileTranscribe([FromForm] MyFile files) { } } - Console.WriteLine(sb.ToString()); - return Ok(); } } diff --git a/gene-pool-backend/FileManipulation.cs b/gene-pool-backend/FileManipulation.cs new file mode 100644 index 0000000..d505d05 --- /dev/null +++ b/gene-pool-backend/FileManipulation.cs @@ -0,0 +1,172 @@ +using NAudio.Wave; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using VideoLibrary; + +namespace gene_pool_backend { + public static class BinaryWriterExtensions { + private const int HeaderSize = 44; + + private const int Hz = 16000; //frequency or sampling rate + + private const float RescaleFactor = 32767; //to convert float to Int16 + + public static void AppendWaveData(this T stream, float[] buffer) + where T : Stream { + if (stream.Length > HeaderSize) { + stream.Seek(0, SeekOrigin.End); + } else { + stream.SetLength(HeaderSize); + stream.Position = HeaderSize; + } + + // rescale + var floats = Array.ConvertAll(buffer, x => (short)(x * RescaleFactor)); + + // Copy to bytes + var result = new byte[floats.Length * sizeof(short)]; + Buffer.BlockCopy(floats, 0, result, 0, result.Length); + + // write to stream + stream.Write(result, 0, result.Length); + + // Update Header + UpdateHeader(stream); + } + + public static void UpdateHeader(Stream stream) { + var writer = new BinaryWriter(stream); + + writer.Seek(0, SeekOrigin.Begin); + + writer.Write(Encoding.ASCII.GetBytes("RIFF")); //RIFF marker. Marks the file as a riff file. Characters are each 1 byte long. + writer.Write((int)(writer.BaseStream.Length - 8)); //file-size (equals file-size - 8). Size of the overall file - 8 bytes, in bytes (32-bit integer). Typically, you'd fill this in after creation. + writer.Write(Encoding.ASCII.GetBytes("WAVE")); //File Type Header. For our purposes, it always equals "WAVE". + writer.Write(Encoding.ASCII.GetBytes("fmt ")); //Mark the format section. Format chunk marker. Includes trailing null. + writer.Write(16); //Length of format data. Always 16. + writer.Write((short)1); //Type of format (1 is PCM, other number means compression) . 2 byte integer. Wave type PCM + writer.Write((short)2); //Number of Channels - 2 byte integer + writer.Write(Hz); //Sample Rate - 32 byte integer. Sample Rate = Number of Samples per second, or Hertz. + writer.Write(Hz * 2 * 1); // sampleRate * bytesPerSample * number of channels, here 16000*2*1. + writer.Write((short)(1 * 2)); //channels * bytesPerSample, here 1 * 2 // Bytes Per Sample: 1=8 bit Mono, 2 = 8 bit Stereo or 16 bit Mono, 4 = 16 bit Stereo + writer.Write((short)16); //Bits per sample (BitsPerSample * Channels) ?? should be 8??? + writer.Write(Encoding.ASCII.GetBytes("data")); //"data" chunk header. Marks the beginning of the data section. + writer.Write((int)(writer.BaseStream.Length - HeaderSize)); //Size of the data section. data-size (equals file-size - 44). or NumSamples * NumChannels * bytesPerSample ?? + } + } //end of class + + public static class FileHelpers { + public static byte[] ReadToEnd(Stream stream) { + long originalPosition = 0; + + if (stream.CanSeek) { + originalPosition = stream.Position; + stream.Position = 0; + } + + byte[] readBuffer = new byte[4096]; + + int totalBytesRead = 0; + int bytesRead; + + while ((bytesRead = stream.Read(readBuffer, totalBytesRead, readBuffer.Length - totalBytesRead)) > 0) { + totalBytesRead += bytesRead; + + if (totalBytesRead == readBuffer.Length) { + int nextByte = stream.ReadByte(); + if (nextByte != -1) { + byte[] temp = new byte[readBuffer.Length * 2]; + Buffer.BlockCopy(readBuffer, 0, temp, 0, readBuffer.Length); + Buffer.SetByte(temp, totalBytesRead, (byte)nextByte); + readBuffer = temp; + totalBytesRead++; + } + } + } + + byte[] buffer = readBuffer; + if (readBuffer.Length != totalBytesRead) { + buffer = new byte[totalBytesRead]; + Buffer.BlockCopy(readBuffer, 0, buffer, 0, totalBytesRead); + } + return buffer; + } + + public static float[] ConvertByteToFloat(byte[] array) { + float[] floatArr = new float[array.Length / 4]; + for (int i = 0; i < floatArr.Length; i++) { + if (BitConverter.IsLittleEndian) { + Array.Reverse(array, i * 4, 4); + } + floatArr[i] = BitConverter.ToSingle(array, i * 4); + } + return floatArr; + } + + public static void ConvertToWAVOLD(byte [] video) { + // contentAsByteArray consists of video bytes + MemoryStream contentAsMemoryStream = new MemoryStream(video); + + using (WaveStream pcmStream = + WaveFormatConversionStream.CreatePcmStream( + new StreamMediaFoundationReader(contentAsMemoryStream))) { + WaveStream blockAlignReductionStream = new BlockAlignReductionStream(pcmStream); + + // Do something with the wave stream + using (var stream = new FileStream("hello.wav", FileMode.OpenOrCreate, FileAccess.ReadWrite)) { + stream.AppendWaveData(ConvertByteToFloat(ReadToEnd(blockAlignReductionStream))); + } + } + } + + public static string PathToFfmpeg { get; set; } + + public static void ToWavFormat(string pathToMp4, string pathToWav) { + PathToFfmpeg = "ffmpeg.exe"; + + var ffmpeg = new Process { + StartInfo = { UseShellExecute = false, RedirectStandardError = true, FileName = PathToFfmpeg } + }; + + var arguments = + String.Format( + @"-i ""{0}"" ""{1}""", + pathToMp4, pathToWav); + + ffmpeg.StartInfo.Arguments = arguments; + + try { + if (!ffmpeg.Start()) { + Console.WriteLine("Error starting"); + return; + } + var reader = ffmpeg.StandardError; + string line; + while ((line = reader.ReadLine()) != null) { + Console.WriteLine(line); + } + } catch (Exception exception) { + Console.WriteLine(exception.ToString()); + return; + } + + ffmpeg.Close(); + } + + public static void SaveVideoToDisk(string link) { + var youTube = YouTube.Default; // starting point for YouTube actions + var video = youTube.GetVideo(link); // gets a Video object with info about the video + File.WriteAllBytes("hello.mp4", video.GetBytes()); + } + + public static void CreateEmptyFile(string filename) { + File.Create(filename).Dispose(); + } + } +} diff --git a/gene-pool-backend/Transcriber.cs b/gene-pool-backend/Transcriber.cs new file mode 100644 index 0000000..bc0f4c1 --- /dev/null +++ b/gene-pool-backend/Transcriber.cs @@ -0,0 +1,838 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE.md file in the project root for full license information. +// + +// +using System; +using System.IO; +using System.Threading.Tasks; +using Microsoft.CognitiveServices.Speech; +using Microsoft.CognitiveServices.Speech.Audio; +// + +namespace gene_pool_backend { + public class Transcribers { + // Speech recognition from microphone. + public static async Task RecognitionWithMicrophoneAsync() { + // + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + // The default language is "en-us". + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + // Creates a speech recognizer using microphone as audio input. + using (var recognizer = new SpeechRecognizer(config)) { + // Starts recognizing. + Console.WriteLine("Say something..."); + + // Starts speech recognition, and returns after a single utterance is recognized. The end of a + // single utterance is determined by listening for silence at the end or until a maximum of 15 + // seconds of audio is processed. The task returns the recognition text as result. + // Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + // shot recognition like command or query. + // For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + var result = await recognizer.RecognizeOnceAsync().ConfigureAwait(false); + + // Checks result. + if (result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={result.Text}"); + } else if (result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } else if (result.Reason == ResultReason.Canceled) { + var cancellation = CancellationDetails.FromResult(result); + Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); + + if (cancellation.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + } + } + // + } + + // Speech recognition in the specified spoken language and uses detailed output format. + public static async Task RecognitionWithLanguageAndDetailedOutputAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + // Replace the language with your language in BCP-47 format, e.g., en-US. + var language = "de-DE"; + config.OutputFormat = OutputFormat.Detailed; + + // Creates a speech recognizer for the specified language, using microphone as audio input. + // Requests detailed output format. + using (var recognizer = new SpeechRecognizer(config, language)) { + // Starts recognizing. + Console.WriteLine($"Say something in {language} ..."); + + // Starts speech recognition, and returns after a single utterance is recognized. The end of a + // single utterance is determined by listening for silence at the end or until a maximum of 15 + // seconds of audio is processed. The task returns the recognition text as result. + // Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + // shot recognition like command or query. + // For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + var result = await recognizer.RecognizeOnceAsync().ConfigureAwait(false); + + // Checks result. + if (result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={result.Text}"); + Console.WriteLine(" DETAILED RESULTS:"); + + var detailedResults = result.Best(); + foreach (var item in detailedResults) // NOTE: We need to put this in all languages, or take it out of CSharp + { + Console.WriteLine($" Confidence: {item.Confidence}, Text: {item.Text}, LexicalForm: {item.LexicalForm}, NormalizedForm: {item.NormalizedForm}, MaskedNormalizedForm: {item.MaskedNormalizedForm}"); + } + } else if (result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } else if (result.Reason == ResultReason.Canceled) { + var cancellation = CancellationDetails.FromResult(result); + Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); + + if (cancellation.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + } + } + } + + // Speech recognition using a customized model. + public static async Task RecognitionUsingCustomizedModelAsync() { + // + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + // Replace with the CRIS endpoint id of your customized model. + var sourceLanguageConfig = SourceLanguageConfig.FromLanguage("en-US", "YourEndpointId"); + + // Creates a speech recognizer using microphone as audio input. + using (var recognizer = new SpeechRecognizer(config, sourceLanguageConfig)) { + Console.WriteLine("Say something..."); + + // Starts speech recognition, and returns after a single utterance is recognized. The end of a + // single utterance is determined by listening for silence at the end or until a maximum of 15 + // seconds of audio is processed. The task returns the recognition text as result. + // Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + // shot recognition like command or query. + // For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + var result = await recognizer.RecognizeOnceAsync().ConfigureAwait(false); + + // Checks results. + if (result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={result.Text}"); + } else if (result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } else if (result.Reason == ResultReason.Canceled) { + var cancellation = CancellationDetails.FromResult(result); + Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); + + if (cancellation.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + } + } + // + } + + // Continuous speech recognition. + public static async Task ContinuousRecognitionWithFileAsync() { + // + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + // Creates a speech recognizer using file as audio input. + // Replace with your own audio file name. + using (var audioInput = AudioConfig.FromWavFileInput("test2.wav")) { + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\n Session started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + // + } + + public static async Task SpeechRecognitionWithCompressedInputPullStreamAudio() { + // + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + // Create an audio stream from a wav file. + // Replace with your own audio file name. + + using (var audioInput = AudioConfig.FromStreamInput(new PullAudioInputStream(new BinaryAudioStreamReader( + new BinaryReader(File.OpenRead(Path.GetFullPath("test2.mp3")))), + AudioStreamFormat.GetCompressedFormat(AudioStreamContainerFormat.MP3)))) { + // Creates a speech recognizer using audio stream input. + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\nSession started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\nSession stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + // + } + + public static async Task SpeechRecognitionWithCompressedInputPushStreamAudio() { + // + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + using (var pushStream = AudioInputStream.CreatePushStream(AudioStreamFormat.GetCompressedFormat(AudioStreamContainerFormat.MP3))) { + using (var audioInput = AudioConfig.FromStreamInput(pushStream)) { + // Creates a speech recognizer using audio stream input. + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\nSession started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\nSession stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + using (BinaryAudioStreamReader reader = Utility.CreateBinaryFileReader(Path.GetFullPath("test2.mp3"))) { + byte[] buffer = new byte[1000]; + while (true) { + var readSamples = reader.Read(buffer, (uint)buffer.Length); + if (readSamples == 0) { + break; + } + pushStream.Write(buffer, readSamples); + } + } + pushStream.Close(); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + // + } + + // Speech recognition with audio stream + public static async Task RecognitionWithPullAudioStreamAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + // Create an audio stream from a wav file. + // Replace with your own audio file name. + using (var audioInput = Utility.OpenWavFile("test2.wav")) { + // Creates a speech recognizer using audio stream input. + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\nSession started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\nSession stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + + public static async Task RecognitionWithPushAudioStreamAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + // Create a push stream + using (var pushStream = AudioInputStream.CreatePushStream()) { + using (var audioInput = AudioConfig.FromStreamInput(pushStream)) { + // Creates a speech recognizer using audio stream input. + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\nSession started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\nSession stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // open and read the wave file and push the buffers into the recognizer + using (BinaryAudioStreamReader reader = Utility.CreateWavReader(Path.GetFullPath("test2.wav"))) { + byte[] buffer = new byte[1000]; + while (true) { + var readSamples = reader.Read(buffer, (uint)buffer.Length); + if (readSamples == 0) { + break; + } + pushStream.Write(buffer, readSamples); + } + } + pushStream.Close(); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + } + + // Continuous speech recognition with keyword spotting. + public static async Task ContinuousRecognitionWithKeywordSpottingAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + // Creates an instance of a keyword recognition model. Update this to + // point to the location of your keyword recognition model. + var model = KeywordRecognitionModel.FromFile("YourKeywordRecognitionModelFile.table"); + + // The phrase your keyword recognition model triggers on. + var keyword = "YourKeyword"; + + var stopRecognition = new TaskCompletionSource(); + + // Creates a speech recognizer using microphone as audio input. + using (var recognizer = new SpeechRecognizer(config)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizingKeyword) { + Console.WriteLine($"RECOGNIZING KEYWORD: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.RecognizingSpeech) { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + } + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedKeyword) { + Console.WriteLine($"RECOGNIZED KEYWORD: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine("NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\n Session started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts recognizing. + Console.WriteLine($"Say something starting with the keyword '{keyword}' followed by whatever you want..."); + + // Starts continuous recognition using the keyword model. Use + // StopKeywordRecognitionAsync() to stop recognition. + await recognizer.StartKeywordRecognitionAsync(model).ConfigureAwait(false); + + // Waits for a single successful keyword-triggered speech recognition (or error). + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopKeywordRecognitionAsync().ConfigureAwait(false); + } + } + + // Continuous speech recognition assisted with a phrase list. + public static async Task ContinuousRecognitionWithFileAndPhraseListsAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var stopRecognition = new TaskCompletionSource(); + + // Creates a speech recognizer using file as audio input. + // Replace with your own audio file name. + using (var audioInput = AudioConfig.FromWavFileInput(@"wreck-a-nice-beach.wav")) { + using (var recognizer = new SpeechRecognizer(config, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\n Session started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Before starting recognition, add a phrase list to help recognition. + PhraseListGrammar phraseListGrammar = PhraseListGrammar.FromRecognizer(recognizer); + phraseListGrammar.AddPhrase("Wreck a nice beach"); + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + + // Speech recognition with auto detection for source language + public static async Task RecognitionWithAutoDetectSourceLanguageAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + // Creates an instance of AutoDetectSourceLanguageConfig with the 2 source language candidates + // Currently this feature only supports 2 different language candidates + // Replace the languages to be the language candidates for your speech. Please see https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support for all supported langauges + var autoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig.FromLanguages(new string[] { "de-DE", "fr-FR" }); + + var stopRecognition = new TaskCompletionSource(); + + // Creates a speech recognizer using the auto detect source language config, and the file as audio input. + // Replace with your own audio file name. + using (var audioInput = AudioConfig.FromWavFileInput(Path.GetFullPath("test2.wav"))) { + using (var recognizer = new SpeechRecognizer(config, autoDetectSourceLanguageConfig, audioInput)) { + // Subscribes to events. + recognizer.Recognizing += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizingSpeech) { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + // Retrieve the detected language + var autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.FromResult(e.Result); + Console.WriteLine($"DETECTED: Language={autoDetectSourceLanguageResult.Language}"); + } + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + // Retrieve the detected language + var autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.FromResult(e.Result); + Console.WriteLine($"DETECTED: Language={autoDetectSourceLanguageResult.Language}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\n Session started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + + // Speech recognition with auto detection for source language and custom model + public static async Task RecognitionWithAutoDetectSourceLanguageAndCustomModelAsync() { + // Creates an instance of a speech config with specified subscription key and service region. + // Replace with your own subscription key and service region (e.g., "westus"). + var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); + + var sourceLanguageConfigs = new SourceLanguageConfig[] + { + // The endpoint id is optional, if not specified, the service will use the default model for en-US + // Replace the language with your source language candidate. Please see https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support for all supported langauges + SourceLanguageConfig.FromLanguage("en-US"), + + // Replace the id with the CRIS endpoint id of your customized model. If the speech is in fr-FR, the service will use the corresponding customized model for speech recognition + SourceLanguageConfig.FromLanguage("fr-FR", "YourEndpointId"), + }; + + // Creates an instance of AutoDetectSourceLanguageConfig with the 2 source language configurations + // Currently this feature only supports 2 different language candidates + var autoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig.FromSourceLanguageConfigs(sourceLanguageConfigs); + + var stopRecognition = new TaskCompletionSource(); + + // Creates a speech recognizer using the auto detect source language config, and the file as audio input. + // Replace with your own audio file name. + using (var audioInput = AudioConfig.FromWavFileInput(Path.GetFullPath("test2.wav"))) { + using (var recognizer = new SpeechRecognizer(config, autoDetectSourceLanguageConfig, audioInput)) { + recognizer.Recognizing += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizingSpeech) { + Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); + // Retrieve the detected language + var autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.FromResult(e.Result); + Console.WriteLine($"DETECTED: Language={autoDetectSourceLanguageResult.Language}"); + } + }; + + recognizer.Recognized += (s, e) => + { + if (e.Result.Reason == ResultReason.RecognizedSpeech) { + Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); + // Retrieve the detected language + var autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.FromResult(e.Result); + Console.WriteLine($"DETECTED: Language={autoDetectSourceLanguageResult.Language}"); + } else if (e.Result.Reason == ResultReason.NoMatch) { + Console.WriteLine($"NOMATCH: Speech could not be recognized."); + } + }; + + recognizer.Canceled += (s, e) => + { + Console.WriteLine($"CANCELED: Reason={e.Reason}"); + + if (e.Reason == CancellationReason.Error) { + Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); + Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); + Console.WriteLine($"CANCELED: Did you update the subscription info?"); + } + + stopRecognition.TrySetResult(0); + }; + + recognizer.SessionStarted += (s, e) => + { + Console.WriteLine("\n Session started event."); + }; + + recognizer.SessionStopped += (s, e) => + { + Console.WriteLine("\n Session stopped event."); + Console.WriteLine("\nStop recognition."); + stopRecognition.TrySetResult(0); + }; + + // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. + await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); + + // Waits for completion. + // Use Task.WaitAny to keep the task rooted. + Task.WaitAny(new[] { stopRecognition.Task }); + + // Stops recognition. + await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); + } + } + } + + public static async Task KeywordRecognizer() { + Console.WriteLine("say something ..."); + using (var audioInput = AudioConfig.FromDefaultMicrophoneInput()) { + using (var recognizer = new KeywordRecognizer(audioInput)) { + var model = KeywordRecognitionModel.FromFile("YourKeywordModelFilename."); + var result = await recognizer.RecognizeOnceAsync(model).ConfigureAwait(false); + Console.WriteLine($"got result reason as {result.Reason}"); + if (result.Reason == ResultReason.RecognizedKeyword) { + var stream = AudioDataStream.FromResult(result); + + await Task.Delay(2000); + + stream.DetachInput(); + await stream.SaveToWaveFileAsync("AudioFromRecognizedKeyword.wav"); + } else { + Console.WriteLine($"got result reason as {result.Reason}. You can't get audio when no keyword is recognized."); + } + } + } + } + } +} \ No newline at end of file diff --git a/gene-pool-backend/Utility.cs b/gene-pool-backend/Utility.cs new file mode 100644 index 0000000..3ef515c --- /dev/null +++ b/gene-pool-backend/Utility.cs @@ -0,0 +1,178 @@ +using Microsoft.CognitiveServices.Speech; +using Microsoft.CognitiveServices.Speech.Audio; +using System; +using System.Diagnostics; +using System.IO; + +namespace gene_pool_backend { + public class Utility { + public static AudioConfig OpenWavFile(string filename) { + BinaryReader reader = new BinaryReader(File.OpenRead(filename)); + return OpenWavFile(reader); + } + + public static AudioConfig OpenWavFile(BinaryReader reader) { + AudioStreamFormat format = readWaveHeader(reader); + return AudioConfig.FromStreamInput(new BinaryAudioStreamReader(reader), format); + } + + public static BinaryAudioStreamReader CreateWavReader(string filename) { + BinaryReader reader = new BinaryReader(File.OpenRead(filename)); + // read the wave header so that it won't get into the in the following readings + AudioStreamFormat format = readWaveHeader(reader); + return new BinaryAudioStreamReader(reader); + } + + public static BinaryAudioStreamReader CreateBinaryFileReader(string filename) { + BinaryReader reader = new BinaryReader(File.OpenRead(filename)); + return new BinaryAudioStreamReader(reader); + } + + public static AudioStreamFormat readWaveHeader(BinaryReader reader) { + // Tag "RIFF" + char[] data = new char[4]; + reader.Read(data, 0, 4); + Trace.Assert((data[0] == 'R') && (data[1] == 'I') && (data[2] == 'F') && (data[3] == 'F'), "Wrong wav header"); + + // Chunk size + long fileSize = reader.ReadInt32(); + + // Subchunk, Wave Header + // Subchunk, Format + // Tag: "WAVE" + reader.Read(data, 0, 4); + Trace.Assert((data[0] == 'W') && (data[1] == 'A') && (data[2] == 'V') && (data[3] == 'E'), "Wrong wav tag in wav header"); + + // Tag: "fmt" + reader.Read(data, 0, 4); + Trace.Assert((data[0] == 'f') && (data[1] == 'm') && (data[2] == 't') && (data[3] == ' '), "Wrong format tag in wav header"); + + // chunk format size + var formatSize = reader.ReadInt32(); + var formatTag = reader.ReadUInt16(); + var channels = reader.ReadUInt16(); + var samplesPerSecond = reader.ReadUInt32(); + var avgBytesPerSec = reader.ReadUInt32(); + var blockAlign = reader.ReadUInt16(); + var bitsPerSample = reader.ReadUInt16(); + + // Until now we have read 16 bytes in format, the rest is cbSize and is ignored for now. + if (formatSize > 16) + reader.ReadBytes((int)(formatSize - 16)); + + // Second Chunk, data + // tag: data. + reader.Read(data, 0, 4); + // Trace.Assert((data[0] == 'd') && (data[1] == 'a') && (data[2] == 't') && (data[3] == 'a'), "Wrong data tag in wav"); + // data chunk size + int dataSize = reader.ReadInt32(); + + // now, we have the format in the format parameter and the + // reader set to the start of the body, i.e., the raw sample data + return AudioStreamFormat.GetWaveFormatPCM(samplesPerSecond, (byte)bitsPerSample, (byte)channels); + } + } + + /// + /// Adapter class to the native stream api. + /// + public sealed class BinaryAudioStreamReader : PullAudioInputStreamCallback { + private System.IO.BinaryReader _reader; + + /// + /// Creates and initializes an instance of BinaryAudioStreamReader. + /// + /// The underlying stream to read the audio data from. Note: The stream contains the bare sample data, not the container (like wave header data, etc). + public BinaryAudioStreamReader(System.IO.BinaryReader reader) { + _reader = reader; + } + + /// + /// Creates and initializes an instance of BinaryAudioStreamReader. + /// + /// The underlying stream to read the audio data from. Note: The stream contains the bare sample data, not the container (like wave header data, etc). + public BinaryAudioStreamReader(System.IO.Stream stream) + : this(new System.IO.BinaryReader(stream)) { + } + + /// + /// Reads binary data from the stream. + /// + /// The buffer to fill + /// The size of data in the buffer. + /// The number of bytes filled, or 0 in case the stream hits its end and there is no more data available. + /// If there is no data immediate available, Read() blocks until the next data becomes available. + public override int Read(byte[] dataBuffer, uint size) { + return _reader.Read(dataBuffer, 0, (int)size); + } + + /// + /// This method performs cleanup of resources. + /// The Boolean parameter indicates whether the method is called from (if is true) or from the finalizer (if is false). + /// Derived classes should override this method to dispose resource if needed. + /// + /// Flag to request disposal. + protected override void Dispose(bool disposing) { + if (disposed) { + return; + } + + if (disposing) { + _reader.Dispose(); + } + + disposed = true; + base.Dispose(disposing); + } + + + private bool disposed = false; + } + + /// + /// Implements a custom class for PushAudioOutputStreamCallback. + /// This is to receive the audio data when the synthesizer has produced audio data. + /// + public sealed class PushAudioOutputStreamSampleCallback : PushAudioOutputStreamCallback { + private byte[] audioData; + + /// + /// Constructor + /// + public PushAudioOutputStreamSampleCallback() { + audioData = new byte[0]; + } + + /// + /// A callback which is invoked when the synthesizer has a output audio chunk to write out + /// + /// The output audio chunk sent by synthesizer + /// Tell synthesizer how many bytes are received + public override uint Write(byte[] dataBuffer) { + int oldSize = audioData.Length; + Array.Resize(ref audioData, oldSize + dataBuffer.Length); + for (int i = 0; i < dataBuffer.Length; ++i) { + audioData[oldSize + i] = dataBuffer[i]; + } + + Console.WriteLine($"{dataBuffer.Length} bytes received."); + + return (uint)dataBuffer.Length; + } + + /// + /// A callback which is invoked when the synthesizer is about to close the stream + /// + public override void Close() { + Console.WriteLine("Push audio output stream closed."); + } + + /// + /// Get the received audio data + /// + /// The received audio data in byte array + public byte[] GetAudioData() { + return audioData; + } + } +} diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Core.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Core.dll new file mode 100644 index 0000000..d602d3c Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Core.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Blobs.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Blobs.dll new file mode 100644 index 0000000..13583d7 Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Blobs.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Common.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Common.dll new file mode 100644 index 0000000..66de86b Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/Azure.Storage.Common.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/Microsoft.Bcl.AsyncInterfaces.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 0000000..30cb199 Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/NAudio.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/NAudio.dll new file mode 100644 index 0000000..38dcd81 Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/NAudio.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/NReco.VideoConverter.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/NReco.VideoConverter.dll new file mode 100644 index 0000000..62fd447 Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/NReco.VideoConverter.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/System.Resources.Extensions.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/System.Resources.Extensions.dll new file mode 100644 index 0000000..83fe498 Binary files /dev/null and b/gene-pool-backend/bin/Debug/netcoreapp3.1/System.Resources.Extensions.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.deps.json b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.deps.json index d60d3af..908700c 100644 --- a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.deps.json +++ b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.deps.json @@ -24,8 +24,11 @@ ".NETCoreApp,Version=v3.1": { "gene-pool-backend/1.0.0": { "dependencies": { + "Azure.Storage.Blobs": "12.6.0", "MediaToolkit": "1.1.0.1", "Microsoft.CognitiveServices.Speech": "1.13.0", + "NAudio": "1.10.0", + "NReco.VideoConverter": "1.1.4", "VideoLibrary": "3.0.6", "Microsoft.AspNetCore.Antiforgery": "3.1.0.0", "Microsoft.AspNetCore.Authentication.Abstractions": "3.1.0.0", @@ -153,7 +156,7 @@ "Microsoft.VisualBasic.Core": "10.0.5.0", "Microsoft.VisualBasic": "10.0.0.0", "Microsoft.Win32.Primitives.Reference": "4.1.2.0", - "Microsoft.Win32.Registry": "4.1.3.0", + "Microsoft.Win32.Registry.Reference": "4.1.3.0", "mscorlib": "4.0.0.0", "netstandard": "2.1.0.0", "System.AppContext.Reference": "4.2.2.0", @@ -211,7 +214,7 @@ "System.Linq.Expressions.Reference": "4.2.2.0", "System.Linq.Parallel": "4.0.4.0", "System.Linq.Queryable": "4.0.4.0", - "System.Memory": "4.2.1.0", + "System.Memory.Reference": "4.2.1.0", "System.Net": "4.0.0.0", "System.Net.Http.Reference": "4.2.2.0", "System.Net.HttpListener": "4.0.2.0", @@ -230,7 +233,7 @@ "System.Net.WebSockets.Client": "4.1.2.0", "System.Net.WebSockets": "4.1.2.0", "System.Numerics": "4.0.0.0", - "System.Numerics.Vectors": "4.1.6.0", + "System.Numerics.Vectors.Reference": "4.1.6.0", "System.ObjectModel.Reference": "4.1.2.0", "System.Reflection.DispatchProxy": "4.0.6.0", "System.Reflection.Reference": "4.2.2.0", @@ -260,7 +263,7 @@ "System.Runtime.Serialization.Json": "4.0.5.0", "System.Runtime.Serialization.Primitives": "4.2.2.0", "System.Runtime.Serialization.Xml": "4.1.5.0", - "System.Security.AccessControl": "4.1.1.0", + "System.Security.AccessControl.Reference": "4.1.1.0", "System.Security.Claims": "4.1.2.0", "System.Security.Cryptography.Algorithms.Reference": "4.3.2.0", "System.Security.Cryptography.Cng.Reference": "4.3.3.0", @@ -272,7 +275,7 @@ "System.Security": "4.0.0.0", "System.Security.Permissions": "4.0.3.0", "System.Security.Principal": "4.1.2.0", - "System.Security.Principal.Windows": "4.1.1.0", + "System.Security.Principal.Windows.Reference": "4.1.1.0", "System.Security.SecureString": "4.1.2.0", "System.ServiceModel.Web": "4.0.0.0", "System.ServiceProcess": "4.0.0.0", @@ -280,7 +283,7 @@ "System.Text.Encoding.Reference": "4.1.2.0", "System.Text.Encoding.Extensions.Reference": "4.1.2.0", "System.Text.Encodings.Web": "4.0.5.0", - "System.Text.Json": "4.0.1.0", + "System.Text.Json.Reference": "4.0.1.0", "System.Text.RegularExpressions.Reference": "4.2.2.0", "System.Threading.Channels": "4.0.2.0", "System.Threading.Reference": "4.1.2.0", @@ -317,6 +320,56 @@ "gene-pool-backend.dll": {} } }, + "Azure.Core/1.4.1": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.4.1.0", + "fileVersion": "1.400.120.41802" + } + }, + "compile": { + "lib/netstandard2.0/Azure.Core.dll": {} + } + }, + "Azure.Storage.Blobs/12.6.0": { + "dependencies": { + "Azure.Core": "1.4.1", + "Azure.Storage.Common": "12.5.2", + "System.Text.Json": "4.6.0" + }, + "runtime": { + "lib/netstandard2.0/Azure.Storage.Blobs.dll": { + "assemblyVersion": "12.6.0.0", + "fileVersion": "12.600.20.43102" + } + }, + "compile": { + "lib/netstandard2.0/Azure.Storage.Blobs.dll": {} + } + }, + "Azure.Storage.Common/12.5.2": { + "dependencies": { + "Azure.Core": "1.4.1" + }, + "runtime": { + "lib/netstandard2.0/Azure.Storage.Common.dll": { + "assemblyVersion": "12.5.2.0", + "fileVersion": "12.500.220.43102" + } + }, + "compile": { + "lib/netstandard2.0/Azure.Storage.Common.dll": {} + } + }, "MediaToolkit/1.1.0.1": { "runtime": { "lib/net40/MediaToolkit.dll": { @@ -328,6 +381,17 @@ "lib/net40/MediaToolkit.dll": {} } }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.19.46214" + } + }, + "compile": { + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} + } + }, "Microsoft.CognitiveServices.Speech/1.13.0": { "runtime": { "lib/netstandard2.0/Microsoft.CognitiveServices.Speech.csharp.dll": { @@ -455,18 +519,39 @@ "lib/netstandard2.0/Microsoft.CognitiveServices.Speech.csharp.dll": {} } }, - "Microsoft.NETCore.Platforms/1.1.0": {}, + "Microsoft.NETCore.Platforms/3.1.0": {}, "Microsoft.NETCore.Targets/1.1.0": {}, "Microsoft.Win32.Primitives/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, + "Microsoft.Win32.Registry/4.7.0": { + "dependencies": { + "System.Security.AccessControl": "4.7.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, + "NAudio/1.10.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.7.0", + "System.Resources.Extensions": "4.7.0" + }, + "runtime": { + "lib/netcoreapp3.0/NAudio.dll": { + "assemblyVersion": "1.10.0.0", + "fileVersion": "1.10.0.0" + } + }, + "compile": { + "lib/netcoreapp3.0/NAudio.dll": {} + } + }, "NETStandard.Library/1.6.1": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", @@ -523,24 +608,35 @@ "lib/netstandard2.0/Newtonsoft.Json.dll": {} } }, + "NReco.VideoConverter/1.1.4": { + "runtime": { + "lib/net40/NReco.VideoConverter.dll": { + "assemblyVersion": "1.1.4.0", + "fileVersion": "1.1.4.0" + } + }, + "compile": { + "lib/net40/NReco.VideoConverter.dll": {} + } + }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.native.System/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, @@ -576,18 +672,10 @@ "System.Runtime": "4.3.0" } }, - "System.Buffers/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, + "System.Buffers/4.5.0": {}, "System.Collections/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } @@ -608,7 +696,7 @@ }, "System.Console/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", @@ -617,44 +705,36 @@ }, "System.Diagnostics.Debug/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, + "System.Diagnostics.DiagnosticSource/4.6.0": {}, "System.Diagnostics.Tools/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" @@ -662,7 +742,7 @@ }, "System.Globalization.Extensions/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", @@ -672,7 +752,7 @@ }, "System.IO/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", @@ -681,8 +761,8 @@ }, "System.IO.Compression/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Buffers": "4.3.0", + "Microsoft.NETCore.Platforms": "3.1.0", + "System.Buffers": "4.5.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", @@ -700,7 +780,7 @@ }, "System.IO.Compression.ZipFile/4.3.0": { "dependencies": { - "System.Buffers": "4.3.0", + "System.Buffers": "4.5.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", @@ -713,7 +793,7 @@ }, "System.IO.FileSystem/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", @@ -758,12 +838,13 @@ "System.Threading": "4.3.0" } }, + "System.Memory/4.5.3": {}, "System.Net.Http/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", @@ -790,7 +871,7 @@ }, "System.Net.Primitives/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" @@ -798,7 +879,7 @@ }, "System.Net.Sockets/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", @@ -806,6 +887,7 @@ "System.Threading.Tasks": "4.3.0" } }, + "System.Numerics.Vectors/4.5.0": {}, "System.ObjectModel/4.3.0": { "dependencies": { "System.Collections": "4.3.0", @@ -817,7 +899,7 @@ }, "System.Reflection/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", @@ -850,7 +932,7 @@ }, "System.Reflection.Extensions/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" @@ -858,7 +940,7 @@ }, "System.Reflection.Primitives/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } @@ -869,9 +951,20 @@ "System.Runtime": "4.3.0" } }, + "System.Resources.Extensions/4.7.0": { + "runtime": { + "lib/netstandard2.0/System.Resources.Extensions.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.700.19.56404" + } + }, + "compile": { + "ref/netstandard2.0/System.Resources.Extensions.dll": {} + } + }, "System.Resources.ResourceManager/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", @@ -880,27 +973,27 @@ }, "System.Runtime/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.Extensions/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", @@ -927,9 +1020,15 @@ "System.Runtime.Extensions": "4.3.0" } }, + "System.Security.AccessControl/4.7.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, "System.Security.Cryptography.Algorithms/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", @@ -947,7 +1046,7 @@ }, "System.Security.Cryptography.Cng/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", @@ -962,7 +1061,7 @@ }, "System.Security.Cryptography.Csp/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", @@ -979,7 +1078,7 @@ }, "System.Security.Cryptography.Encoding/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", @@ -1023,7 +1122,7 @@ }, "System.Security.Cryptography.X509Certificates/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", @@ -1050,21 +1149,23 @@ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, + "System.Security.Principal.Windows/4.7.0": {}, "System.Text.Encoding/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.Extensions/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, + "System.Text.Json/4.6.0": {}, "System.Text.RegularExpressions/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" @@ -1078,21 +1179,15 @@ }, "System.Threading.Tasks/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, - "System.Threading.Tasks.Extensions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, + "System.Threading.Tasks.Extensions/4.5.2": {}, "System.Threading.Timer/4.3.0": { "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "3.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } @@ -1113,7 +1208,7 @@ "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" + "System.Threading.Tasks.Extensions": "4.5.2" } }, "System.Xml.XDocument/4.3.0": { @@ -1903,7 +1998,7 @@ }, "compileOnly": true }, - "Microsoft.Win32.Registry/4.1.3.0": { + "Microsoft.Win32.Registry.Reference/4.1.3.0": { "compile": { "Microsoft.Win32.Registry.dll": {} }, @@ -2251,7 +2346,7 @@ }, "compileOnly": true }, - "System.Memory/4.2.1.0": { + "System.Memory.Reference/4.2.1.0": { "compile": { "System.Memory.dll": {} }, @@ -2365,7 +2460,7 @@ }, "compileOnly": true }, - "System.Numerics.Vectors/4.1.6.0": { + "System.Numerics.Vectors.Reference/4.1.6.0": { "compile": { "System.Numerics.Vectors.dll": {} }, @@ -2545,7 +2640,7 @@ }, "compileOnly": true }, - "System.Security.AccessControl/4.1.1.0": { + "System.Security.AccessControl.Reference/4.1.1.0": { "compile": { "System.Security.AccessControl.dll": {} }, @@ -2617,7 +2712,7 @@ }, "compileOnly": true }, - "System.Security.Principal.Windows/4.1.1.0": { + "System.Security.Principal.Windows.Reference/4.1.1.0": { "compile": { "System.Security.Principal.Windows.dll": {} }, @@ -2665,7 +2760,7 @@ }, "compileOnly": true }, - "System.Text.Json/4.0.1.0": { + "System.Text.Json.Reference/4.0.1.0": { "compile": { "System.Text.Json.dll": {} }, @@ -2847,6 +2942,27 @@ "serviceable": false, "sha512": "" }, + "Azure.Core/1.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6LbGLiZwlU6SfOaINCfrQ+f91bRWZ8XvB90Qfm69x1t3z+5D4jmXnQiuPYPZcgtxFjPKA3IwyHGuDZRkSo1Urg==", + "path": "azure.core/1.4.1", + "hashPath": "azure.core.1.4.1.nupkg.sha512" + }, + "Azure.Storage.Blobs/12.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dyrUge8qg6MeI9kln5GPWm232iF+u/BpN2pkzaHUYltqkvqTv9EDIXuG7dYYVCX5ZrOQoiN+Cl42qEQSC/cLXA==", + "path": "azure.storage.blobs/12.6.0", + "hashPath": "azure.storage.blobs.12.6.0.nupkg.sha512" + }, + "Azure.Storage.Common/12.5.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Sd6C0TgGkzEHcNv95jO52vN1TroTrBRCJJOCog6NEfUoAnmxUus4j9QraDfITvxIIMdyKg7WXB6vX58Bq2/WaQ==", + "path": "azure.storage.common/12.5.2", + "hashPath": "azure.storage.common.12.5.2.nupkg.sha512" + }, "MediaToolkit/1.1.0.1": { "type": "package", "serviceable": true, @@ -2854,6 +2970,13 @@ "path": "mediatoolkit/1.1.0.1", "hashPath": "mediatoolkit.1.1.0.1.nupkg.sha512" }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==", + "path": "microsoft.bcl.asyncinterfaces/1.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512" + }, "Microsoft.CognitiveServices.Speech/1.13.0": { "type": "package", "serviceable": true, @@ -2861,12 +2984,12 @@ "path": "microsoft.cognitiveservices.speech/1.13.0", "hashPath": "microsoft.cognitiveservices.speech.1.13.0.nupkg.sha512" }, - "Microsoft.NETCore.Platforms/1.1.0": { + "Microsoft.NETCore.Platforms/3.1.0": { "type": "package", "serviceable": true, - "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + "sha512": "sha512-z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==", + "path": "microsoft.netcore.platforms/3.1.0", + "hashPath": "microsoft.netcore.platforms.3.1.0.nupkg.sha512" }, "Microsoft.NETCore.Targets/1.1.0": { "type": "package", @@ -2882,6 +3005,20 @@ "path": "microsoft.win32.primitives/4.3.0", "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" }, + "Microsoft.Win32.Registry/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", + "path": "microsoft.win32.registry/4.7.0", + "hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512" + }, + "NAudio/1.10.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y6VvwSPfJhElUllkzE2FHXHAADYFGLwMPt048KlPyuUXcq4E0VEi+4hWrFd+lBsrb+Q5DvPA9w86oRTvKRO9UQ==", + "path": "naudio/1.10.0", + "hashPath": "naudio.1.10.0.nupkg.sha512" + }, "NETStandard.Library/1.6.1": { "type": "package", "serviceable": true, @@ -2896,6 +3033,13 @@ "path": "newtonsoft.json/12.0.3", "hashPath": "newtonsoft.json.12.0.3.nupkg.sha512" }, + "NReco.VideoConverter/1.1.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b501O2O3XD5/vbs3l/ZnPieXJfelluw+6dFKLbii5tgh+nXG+wOnZAiSKgJGAzqIUNWbCF1oiKBg1Kn/2BVY8Q==", + "path": "nreco.videoconverter/1.1.4", + "hashPath": "nreco.videoconverter.1.1.4.nupkg.sha512" + }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "type": "package", "serviceable": true, @@ -3015,12 +3159,12 @@ "path": "system.appcontext/4.3.0", "hashPath": "system.appcontext.4.3.0.nupkg.sha512" }, - "System.Buffers/4.3.0": { + "System.Buffers/4.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", - "path": "system.buffers/4.3.0", - "hashPath": "system.buffers.4.3.0.nupkg.sha512" + "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==", + "path": "system.buffers/4.5.0", + "hashPath": "system.buffers.4.5.0.nupkg.sha512" }, "System.Collections/4.3.0": { "type": "package", @@ -3050,12 +3194,12 @@ "path": "system.diagnostics.debug/4.3.0", "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" }, - "System.Diagnostics.DiagnosticSource/4.3.0": { + "System.Diagnostics.DiagnosticSource/4.6.0": { "type": "package", "serviceable": true, - "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", - "path": "system.diagnostics.diagnosticsource/4.3.0", - "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" }, "System.Diagnostics.Tools/4.3.0": { "type": "package", @@ -3141,6 +3285,13 @@ "path": "system.linq.expressions/4.3.0", "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" }, + "System.Memory/4.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "path": "system.memory/4.5.3", + "hashPath": "system.memory.4.5.3.nupkg.sha512" + }, "System.Net.Http/4.3.0": { "type": "package", "serviceable": true, @@ -3162,6 +3313,13 @@ "path": "system.net.sockets/4.3.0", "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, "System.ObjectModel/4.3.0": { "type": "package", "serviceable": true, @@ -3218,6 +3376,13 @@ "path": "system.reflection.typeextensions/4.3.0", "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" }, + "System.Resources.Extensions/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Efd5jls31pR1MkEl/IlT/lOzG0nGRCoYnHctZTq597+absekOXaP53yUlv5U4DfcfImSAAupWVpTW1tE54lF7A==", + "path": "system.resources.extensions/4.7.0", + "hashPath": "system.resources.extensions.4.7.0.nupkg.sha512" + }, "System.Resources.ResourceManager/4.3.0": { "type": "package", "serviceable": true, @@ -3267,6 +3432,13 @@ "path": "system.runtime.numerics/4.3.0", "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" }, + "System.Security.AccessControl/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", + "path": "system.security.accesscontrol/4.7.0", + "hashPath": "system.security.accesscontrol.4.7.0.nupkg.sha512" + }, "System.Security.Cryptography.Algorithms/4.3.0": { "type": "package", "serviceable": true, @@ -3316,6 +3488,13 @@ "path": "system.security.cryptography.x509certificates/4.3.0", "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" }, + "System.Security.Principal.Windows/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==", + "path": "system.security.principal.windows/4.7.0", + "hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512" + }, "System.Text.Encoding/4.3.0": { "type": "package", "serviceable": true, @@ -3330,6 +3509,13 @@ "path": "system.text.encoding.extensions/4.3.0", "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" }, + "System.Text.Json/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==", + "path": "system.text.json/4.6.0", + "hashPath": "system.text.json.4.6.0.nupkg.sha512" + }, "System.Text.RegularExpressions/4.3.0": { "type": "package", "serviceable": true, @@ -3351,12 +3537,12 @@ "path": "system.threading.tasks/4.3.0", "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" }, - "System.Threading.Tasks.Extensions/4.3.0": { + "System.Threading.Tasks.Extensions/4.5.2": { "type": "package", "serviceable": true, - "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "path": "system.threading.tasks.extensions/4.3.0", - "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + "sha512": "sha512-BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", + "path": "system.threading.tasks.extensions/4.5.2", + "hashPath": "system.threading.tasks.extensions.4.5.2.nupkg.sha512" }, "System.Threading.Timer/4.3.0": { "type": "package", @@ -4016,7 +4202,7 @@ "serviceable": false, "sha512": "" }, - "Microsoft.Win32.Registry/4.1.3.0": { + "Microsoft.Win32.Registry.Reference/4.1.3.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" @@ -4306,7 +4492,7 @@ "serviceable": false, "sha512": "" }, - "System.Memory/4.2.1.0": { + "System.Memory.Reference/4.2.1.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" @@ -4401,7 +4587,7 @@ "serviceable": false, "sha512": "" }, - "System.Numerics.Vectors/4.1.6.0": { + "System.Numerics.Vectors.Reference/4.1.6.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" @@ -4551,7 +4737,7 @@ "serviceable": false, "sha512": "" }, - "System.Security.AccessControl/4.1.1.0": { + "System.Security.AccessControl.Reference/4.1.1.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" @@ -4611,7 +4797,7 @@ "serviceable": false, "sha512": "" }, - "System.Security.Principal.Windows/4.1.1.0": { + "System.Security.Principal.Windows.Reference/4.1.1.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" @@ -4651,7 +4837,7 @@ "serviceable": false, "sha512": "" }, - "System.Text.Json/4.0.1.0": { + "System.Text.Json.Reference/4.0.1.0": { "type": "referenceassembly", "serviceable": false, "sha512": "" diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.dll b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.dll index 6a014ea..4a5b0c6 100644 Binary files a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.dll and b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.dll differ diff --git a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.pdb b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.pdb index bebd140..03bfb86 100644 Binary files a/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.pdb and b/gene-pool-backend/bin/Debug/netcoreapp3.1/gene-pool-backend.pdb differ diff --git a/gene-pool-backend/ffmpeg.exe b/gene-pool-backend/ffmpeg.exe new file mode 100644 index 0000000..e0e7780 Binary files /dev/null and b/gene-pool-backend/ffmpeg.exe differ diff --git a/gene-pool-backend/gene-pool-backend.csproj b/gene-pool-backend/gene-pool-backend.csproj index 77a416f..0b887c0 100644 --- a/gene-pool-backend/gene-pool-backend.csproj +++ b/gene-pool-backend/gene-pool-backend.csproj @@ -6,8 +6,11 @@ + + + diff --git a/gene-pool-backend/hello.mp4 b/gene-pool-backend/hello.mp4 new file mode 100644 index 0000000..f1f6d4a Binary files /dev/null and b/gene-pool-backend/hello.mp4 differ diff --git a/gene-pool-backend/hello.wav b/gene-pool-backend/hello.wav new file mode 100644 index 0000000..6aa4997 Binary files /dev/null and b/gene-pool-backend/hello.wav differ diff --git a/gene-pool-backend/helloworld.wav b/gene-pool-backend/helloworld.wav new file mode 100644 index 0000000..4c3abcb Binary files /dev/null and b/gene-pool-backend/helloworld.wav differ diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.assets.cache b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.assets.cache index 2c0c8ba..9af2b97 100644 Binary files a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.assets.cache and b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.assets.cache differ diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.CoreCompileInputs.cache b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.CoreCompileInputs.cache index 38ad38b..badb2be 100644 --- a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.CoreCompileInputs.cache +++ b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -1fca47030f2ff071e89936fe513850e96dc89a5a +2851b1fbf9c9fa35b10bb22ae08c5a9f55b045c4 diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.FileListAbsolute.txt b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.FileListAbsolute.txt index c971123..51a0ad5 100644 --- a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.FileListAbsolute.txt +++ b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csproj.FileListAbsolute.txt @@ -40,8 +40,15 @@ C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backen C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\Microsoft.CognitiveServices.Speech.extension.codec.dll C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\Microsoft.CognitiveServices.Speech.extension.kws.dll C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\Microsoft.CognitiveServices.Speech.extension.silk_codec.dll -C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.csproj.CoreCompileInputs.cache -C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.MvcApplicationPartsAssemblyInfo.cache C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.dll C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.pdb C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.genruntimeconfig.cache +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\NAudio.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\System.Resources.Extensions.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\Azure.Core.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\Azure.Storage.Blobs.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\Azure.Storage.Common.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\bin\Debug\netcoreapp3.1\NReco.VideoConverter.dll +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.csproj.CoreCompileInputs.cache +C:\Users\justi\OneDrive\Documents\Code\Github\gene-pool-backend\gene-pool-backend\obj\Debug\netcoreapp3.1\gene-pool-backend.MvcApplicationPartsAssemblyInfo.cache diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csprojAssemblyReference.cache b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csprojAssemblyReference.cache index 32807a3..ae13177 100644 Binary files a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csprojAssemblyReference.cache and b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.csprojAssemblyReference.cache differ diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.dll b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.dll index 6a014ea..4a5b0c6 100644 Binary files a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.dll and b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.dll differ diff --git a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.pdb b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.pdb index bebd140..03bfb86 100644 Binary files a/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.pdb and b/gene-pool-backend/obj/Debug/netcoreapp3.1/gene-pool-backend.pdb differ diff --git a/gene-pool-backend/obj/gene-pool-backend.csproj.nuget.dgspec.json b/gene-pool-backend/obj/gene-pool-backend.csproj.nuget.dgspec.json index 4fa86ec..34920c9 100644 --- a/gene-pool-backend/obj/gene-pool-backend.csproj.nuget.dgspec.json +++ b/gene-pool-backend/obj/gene-pool-backend.csproj.nuget.dgspec.json @@ -38,6 +38,10 @@ "frameworks": { "netcoreapp3.1": { "dependencies": { + "Azure.Storage.Blobs": { + "target": "Package", + "version": "[12.6.0, )" + }, "MediaToolkit": { "target": "Package", "version": "[1.1.0.1, )" @@ -46,6 +50,14 @@ "target": "Package", "version": "[1.13.0, )" }, + "NAudio": { + "target": "Package", + "version": "[1.10.0, )" + }, + "NReco.VideoConverter": { + "target": "Package", + "version": "[1.1.4, )" + }, "VideoLibrary": { "target": "Package", "version": "[3.0.6, )" diff --git a/gene-pool-backend/obj/project.assets.json b/gene-pool-backend/obj/project.assets.json index d832fd3..c52de1e 100644 --- a/gene-pool-backend/obj/project.assets.json +++ b/gene-pool-backend/obj/project.assets.json @@ -2,6 +2,50 @@ "version": 3, "targets": { ".NETCoreApp,Version=v3.1": { + "Azure.Core/1.4.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Buffers": "4.5.0", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory": "4.5.3", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Json": "4.6.0", + "System.Threading.Tasks.Extensions": "4.5.2" + }, + "compile": { + "lib/netstandard2.0/Azure.Core.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": {} + } + }, + "Azure.Storage.Blobs/12.6.0": { + "type": "package", + "dependencies": { + "Azure.Core": "1.4.1", + "Azure.Storage.Common": "12.5.2", + "System.Text.Json": "4.6.0" + }, + "compile": { + "lib/netstandard2.0/Azure.Storage.Blobs.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Azure.Storage.Blobs.dll": {} + } + }, + "Azure.Storage.Common/12.5.2": { + "type": "package", + "dependencies": { + "Azure.Core": "1.4.1" + }, + "compile": { + "lib/netstandard2.0/Azure.Storage.Common.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Azure.Storage.Common.dll": {} + } + }, "MediaToolkit/1.1.0.1": { "type": "package", "compile": { @@ -11,6 +55,15 @@ "lib/net40/MediaToolkit.dll": {} } }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "type": "package", + "compile": { + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} + } + }, "Microsoft.CognitiveServices.Speech/1.13.0": { "type": "package", "compile": { @@ -113,7 +166,7 @@ } } }, - "Microsoft.NETCore.Platforms/1.1.0": { + "Microsoft.NETCore.Platforms/3.1.0": { "type": "package", "compile": { "lib/netstandard1.0/_._": {} @@ -142,6 +195,42 @@ "ref/netstandard1.3/Microsoft.Win32.Primitives.dll": {} } }, + "Microsoft.Win32.Registry/4.7.0": { + "type": "package", + "dependencies": { + "System.Security.AccessControl": "4.7.0", + "System.Security.Principal.Windows": "4.7.0" + }, + "compile": { + "ref/netstandard2.0/Microsoft.Win32.Registry.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Win32.Registry.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "NAudio/1.10.0": { + "type": "package", + "dependencies": { + "Microsoft.Win32.Registry": "4.7.0", + "System.Resources.Extensions": "4.7.0" + }, + "compile": { + "lib/netcoreapp3.0/NAudio.dll": {} + }, + "runtime": { + "lib/netcoreapp3.0/NAudio.dll": {} + } + }, "NETStandard.Library/1.6.1": { "type": "package", "dependencies": { @@ -200,6 +289,15 @@ "lib/netstandard2.0/Newtonsoft.Json.dll": {} } }, + "NReco.VideoConverter/1.1.4": { + "type": "package", + "compile": { + "lib/net40/NReco.VideoConverter.dll": {} + }, + "runtime": { + "lib/net40/NReco.VideoConverter.dll": {} + } + }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "type": "package", "runtimeTargets": { @@ -383,20 +481,13 @@ "lib/netstandard1.6/System.AppContext.dll": {} } }, - "System.Buffers/4.3.0": { + "System.Buffers/4.5.0": { "type": "package", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, "compile": { - "lib/netstandard1.1/_._": {} + "ref/netcoreapp2.0/_._": {} }, "runtime": { - "lib/netstandard1.1/System.Buffers.dll": {} + "lib/netcoreapp2.0/_._": {} } }, "System.Collections/4.3.0": { @@ -455,17 +546,10 @@ "ref/netstandard1.3/System.Diagnostics.Debug.dll": {} } }, - "System.Diagnostics.DiagnosticSource/4.3.0": { + "System.Diagnostics.DiagnosticSource/4.6.0": { "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, "compile": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} }, "runtime": { "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": {} @@ -678,6 +762,15 @@ "lib/netstandard1.6/System.Linq.Expressions.dll": {} } }, + "System.Memory/4.5.3": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, "System.Net.Http/4.3.0": { "type": "package", "dependencies": { @@ -748,6 +841,15 @@ "ref/netstandard1.3/System.Net.Sockets.dll": {} } }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, "System.ObjectModel/4.3.0": { "type": "package", "dependencies": { @@ -858,6 +960,15 @@ "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} } }, + "System.Resources.Extensions/4.7.0": { + "type": "package", + "compile": { + "ref/netstandard2.0/System.Resources.Extensions.dll": {} + }, + "runtime": { + "lib/netstandard2.0/System.Resources.Extensions.dll": {} + } + }, "System.Resources.ResourceManager/4.3.0": { "type": "package", "dependencies": { @@ -960,6 +1071,25 @@ "lib/netstandard1.3/System.Runtime.Numerics.dll": {} } }, + "System.Security.AccessControl/4.7.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "System.Security.Principal.Windows": "4.7.0" + }, + "compile": { + "ref/netstandard2.0/System.Security.AccessControl.dll": {} + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": {} + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, "System.Security.Cryptography.Algorithms/4.3.0": { "type": "package", "dependencies": { @@ -1177,6 +1307,25 @@ } } }, + "System.Security.Principal.Windows/4.7.0": { + "type": "package", + "compile": { + "ref/netcoreapp3.0/System.Security.Principal.Windows.dll": {} + }, + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, "System.Text.Encoding/4.3.0": { "type": "package", "dependencies": { @@ -1200,6 +1349,15 @@ "ref/netstandard1.3/System.Text.Encoding.Extensions.dll": {} } }, + "System.Text.Json/4.6.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.0/System.Text.Json.dll": {} + }, + "runtime": { + "lib/netcoreapp3.0/System.Text.Json.dll": {} + } + }, "System.Text.RegularExpressions/4.3.0": { "type": "package", "dependencies": { @@ -1236,18 +1394,13 @@ "ref/netstandard1.3/System.Threading.Tasks.dll": {} } }, - "System.Threading.Tasks.Extensions/4.3.0": { + "System.Threading.Tasks.Extensions/4.5.2": { "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, "compile": { - "lib/netstandard1.0/_._": {} + "ref/netcoreapp2.1/_._": {} }, "runtime": { - "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": {} + "lib/netcoreapp2.1/_._": {} } }, "System.Threading.Timer/4.3.0": { @@ -1326,6 +1479,54 @@ } }, "libraries": { + "Azure.Core/1.4.1": { + "sha512": "6LbGLiZwlU6SfOaINCfrQ+f91bRWZ8XvB90Qfm69x1t3z+5D4jmXnQiuPYPZcgtxFjPKA3IwyHGuDZRkSo1Urg==", + "type": "package", + "path": "azure.core/1.4.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.core.1.4.1.nupkg.sha512", + "azure.core.nuspec", + "lib/netstandard2.0/Azure.Core.dll", + "lib/netstandard2.0/Azure.Core.xml", + "pkgicon.png" + ] + }, + "Azure.Storage.Blobs/12.6.0": { + "sha512": "dyrUge8qg6MeI9kln5GPWm232iF+u/BpN2pkzaHUYltqkvqTv9EDIXuG7dYYVCX5ZrOQoiN+Cl42qEQSC/cLXA==", + "type": "package", + "path": "azure.storage.blobs/12.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.storage.blobs.12.6.0.nupkg.sha512", + "azure.storage.blobs.nuspec", + "lib/netstandard2.0/Azure.Storage.Blobs.dll", + "lib/netstandard2.0/Azure.Storage.Blobs.xml", + "pkgicon.png" + ] + }, + "Azure.Storage.Common/12.5.2": { + "sha512": "Sd6C0TgGkzEHcNv95jO52vN1TroTrBRCJJOCog6NEfUoAnmxUus4j9QraDfITvxIIMdyKg7WXB6vX58Bq2/WaQ==", + "type": "package", + "path": "azure.storage.common/12.5.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.storage.common.12.5.2.nupkg.sha512", + "azure.storage.common.nuspec", + "lib/netstandard2.0/Azure.Storage.Common.dll", + "lib/netstandard2.0/Azure.Storage.Common.xml", + "pkgicon.png" + ] + }, "MediaToolkit/1.1.0.1": { "sha512": "R3u+udQOUDBGUzx4wOHsp6yiSLMdJle7a9E7JK4/btL4w/pdXAmNHP2JMe2Fpt35kLjKNE74oNKUM1hc6RceIA==", "type": "package", @@ -1340,6 +1541,30 @@ "mediatoolkit.nuspec" ] }, + "Microsoft.Bcl.AsyncInterfaces/1.0.0": { + "sha512": "K63Y4hORbBcKLWH5wnKgzyn7TOfYzevIEwIedQHBIkmkEBA9SCqgvom+XTuE+fAFGvINGkhFItaZ2dvMGdT5iw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "ref/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "Microsoft.CognitiveServices.Speech/1.13.0": { "sha512": "gXWDNbbIDYB41pcCJtps+Pq8OVdZtjgdUj5SEjZgAZEge7QbHsMGmpRklM06A2CVxjNoP+vf4zZ3URANHpYM7A==", "type": "package", @@ -1530,19 +1755,21 @@ "runtimes/win10-arm64/nativeassets/uap/Microsoft.CognitiveServices.Speech.extension.silk_codec.dll" ] }, - "Microsoft.NETCore.Platforms/1.1.0": { - "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "Microsoft.NETCore.Platforms/3.1.0": { + "sha512": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==", "type": "package", - "path": "microsoft.netcore.platforms/1.1.0", + "path": "microsoft.netcore.platforms/3.1.0", "files": [ ".nupkg.metadata", ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", "lib/netstandard1.0/_._", - "microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "microsoft.netcore.platforms.3.1.0.nupkg.sha512", "microsoft.netcore.platforms.nuspec", - "runtime.json" + "runtime.json", + "useSharedDesignerContext.txt", + "version.txt" ] }, "Microsoft.NETCore.Targets/1.1.0": { @@ -1598,6 +1825,73 @@ "ref/xamarinwatchos10/_._" ] }, + "Microsoft.Win32.Registry/4.7.0": { + "sha512": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", + "type": "package", + "path": "microsoft.win32.registry/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.dll", + "lib/net461/Microsoft.Win32.Registry.xml", + "lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "microsoft.win32.registry.4.7.0.nupkg.sha512", + "microsoft.win32.registry.nuspec", + "ref/net46/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.dll", + "ref/net461/Microsoft.Win32.Registry.xml", + "ref/net472/Microsoft.Win32.Registry.dll", + "ref/net472/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/Microsoft.Win32.Registry.dll", + "ref/netstandard1.3/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/de/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/es/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/it/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml", + "ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml", + "ref/netstandard2.0/Microsoft.Win32.Registry.dll", + "ref/netstandard2.0/Microsoft.Win32.Registry.xml", + "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/net46/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/net461/Microsoft.Win32.Registry.xml", + "runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll", + "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "NAudio/1.10.0": { + "sha512": "y6VvwSPfJhElUllkzE2FHXHAADYFGLwMPt048KlPyuUXcq4E0VEi+4hWrFd+lBsrb+Q5DvPA9w86oRTvKRO9UQ==", + "type": "package", + "path": "naudio/1.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/NAudio.dll", + "lib/net35/NAudio.xml", + "lib/netcoreapp3.0/NAudio.dll", + "lib/netcoreapp3.0/NAudio.xml", + "lib/netstandard2.0/NAudio.dll", + "lib/netstandard2.0/NAudio.xml", + "lib/uap10.0/NAudio.dll", + "lib/uap10.0/NAudio.pri", + "lib/uap10.0/NAudio.xml", + "naudio.1.10.0.nupkg.sha512", + "naudio.nuspec" + ] + }, "NETStandard.Library/1.6.1": { "sha512": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "type": "package", @@ -1642,6 +1936,20 @@ "packageIcon.png" ] }, + "NReco.VideoConverter/1.1.4": { + "sha512": "b501O2O3XD5/vbs3l/ZnPieXJfelluw+6dFKLbii5tgh+nXG+wOnZAiSKgJGAzqIUNWbCF1oiKBg1Kn/2BVY8Q==", + "type": "package", + "path": "nreco.videoconverter/1.1.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net40/NReco.VideoConverter.XML", + "lib/net40/NReco.VideoConverter.dll", + "nreco.videoconverter.1.1.4.nupkg.sha512", + "nreco.videoconverter.nuspec", + "readme.txt" + ] + }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "sha512": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", "type": "package", @@ -1921,19 +2229,33 @@ "system.appcontext.nuspec" ] }, - "System.Buffers/4.3.0": { - "sha512": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", + "System.Buffers/4.5.0": { + "sha512": "pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==", "type": "package", - "path": "system.buffers/4.3.0", + "path": "system.buffers/4.5.0", "files": [ ".nupkg.metadata", ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.1/.xml", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.0/_._", "lib/netstandard1.1/System.Buffers.dll", - "system.buffers.4.3.0.nupkg.sha512", - "system.buffers.nuspec" + "lib/netstandard1.1/System.Buffers.xml", + "lib/netstandard2.0/System.Buffers.dll", + "lib/netstandard2.0/System.Buffers.xml", + "lib/uap10.0.16299/_._", + "ref/net45/System.Buffers.dll", + "ref/net45/System.Buffers.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.1/System.Buffers.dll", + "ref/netstandard1.1/System.Buffers.xml", + "ref/netstandard2.0/System.Buffers.dll", + "ref/netstandard2.0/System.Buffers.xml", + "ref/uap10.0.16299/_._", + "system.buffers.4.5.0.nupkg.sha512", + "system.buffers.nuspec", + "useSharedDesignerContext.txt", + "version.txt" ] }, "System.Collections/4.3.0": { @@ -2178,15 +2500,17 @@ "system.diagnostics.debug.nuspec" ] }, - "System.Diagnostics.DiagnosticSource/4.3.0": { - "sha512": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", + "System.Diagnostics.DiagnosticSource/4.6.0": { + "sha512": "mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", "type": "package", - "path": "system.diagnostics.diagnosticsource/4.3.0", + "path": "system.diagnostics.diagnosticsource/4.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net45/System.Diagnostics.DiagnosticSource.dll", + "lib/net45/System.Diagnostics.DiagnosticSource.xml", "lib/net46/System.Diagnostics.DiagnosticSource.dll", "lib/net46/System.Diagnostics.DiagnosticSource.xml", "lib/netstandard1.1/System.Diagnostics.DiagnosticSource.dll", @@ -2195,8 +2519,10 @@ "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.xml", "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.dll", "lib/portable-net45+win8+wpa81/System.Diagnostics.DiagnosticSource.xml", - "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512", - "system.diagnostics.diagnosticsource.nuspec" + "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt", + "version.txt" ] }, "System.Diagnostics.Tools/4.3.0": { @@ -2917,6 +3243,27 @@ "system.linq.expressions.nuspec" ] }, + "System.Memory/4.5.3": { + "sha512": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "type": "package", + "path": "system.memory/4.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.3.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Net.Http/4.3.0": { "sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", "type": "package", @@ -3116,6 +3463,53 @@ "system.net.sockets.nuspec" ] }, + "System.Numerics.Vectors/4.5.0": { + "sha512": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "type": "package", + "path": "system.numerics.vectors/4.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Numerics.Vectors.dll", + "lib/net46/System.Numerics.Vectors.xml", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.0/System.Numerics.Vectors.dll", + "lib/netstandard1.0/System.Numerics.Vectors.xml", + "lib/netstandard2.0/System.Numerics.Vectors.dll", + "lib/netstandard2.0/System.Numerics.Vectors.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Numerics.Vectors.xml", + "lib/uap10.0.16299/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/System.Numerics.Vectors.dll", + "ref/net45/System.Numerics.Vectors.xml", + "ref/net46/System.Numerics.Vectors.dll", + "ref/net46/System.Numerics.Vectors.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.0/System.Numerics.Vectors.dll", + "ref/netstandard1.0/System.Numerics.Vectors.xml", + "ref/netstandard2.0/System.Numerics.Vectors.dll", + "ref/netstandard2.0/System.Numerics.Vectors.xml", + "ref/uap10.0.16299/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.numerics.vectors.4.5.0.nupkg.sha512", + "system.numerics.vectors.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.ObjectModel/4.3.0": { "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "type": "package", @@ -3561,6 +3955,25 @@ "system.reflection.typeextensions.nuspec" ] }, + "System.Resources.Extensions/4.7.0": { + "sha512": "Efd5jls31pR1MkEl/IlT/lOzG0nGRCoYnHctZTq597+absekOXaP53yUlv5U4DfcfImSAAupWVpTW1tE54lF7A==", + "type": "package", + "path": "system.resources.extensions/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard2.0/System.Resources.Extensions.dll", + "lib/netstandard2.0/System.Resources.Extensions.xml", + "ref/netstandard2.0/System.Resources.Extensions.dll", + "ref/netstandard2.0/System.Resources.Extensions.xml", + "system.resources.extensions.4.7.0.nupkg.sha512", + "system.resources.extensions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Resources.ResourceManager/4.3.0": { "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "type": "package", @@ -4014,6 +4427,52 @@ "system.runtime.numerics.nuspec" ] }, + "System.Security.AccessControl/4.7.0": { + "sha512": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", + "type": "package", + "path": "system.security.accesscontrol/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.dll", + "lib/net461/System.Security.AccessControl.xml", + "lib/netstandard1.3/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.dll", + "lib/netstandard2.0/System.Security.AccessControl.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.dll", + "ref/net461/System.Security.AccessControl.xml", + "ref/netstandard1.3/System.Security.AccessControl.dll", + "ref/netstandard1.3/System.Security.AccessControl.xml", + "ref/netstandard1.3/de/System.Security.AccessControl.xml", + "ref/netstandard1.3/es/System.Security.AccessControl.xml", + "ref/netstandard1.3/fr/System.Security.AccessControl.xml", + "ref/netstandard1.3/it/System.Security.AccessControl.xml", + "ref/netstandard1.3/ja/System.Security.AccessControl.xml", + "ref/netstandard1.3/ko/System.Security.AccessControl.xml", + "ref/netstandard1.3/ru/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml", + "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml", + "ref/netstandard2.0/System.Security.AccessControl.dll", + "ref/netstandard2.0/System.Security.AccessControl.xml", + "ref/uap10.0.16299/_._", + "runtimes/win/lib/net46/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.dll", + "runtimes/win/lib/net461/System.Security.AccessControl.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml", + "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.accesscontrol.4.7.0.nupkg.sha512", + "system.security.accesscontrol.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Security.Cryptography.Algorithms/4.3.0": { "sha512": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "type": "package", @@ -4257,6 +4716,60 @@ "system.security.cryptography.x509certificates.nuspec" ] }, + "System.Security.Principal.Windows/4.7.0": { + "sha512": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==", + "type": "package", + "path": "system.security.principal.windows/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net46/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.dll", + "lib/net461/System.Security.Principal.Windows.xml", + "lib/netstandard1.3/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.dll", + "lib/netstandard2.0/System.Security.Principal.Windows.xml", + "lib/uap10.0.16299/_._", + "ref/net46/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.dll", + "ref/net461/System.Security.Principal.Windows.xml", + "ref/netcoreapp3.0/System.Security.Principal.Windows.dll", + "ref/netcoreapp3.0/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/System.Security.Principal.Windows.dll", + "ref/netstandard1.3/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/de/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/es/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/it/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml", + "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml", + "ref/netstandard2.0/System.Security.Principal.Windows.dll", + "ref/netstandard2.0/System.Security.Principal.Windows.xml", + "ref/uap10.0.16299/_._", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/net46/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.dll", + "runtimes/win/lib/net461/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", + "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll", + "runtimes/win/lib/uap10.0.16299/_._", + "system.security.principal.windows.4.7.0.nupkg.sha512", + "system.security.principal.windows.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Text.Encoding/4.3.0": { "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "type": "package", @@ -4393,6 +4906,27 @@ "system.text.encoding.extensions.nuspec" ] }, + "System.Text.Json/4.6.0": { + "sha512": "4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA==", + "type": "package", + "path": "system.text.json/4.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Text.Json.dll", + "lib/net461/System.Text.Json.xml", + "lib/netcoreapp3.0/System.Text.Json.dll", + "lib/netcoreapp3.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.4.6.0.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, "System.Text.RegularExpressions/4.3.0": { "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", "type": "package", @@ -4616,21 +5150,39 @@ "system.threading.tasks.nuspec" ] }, - "System.Threading.Tasks.Extensions/4.3.0": { - "sha512": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "System.Threading.Tasks.Extensions/4.5.2": { + "sha512": "BG/TNxDFv0svAzx8OiMXDlsHfGw623BZ8tCXw4YLhDFDvDhNUEV58jKYMGRnkbJNm7c3JNNJDiN7JBMzxRBR2w==", "type": "package", - "path": "system.threading.tasks.extensions/4.3.0", + "path": "system.threading.tasks.extensions/4.5.2", "files": [ ".nupkg.metadata", ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/netcoreapp2.1/_._", "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll", "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml", + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll", + "lib/netstandard2.0/System.Threading.Tasks.Extensions.xml", "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll", "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml", - "system.threading.tasks.extensions.4.3.0.nupkg.sha512", - "system.threading.tasks.extensions.nuspec" + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/netcoreapp2.1/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.tasks.extensions.4.5.2.nupkg.sha512", + "system.threading.tasks.extensions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" ] }, "System.Threading.Timer/4.3.0": { @@ -4845,8 +5397,11 @@ }, "projectFileDependencyGroups": { ".NETCoreApp,Version=v3.1": [ + "Azure.Storage.Blobs >= 12.6.0", "MediaToolkit >= 1.1.0.1", "Microsoft.CognitiveServices.Speech >= 1.13.0", + "NAudio >= 1.10.0", + "NReco.VideoConverter >= 1.1.4", "VideoLibrary >= 3.0.6" ] }, @@ -4887,6 +5442,10 @@ "frameworks": { "netcoreapp3.1": { "dependencies": { + "Azure.Storage.Blobs": { + "target": "Package", + "version": "[12.6.0, )" + }, "MediaToolkit": { "target": "Package", "version": "[1.1.0.1, )" @@ -4895,6 +5454,14 @@ "target": "Package", "version": "[1.13.0, )" }, + "NAudio": { + "target": "Package", + "version": "[1.10.0, )" + }, + "NReco.VideoConverter": { + "target": "Package", + "version": "[1.1.4, )" + }, "VideoLibrary": { "target": "Package", "version": "[3.0.6, )" @@ -4932,6 +5499,16 @@ "targetGraphs": [ ".NETCoreApp,Version=v3.1" ] + }, + { + "code": "NU1701", + "level": "Warning", + "warningLevel": 1, + "message": "Package 'NReco.VideoConverter 1.1.4' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.", + "libraryId": "NReco.VideoConverter", + "targetGraphs": [ + ".NETCoreApp,Version=v3.1" + ] } ] } \ No newline at end of file diff --git a/gene-pool-backend/obj/project.nuget.cache b/gene-pool-backend/obj/project.nuget.cache index 619c754..b8fee96 100644 --- a/gene-pool-backend/obj/project.nuget.cache +++ b/gene-pool-backend/obj/project.nuget.cache @@ -1,16 +1,23 @@ { "version": 2, - "dgSpecHash": "kRF2xHW7Sh+zSqURraR5Kp5YkuPaNNJB26kXmvfPhyp/Kln43TMtoHMh+ARn9WsH6E/cq97c3tF8V3KhZcKeBw==", + "dgSpecHash": "yvTZllBISHPlXZgbt3isp5Jw595vVYEhHLSspoID0dQLUsBPn99zxN4nPqcP3WdfNQ4jXXwEV+pRMYwwz4H1vA==", "success": true, "projectFilePath": "C:\\Users\\justi\\OneDrive\\Documents\\Code\\Github\\gene-pool-backend\\gene-pool-backend\\gene-pool-backend.csproj", "expectedPackageFiles": [ + "C:\\Users\\justi\\.nuget\\packages\\azure.core\\1.4.1\\azure.core.1.4.1.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\azure.storage.blobs\\12.6.0\\azure.storage.blobs.12.6.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\azure.storage.common\\12.5.2\\azure.storage.common.12.5.2.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\mediatoolkit\\1.1.0.1\\mediatoolkit.1.1.0.1.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.0.0\\microsoft.bcl.asyncinterfaces.1.0.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\microsoft.cognitiveservices.speech\\1.13.0\\microsoft.cognitiveservices.speech.1.13.0.nupkg.sha512", - "C:\\Users\\justi\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\microsoft.netcore.platforms\\3.1.0\\microsoft.netcore.platforms.3.1.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\microsoft.win32.registry\\4.7.0\\microsoft.win32.registry.4.7.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\naudio\\1.10.0\\naudio.1.10.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\nreco.videoconverter\\1.1.4\\nreco.videoconverter.1.1.4.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", @@ -28,12 +35,12 @@ "C:\\Users\\justi\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.appcontext\\4.3.0\\system.appcontext.4.3.0.nupkg.sha512", - "C:\\Users\\justi\\.nuget\\packages\\system.buffers\\4.3.0\\system.buffers.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.console\\4.3.0\\system.console.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", - "C:\\Users\\justi\\.nuget\\packages\\system.diagnostics.diagnosticsource\\4.3.0\\system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.diagnostics.diagnosticsource\\4.6.0\\system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.diagnostics.tools\\4.3.0\\system.diagnostics.tools.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", @@ -46,9 +53,11 @@ "C:\\Users\\justi\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.net.http\\4.3.0\\system.net.http.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.numerics.vectors\\4.5.0\\system.numerics.vectors.4.5.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512", @@ -57,6 +66,7 @@ "C:\\Users\\justi\\.nuget\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.resources.extensions\\4.7.0\\system.resources.extensions.4.7.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", @@ -64,6 +74,7 @@ "C:\\Users\\justi\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.3.0\\system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.security.accesscontrol\\4.7.0\\system.security.accesscontrol.4.7.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.cng\\4.3.0\\system.security.cryptography.cng.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512", @@ -71,12 +82,14 @@ "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.security.principal.windows\\4.7.0\\system.security.principal.windows.4.7.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.text.json\\4.6.0\\system.text.json.4.6.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", - "C:\\Users\\justi\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\justi\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.2\\system.threading.tasks.extensions.4.5.2.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.threading.timer\\4.3.0\\system.threading.timer.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512", "C:\\Users\\justi\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512", @@ -92,6 +105,16 @@ "targetGraphs": [ ".NETCoreApp,Version=v3.1" ] + }, + { + "code": "NU1701", + "level": "Warning", + "warningLevel": 1, + "message": "Package 'NReco.VideoConverter 1.1.4' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.", + "libraryId": "NReco.VideoConverter", + "targetGraphs": [ + ".NETCoreApp,Version=v3.1" + ] } ] } \ No newline at end of file diff --git a/gene-pool-backend/test.mp3 b/gene-pool-backend/test.mp3 new file mode 100644 index 0000000..1ace0b0 Binary files /dev/null and b/gene-pool-backend/test.mp3 differ diff --git a/gene-pool-backend/test2.mp3 b/gene-pool-backend/test2.mp3 new file mode 100644 index 0000000..e342abc Binary files /dev/null and b/gene-pool-backend/test2.mp3 differ diff --git a/gene-pool-backend/test2.wav b/gene-pool-backend/test2.wav new file mode 100644 index 0000000..5c92cbc Binary files /dev/null and b/gene-pool-backend/test2.wav differ diff --git a/gene-pool-backend/test3.wav b/gene-pool-backend/test3.wav new file mode 100644 index 0000000..f1f6d4a Binary files /dev/null and b/gene-pool-backend/test3.wav differ