private static byte[] ReadWaveSamples(
                string file,
                float volume)
            {
                var samples = default(byte[]);
                var vol     = volume > 1.0f ? 1.0f : volume;

                using (var audio = new AudioFileReader(file)
                {
                    Volume = vol
                })
                    using (var resampler = new MediaFoundationResampler(audio, DefaultOutputFormat))
                        using (var output = new MemoryStream(51200))
                            using (var wrap = new WrappingStream(output))
                            {
                                WaveFileWriter.WriteWavFileToStream(wrap, resampler);
                                wrap.Flush();
                                wrap.Position = 0;

                                // ヘッダをカットする
                                var raw          = wrap.ToArray();
                                var headerLength = 0;
                                using (var wave = new WaveFileReader(wrap))
                                {
                                    headerLength = (int)(raw.Length - wave.Length);
                                }

                                // ヘッダをスキップした波形データを取得する
                                samples = raw.Skip(headerLength).ToArray();
                            }

                return(samples);
            }
        public async Task SpeechToText()
        {
            //var authData = GenerateAuthData(path, AccessKey, SecretKey, ContractId);
            //var authString = GenerateAuthString(authData);
            //var uri = $"{endpoint}?auth={authString}";

            var jwtToken = await HttpUtils.GenerateJwtDataAsync(AccessKey, SecretKey, 3 * 60 /* 3 minutes */, jwtEndpoint);

            var uri = $"{sttEndpoint}?token=Bearer {jwtToken}";

            var waveIn = new WaveInEvent();

            // デフォルト録音デバイスを利用します。
            waveIn.DeviceNumber = 0;
            // サンプルレート、ビットレート、チャンネル数を16000Hz、16bits、1に指定します。
            waveIn.WaveFormat     = new WaveFormat(16000, 16, 1);
            waveIn.DataAvailable += (object sender, WaveInEventArgs e) =>
            {
                var inputMemStream  = new MemoryStream(e.Buffer);
                var rawWaveStream   = new RawSourceWaveStream(inputMemStream, waveIn.WaveFormat);
                var outputMemStream = new MemoryStream();
                WaveFileWriter.WriteWavFileToStream(outputMemStream, rawWaveStream);
                audioBuffers.Enqueue(outputMemStream.ToArray());
            };
            waveIn.RecordingStopped += (object sender, StoppedEventArgs e) =>
            {
                clientAsyncTokenSource.Cancel();
            };

            var client = new ClientWebSocket();

            await client.ConnectAsync(new Uri(uri), CancellationToken.None);

            // 日本語の音声を認識します。
            _ = await SetLanguageAsync(client, "ja");

            _ = await SetSamplingRateAsync(client, 16000);

            try
            {
                waveIn.StartRecording();
                Console.WriteLine("(音声認識:認識中です。)");

                var sendLoop = this.InitSendLoop(client);
                var readLoop = this.InitReadLoop(client);
                Console.Read();

                waveIn.StopRecording();
                Console.WriteLine("(音声認識:完了しました。)");

                await sendLoop;
                await readLoop;

                await client.CloseAsync(WebSocketCloseStatus.NormalClosure, "OK", CancellationToken.None);
            }
            catch (OperationCanceledException)
            {
                Console.WriteLine("(音声認識:サーバとの通信を止めました。)");
            }
        }
Exemple #3
0
        private async void SendTempBuffer()
        {
            if (TempBuffer.Count == 0)
            {
                return;
            }

            using (var ms1 = new MemoryStream())
            {
                using (var wfw = new WaveFileWriter(ms1, Capturer.WaveFormat))
                {
                    wfw.Write(TempBuffer.ToArray(), 0, TempBuffer.Count);
                }
                TempBuffer.Clear();

                // Resample to 16-bit so Firefox will play it.
                using (var ms2 = new MemoryStream(ms1.ToArray()))
                    using (var wfr = new WaveFileReader(ms2))
                        using (var ms3 = new MemoryStream())
                        {
                            using (var resampler = new MediaFoundationResampler(wfr, TargetFormat))
                            {
                                WaveFileWriter.WriteWavFileToStream(ms3, resampler);
                            }
                            var conductor = ServiceContainer.Instance.GetRequiredService <Conductor>();
                            await conductor.CasterSocket.SendAudioSample(ms3.ToArray(), Program.Conductor.Viewers.Keys.ToList());
                        }
            }
        }
Exemple #4
0
        public byte[] adjustSpeed(byte[] data, double speedFactor)
        {
            MemoryStream msInput      = new MemoryStream(data);
            MemoryStream msOutput     = new MemoryStream();
            string       tempfilename = $"{DateTime.Now.ToFileTimeUtc()}.wav";

            using (var reader = new WaveFileReader(msInput))
            {
                var stupidIeeeNecessity = WaveFormat.CreateIeeeFloatWaveFormat(reader.WaveFormat.SampleRate, reader.WaveFormat.Channels);
                using (var resampler = new MediaFoundationResampler(reader, stupidIeeeNecessity))
                {
                    WaveFileWriter.CreateWaveFile(tempfilename, resampler);
                }
            }

            using (var ieeeReader = new WaveFileReader(tempfilename))
            {
                var stwp = new SoundTouchWaveProvider(ieeeReader);
                stwp.Tempo = speedFactor;
                WaveFileWriter.WriteWavFileToStream(msOutput, stwp);
            }

            File.Delete(tempfilename);
            return(msOutput.ToArray());
        }
        /// <summary>
        /// Resample source into 16 bit WAV mono output with the target sampling rate.
        /// Output stream includes modified RIFF header.
        /// </summary>
        /// <param name="sourceStream"></param>
        /// <param name="targetSampleRate"></param>
        /// <param name="targetChannels"></param>
        /// <returns></returns>
        public static MemoryStream Resample(MemoryStream sourceStream, int targetSampleRate)
        {
            /*Read from the wav file's contents using stream */
            using (var inputReader = new WaveFileReader(sourceStream))
            {
                int sourceChannels = inputReader.WaveFormat.Channels;

                WdlResamplingSampleProvider resampler;

                /*Stereo source. Must convert to mono with StereoToMonoSampleProvider */
                if (sourceChannels == 2)
                {
                    var monoSampleProvider = new StereoToMonoSampleProvider(inputReader.ToSampleProvider());
                    resampler = new WdlResamplingSampleProvider(monoSampleProvider, targetSampleRate);
                }
                else
                {
                    resampler = new WdlResamplingSampleProvider(inputReader.ToSampleProvider(), targetSampleRate);
                }

                MemoryStream outStream = new MemoryStream();

                /*Ensure that header has correct RIFF format with data appended after header.*/
                WaveFileWriter.WriteWavFileToStream(outStream, resampler.ToWaveProvider16());

                outStream.Position = 0;

                return(outStream);
            }
        }
        private void SendTempBuffer()
        {
            if (TempBuffer.Count == 0)
            {
                return;
            }

            using (var ms1 = new MemoryStream())
            {
                using (var wfw = new WaveFileWriter(ms1, Capturer.WaveFormat))
                {
                    wfw.Write(TempBuffer.ToArray(), 0, TempBuffer.Count);
                }
                TempBuffer.Clear();

                // Resample to 16-bit so Firefox will play it.
                using (var ms2 = new MemoryStream(ms1.ToArray()))
                    using (var wfr = new WaveFileReader(ms2))
                        using (var ms3 = new MemoryStream())
                        {
                            using (var resampler = new MediaFoundationResampler(wfr, TargetFormat))
                            {
                                WaveFileWriter.WriteWavFileToStream(ms3, resampler);
                            }
                            AudioSampleReady?.Invoke(this, ms3.ToArray());
                        }
            }
        }
        public async Task <IActionResult> Test()
        {
            try
            {
                var file = Request.Form.Files.First();

                int outRate = 44000;
                var source  = new RawSourceWaveStream(file.OpenReadStream(), new WaveFormat(outRate, 2));
                using (var wavFileReader = new WaveFileReader(source))
                {
                    var resampler  = new WdlResamplingSampleProvider(wavFileReader.ToSampleProvider(), 16000);
                    var monoSource = resampler.ToMono().ToWaveProvider16();

                    using (var outputStream = new MemoryStream())
                    {
                        WaveFileWriter.WriteWavFileToStream(outputStream, monoSource);
                        outputStream.Seek(0, SeekOrigin.Begin);

                        var result = await client.VerifyAsync(outputStream, Guid.Parse("fb786241-9f01-41cc-a585-50b65bd52c38"));

                        if (result.Result == Result.Accept)
                        {
                            // verification successful
                        }
                    }
                }
            }
            catch (Exception e)
            {
                int x = 1;
            }

            return(Ok());
        }
 public IWaveProvider Convert()
 {
     using (Stream stream = new MemoryStream(buffer))
     {
         using (var rawStream = new RawSourceWaveStream(stream, new WaveFormat(48000, 16, 1)))
             using (var downsample = new WaveFormatConversionStream(new WaveFormat(44100, 16, 1), rawStream))
                 using (var outputStream = new MemoryStream())
                 {
                     WaveFileWriter.WriteWavFileToStream(outputStream, downsample.ToSampleProvider().ToWaveProvider16());
                     var outputData = outputStream.ToArray();
                     waveBufferSize = outputData.Length;
                     BufferedWaveProvider bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(44100, 1));
                     if (outputData.Length < bufferedWaveProvider.BufferLength)
                     {
                         bufferedWaveProvider.AddSamples(outputData, 0, outputData.Length);
                     }
                     else
                     {
                         bufferedWaveProvider.AddSamples(outputData, 0, bufferedWaveProvider.BufferLength);
                     }
                     IWaveProvider finalStream = new Wave16ToFloatProvider(bufferedWaveProvider);
                     return(finalStream);
                 }
     }
 }
Exemple #9
0
        public override void WriteToStream(Stream stream)
        {
            using (Stream source = Source.GetStream())
                using (BinaryReader reader = new BinaryReader(source, Encoding.ASCII, true))
                {
                    string magic = Encoding.ASCII.GetString(reader.ReadBytes(3));

                    if (Magic != magic)
                    {
                        throw new InvalidDataException("Supplied file is not an XGG wrapped file.");
                    }

                    byte version = reader.ReadByte();

                    if (version != Version)
                    {
                        throw new InvalidDataException("Supplied XGG wrapped file is of an incompatible version.");
                    }

                    FrameSize = reader.ReadInt32();
                    Bitrate   = reader.ReadInt32();
                    uint count = reader.ReadUInt16();

                    using (OpusWaveProvider wav = new OpusWaveProvider(source, count))
                        WaveFileWriter.WriteWavFileToStream(stream, wav);
                }
        }
Exemple #10
0
        /// <summary>
        /// Convert the mp3 file into wav format and return it
        /// </summary>
        /// <returns>The wav conversion of the mp3 file</returns>
        private byte[] GenerateWav()
        {
            Mp3FileReader mp3    = new Mp3FileReader(mp3_path);
            MemoryStream  stream = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(stream, mp3);
            return(stream.ToArray());
        }
Exemple #11
0
        public static void ChangeVolume(float volume, Stream source, Stream target)
        {
            var reader = new WaveFileReader(source);
            var vp     = new VolumeWaveProvider16(reader);

            vp.Volume = volume;
            WaveFileWriter.WriteWavFileToStream(target, vp);
        }
        private MemoryStream GetResolutionNoDO(string doNoteName, ResolutionType resolutionType)
        {
            double   bpm = double.Parse(ConfigurationManager.AppSettings["BPM"]);
            double   quarterNotemillis   = (60 / bpm) * 1000;
            TimeSpan quarterNoteDuration = TimeSpan.FromMilliseconds(quarterNotemillis);
            TimeSpan halfNoteDuration    = quarterNoteDuration.Add(quarterNoteDuration);
            TimeSpan wholeNoteDuration   = halfNoteDuration.Add(halfNoteDuration);

            string doFileName = NAudioHelper.GetFileNameFromNoteName(doNoteName);

            doFileName = Path.GetFileName(doFileName);
            int doNoteNumber = int.Parse(doFileName.Split('.')[0]);

            ISampleProvider note1;
            ISampleProvider note2;

            switch (resolutionType)
            {
            case ResolutionType.DoDoReDo:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor2nd, halfNoteDuration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber, wholeNoteDuration);
                break;

            case ResolutionType.DoDoFaMi:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpPerfect4th, halfNoteDuration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor3rd, wholeNoteDuration);
                break;

            case ResolutionType.DoDoLaSo:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor6th, halfNoteDuration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpPerfect5th, wholeNoteDuration);
                break;

            case ResolutionType.DoDoTiHighDo:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor7th, halfNoteDuration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + 12, wholeNoteDuration);
                break;

            case ResolutionType.DoDoLowTiDo:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.DownMinor2nd, halfNoteDuration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber, wholeNoteDuration);
                break;

            default:
                throw new NotSupportedException($"ResolutionType '{resolutionType}' is not supported.");
            }

            ISampleProvider phrase = note1
                                     .FollowedBy(note2);

            SampleToWaveProvider stwp = new SampleToWaveProvider(phrase);

            MemoryStream wavStream = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(wavStream, stwp);
            wavStream.Position = 0;
            return(wavStream);
        }
Exemple #13
0
        private static async Task ConvertWaveProviderToMp3File(IWaveProvider waveProvider, string outPutFile, LAMEPreset lamePreset, CancellationToken ctx = default)
        {
            await using var memoryStream = new MemoryStream();
            using var reader             = new StreamReader(memoryStream);
            WaveFileWriter.WriteWavFileToStream(memoryStream, waveProvider);

            await using var lameMp3FileWriter = new LameMP3FileWriter(outPutFile, waveProvider.WaveFormat, lamePreset);
            await reader.BaseStream.CopyToAsync(lameMp3FileWriter, ctx);
        }
        public Stream ToWave(Stream stream)
        {
            var mem        = new MemoryStream();
            var waveStream = MakeDecodingStream(stream);

            WaveFileWriter.WriteWavFileToStream(mem, waveStream);
            mem.Flush();
            mem.Position = 0;
            return(mem);
        }
Exemple #15
0
        /// <returns>The audio sample content as wave format byte array.</returns>
        public byte[] GetBytes()
        {
            MemoryStream outStream =
                new MemoryStream(BlockAlignReductionStream.WaveFormat.AverageBytesPerSecond * 4);

            BlockAlignReductionStream.Seek(0, SeekOrigin.Begin);
            WaveFileWriter.WriteWavFileToStream(outStream, BlockAlignReductionStream);
            BlockAlignReductionStream.Seek(0, SeekOrigin.Begin);
            return(outStream.ToArray());
        }
Exemple #16
0
 public static byte[] Mp3ToWav(byte[] MP3)
 {
     using (MemoryStream INPUT = new MemoryStream(MP3))
         using (Mp3FileReader mp3 = new Mp3FileReader(INPUT))
             using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                 using (MemoryStream OUTPUT = new MemoryStream()) {
                     WaveFileWriter.WriteWavFileToStream(OUTPUT, pcm);
                     return(OUTPUT.ToArray());
                 }
 }
        private static MemoryStream Mp3ToWav(Stream mp3File)
        {
            using Mp3FileReader reader = new Mp3FileReader(mp3File);
            using WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader);
            MemoryStream ms = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(ms, pcmStream);
            ms.Position = 0;
            return(ms);
        }
Exemple #18
0
 public static byte[] ToWavData(byte[] bytes)
 {
     using (var mp3Stream = new MemoryStream(bytes))
         using (var outStream = new MemoryStream())
             using (var reader = new Mp3FileReader(mp3Stream, wf => new Mp3FrameDecompressor(wf)))
             {
                 WaveFileWriter.WriteWavFileToStream(outStream, new WaveFloatTo16Provider(reader));
                 return(outStream.ToArray());
             }
 }
Exemple #19
0
 private byte[] ConvertMp3ToWav(byte[] data)
 {
     using (var ms = new MemoryStream())
         using (var mp3 = new Mp3FileReader(new MemoryStream(data)))
             using (var pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
             {
                 WaveFileWriter.WriteWavFileToStream(ms, pcm);
                 return(ms.ToArray());
             }
 }
Exemple #20
0
        public CachedSound(string audioFileName)
        {
            var newFileName = CachePath;

            if (!File.Exists(audioFileName))
            {
                foreach (var ext in _supportExtensions)
                {
                    var autoAudioFile = audioFileName + ext;
                    if (!File.Exists(autoAudioFile))
                    {
                        continue;
                    }

                    audioFileName = autoAudioFile;
                    break;
                }
            }

            try
            {
                int outRate   = 44100;
                int channels  = 2;
                var outFormat = new WaveFormat(outRate, channels);
                using (var audioFileReader = new MyAudioFileReader(audioFileName))
                    using (var resampler = new MediaFoundationResampler(audioFileReader, outFormat))
                        using (var stream = new FileStream(newFileName, FileMode.Create))
                        {
                            resampler.ResamplerQuality = 60;
                            WaveFileWriter.WriteWavFileToStream(stream, resampler);
                        }
            }
            catch (Exception e)
            {
                Console.WriteLine(audioFileName);
                throw;
            }


            using (var audioFileReader = new AudioFileReader(newFileName))
            {
                WaveFormat = audioFileReader.WaveFormat;
                var wholeFile  = new List <float>((int)(audioFileReader.Length / 4));
                var readBuffer = new float[audioFileReader.WaveFormat.SampleRate * audioFileReader.WaveFormat.Channels];
                int samplesRead;
                while ((samplesRead = audioFileReader.Read(readBuffer, 0, readBuffer.Length)) > 0)
                {
                    wholeFile.AddRange(readBuffer.Take(samplesRead));
                }

                AudioData = wholeFile.ToArray();
            }
        }
Exemple #21
0
        private MemoryStream GetHarmonicDrill(string doNoteName, L1C7HarmonicDrillType drillType)
        {
            TimeSpan duration = TimeSpan.FromSeconds(3);

            string doFileName = NAudioHelper.GetFileNameFromNoteName(doNoteName);

            doFileName = Path.GetFileName(doFileName);
            int doNoteNumber = int.Parse(doFileName.Split('.')[0]);

            ISampleProvider note1, note2;

            switch (drillType)
            {
            // Minor 2nds.
            case L1C7HarmonicDrillType.MiFa2nd:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor3rd, duration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpPerfect4th, duration);
                break;

            case L1C7HarmonicDrillType.TiDo2nd:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor7th, duration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpPerfectOctave, duration);
                break;

            // Major 7ths.
            case L1C7HarmonicDrillType.DoTi7th:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber, duration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor7th, duration);
                break;

            case L1C7HarmonicDrillType.FaMi7th:
                note1 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpPerfect4th, duration);
                note2 = NAudioHelper.GetSampleProvider(doNoteNumber + Interval.UpMajor10th, duration);
                break;

            default:
                throw new NotSupportedException($"L1C7HarmonicDrillType '{drillType}' is not supported.");
            }

            MixingSampleProvider msp = new MixingSampleProvider(note1.WaveFormat);

            msp.AddMixerInput(note1);
            msp.AddMixerInput(note2);

            var stwp = new SampleToWaveProvider(msp);

            MemoryStream wavStream = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(wavStream, stwp);
            wavStream.Position = 0;
            return(wavStream);
        }
 /// <summary>
 /// MP3 to WAV conversion.
 /// </summary>
 /// <param name="mp3Stream"></param>
 /// <returns></returns>
 public static byte[] ConvertMP3(this Stream mp3Stream)
 {
     using var reader    = new Mp3FileReader(mp3Stream);
     using var resampled = new WaveFormatConversionStream(
               new WaveFormat(
                   rate: audio_sample_rate,
                   bits: audio_bit_per_sample,
                   channels: audio_channels),
               reader);
     using var wavStream = new MemoryStream();
     WaveFileWriter.WriteWavFileToStream(wavStream, resampled);
     return(wavStream.ToArray());
 }
Exemple #23
0
        private static async Task <Stream> ConvertWaveProviderToMp3Stream(IWaveProvider waveProvider, Stream outStream, LAMEPreset lamePreset, CancellationToken ctx = default)
        {
            var memoryStream = new MemoryStream();

            using var streamReader = new StreamReader(memoryStream);
            WaveFileWriter.WriteWavFileToStream(memoryStream, waveProvider);

            await using var lameMp3StreamWriter = new LameMP3FileWriter(outStream, waveProvider.WaveFormat, lamePreset);

            await streamReader.BaseStream.CopyToAsync(lameMp3StreamWriter, ctx);

            return(outStream);
        }
Exemple #24
0
 private MemoryStream WaveFormatConversion(MemoryStream memoryStream, WaveFormat waveFormat)
 {
     using (var reader = new WaveFileReader(memoryStream))
     {
         var newFormat = new WaveFormat(16000, 16, 1);
         using (var resampler = new MediaFoundationResampler(reader, newFormat))
         {
             MemoryStream ConvertStream = new MemoryStream();
             WaveFileWriter.WriteWavFileToStream(ConvertStream, resampler);
             return(ConvertStream);
         }
     }
 }
Exemple #25
0
 public override void WriteToStream(Stream stream)
 {
     using (Stream source = Source.GetStream())
     {
         //byte[] buffer = new byte[Source.Size];
         //source.Read(buffer, 0, (int)Source.Size);
         //using (MemoryStream mem = new MemoryStream(buffer))
         //using (Mp3FileReader mp3 = new Mp3FileReader(mem))
         using (OpusWaveProvider wav = new OpusWaveProvider(source, Source.Size))
         {
             WaveFileWriter.WriteWavFileToStream(stream, wav);
         }
     }
 }
Exemple #26
0
        public byte[] raiseVolume(byte[] data, int decibels)
        {
            MemoryStream msInput    = new MemoryStream(data);
            MemoryStream msOutput   = new MemoryStream();
            double       percentage = Math.Pow(10, ((double)decibels) / 10);

            using (var reader = new WaveFileReader(msInput))
            {
                var volumeProvider = new VolumeWaveProvider16(reader);
                volumeProvider.Volume = (float)percentage;
                WaveFileWriter.WriteWavFileToStream(msOutput, volumeProvider);
                return(msOutput.ToArray());
            }
        }
        public ActionResult GetNoteEx(string doNoteName, int type)
        {
            int             doNoteNumber   = NoteHelper.NoteNumberFromNoteName(doNoteName);
            int             thisNoteNumber = doNoteNumber + type;
            ISampleProvider note           = NAudioHelper.GetSampleProvider(thisNoteNumber, TimeSpan.FromSeconds(3));

            var          stwp      = new SampleToWaveProvider(note);
            MemoryStream wavStream = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(wavStream, stwp);
            wavStream.Position = 0;

            wavStream.WavToMp3File(out string fileName);
            return(Redirect($"~/Temp/{fileName}"));
        }
Exemple #28
0
        public ActionResult GetDOEx(string doNoteName)
        {
            _log.Info("Entered. Getting the note...");
            ISampleProvider note = NAudioHelper.GetSampleProvider(doNoteName, TimeSpan.FromSeconds(2));

            _log.Info("Got the note");
            var          stwp      = new SampleToWaveProvider(note);
            MemoryStream wavStream = new MemoryStream();

            WaveFileWriter.WriteWavFileToStream(wavStream, stwp);
            wavStream.Position = 0;

            wavStream.WavToMp3File(out string fileName);
            return(Redirect($"~/Temp/{fileName}"));
        }
Exemple #29
0
        public static byte[] ConvertToAzureWav(byte[] rawAudio)
        {
            MemoryStream outStream = new MemoryStream();

            using (var waveFileReader = new RawSourceWaveStream(new MemoryStream(rawAudio), new WaveFormat()))
            {
                var outFormat = new WaveFormat(16000, 1);
                using (var resampler = new MediaFoundationResampler(waveFileReader, outFormat))
                {
                    WaveFileWriter.WriteWavFileToStream(outStream, resampler);
                }
            }

            return(outStream.ToArray());
        }
Exemple #30
0
 /// <summary>
 /// Once the mp3 music file has been loaded as raw bytes, this function can uncompress them into a WAV clip.
 /// </summary>
 private static void LoadMp3AsClip()
 {
     if (RawMusicFile != null && RawMusicFile.Length > 0)
     {
         MemoryStream  waveStream = new MemoryStream();
         Mp3FileReader mp3Stream  = new Mp3FileReader(new MemoryStream(RawMusicFile));
         WaveFileWriter.WriteWavFileToStream(waveStream, mp3Stream);
         RawWaveFile = waveStream.ToArray();
         LoadSuccess = true;
     }
     else
     {
         LoadSuccess = false;
     }
 }