private void ConvertButton_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();

            open.Filter = "MP3 File (*.mp3)|*.mp3;";
            if (open.ShowDialog() != true)
            {
                return;
            }

            SaveFileDialog save = new SaveFileDialog();

            save.Filter = "WAV File (*.wav)|*.wav;";
            if (save.ShowDialog() != true)
            {
                return;
            }

            using (Mp3FileReader mp3 = new Mp3FileReader(open.FileName))
            {
                using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                {
                    WaveFileWriter.CreateWaveFile(save.FileName, pcm);
                }
            }
        }
        private int convertWav(string path)
        {
            int returnSampleRate = 0;

            using (WaveStream stream = new WaveFileReader(path))
            {
                WaveFormat newFormat = null;

                int channels = stream.WaveFormat.Channels;
                int bps      = stream.WaveFormat.BitsPerSample;
                int sr       = stream.WaveFormat.SampleRate;
                int c        = stream.WaveFormat.AverageBytesPerSecond;

                if (sr > 11025)
                {
                    newFormat        = new WaveFormat(sampleRate, bitsPerSample, mono);
                    returnSampleRate = sampleRate;
                }
                else
                {
                    newFormat        = new WaveFormat(sr, bitsPerSample, mono);
                    returnSampleRate = sampleRate;
                }

                using (var conversionStream = new WaveFormatConversionStream(newFormat, stream))
                {
                    WaveFileWriter.CreateWaveFile(firstPath, conversionStream);
                }
            }

            return(returnSampleRate);
        }
Exemple #3
0
 // auxiliars functions
 private static void Mp3ToWav(string mp3File, string outputFile)
 {
     using (Mp3FileReader reader = new Mp3FileReader(mp3File))
     {
         WaveFileWriter.CreateWaveFile(outputFile, reader);
     }
 }
        public static string finalLapMaker(string path, double factor)
        {
            int    indexof = path.LastIndexOf('_');
            string newpath = path.Substring(0, indexof) + "_f.wav";

            if (Char.IsUpper(path[indexof + 1]))
            {
                newpath = path.Substring(0, indexof) + "_F.wav";
            }

            string temppath = path.Substring(0, indexof) + "_ieeetemp.wav";

            using (var reader = new WaveFileReader(path))
            {
                var outFormat = WaveFormat.CreateIeeeFloatWaveFormat(reader.WaveFormat.SampleRate, reader.WaveFormat.Channels);
                using (var resampler = new MediaFoundationResampler(reader, outFormat))
                {
                    WaveFileWriter.CreateWaveFile(temppath, resampler);
                }
            }

            using (var input = new WaveFileReader(temppath))
            {
                var stwp = new SoundTouchWaveProvider(input);
                stwp.Tempo = factor;
                WaveFileWriter.CreateWaveFile(newpath, stwp);
            }

            return(newpath);
        }
Exemple #5
0
        private string[] MixSixChannel(string fileName)
        {
            fileName = fileName.Replace(".wav", "");
            var fileNames = new string[2];

            using (var input1 = new WaveFileReader($"{fileName}.CH01.wav"))
            {
                using var input2 = new WaveFileReader($"{fileName}.CH02.wav");
                var waveProvider = new MultiplexingWaveProvider(new IWaveProvider[] { input1, input2 }, 2);
                waveProvider.ConnectInputToOutput(0, 0);
                waveProvider.ConnectInputToOutput(1, 1);
                WaveFileWriter.CreateWaveFile($"{fileName}.Dungeon.wav", waveProvider);
                fileNames[0] = $"{fileName}.Dungeon.wav";
            }

            using (var input1 = new WaveFileReader($"{fileName}.CH03.wav"))
            {
                using var input2 = new WaveFileReader($"{fileName}.CH04.wav");
                var waveProvider = new MultiplexingWaveProvider(new IWaveProvider[] { input1, input2 }, 2);
                waveProvider.ConnectInputToOutput(0, 0);
                waveProvider.ConnectInputToOutput(1, 1);
                WaveFileWriter.CreateWaveFile($"{fileName}.Battle.wav", waveProvider);
                fileNames[1] = $"{fileName}.Battle.wav";
            }

            return(fileNames);

            /* TO PLAY IT OUTRIGHT:
             * WasapiOut outDevice = new WasapiOut();
             * outDevice.Init(waveProvider);
             * outDevice.Play(); */
        }
Exemple #6
0
 public static void Mptowav(String mppath, String wavpath)
 {
     using (var reader = new Mp3FileReader(mppath))
     {
         WaveFileWriter.CreateWaveFile(wavpath, reader);
     }
 }
Exemple #7
0
        public ActionResult Reverse(string name)
        {
            var a = name.Split('.');

            string newName = a[a.Length - 2];

            if (a[a.Length - 1] == "mp3")
            {
                using (Mp3FileReader reader = new Mp3FileReader(HttpContext.Server.MapPath("~/Content/" + name)))
                {
                    WaveFileWriter.CreateWaveFile(HttpContext.Server.MapPath("~/Content/" + newName + ".wav"), reader);
                }
            }

            using (WaveFileReader reader = new WaveFileReader(HttpContext.Server.MapPath("~/Content/" + newName + ".wav")))
            {
                int blockAlign = reader.WaveFormat.BlockAlign;
                using (WaveFileWriter writer = new WaveFileWriter(HttpContext.Server.MapPath("~/Content/" + newName + "_rev.wav"), reader.WaveFormat))
                {
                    byte[] buffer  = new byte[blockAlign];
                    long   samples = reader.Length / blockAlign;
                    for (long sample = samples - 1; sample >= 0; sample--)
                    {
                        reader.Position = sample * blockAlign;
                        reader.Read(buffer, 0, blockAlign);
                        writer.WriteData(buffer, 0, blockAlign);
                    }
                }
            }

            return(Json(new { name1 = newName + "_rev.wav" }, JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
    private IEnumerator IELoadExternalAudioWebRequest2(string _url, AudioType _audioType)
    {
        string _tempURL = _url.Replace(".mp3", ".wav");

        Debug.print(_tempURL);
        if (!File.Exists(_tempURL))
        {
            FileStream    _fileStream    = File.Open(_url, FileMode.Open);
            Mp3FileReader _mp3FileReader = new Mp3FileReader(_fileStream);
            WaveFileWriter.CreateWaveFile(_tempURL, _mp3FileReader);
        }
        yield return(null);

        UnityWebRequest _unityWebRequest = UnityWebRequestMultimedia.GetAudioClip(_tempURL, _audioType);

        yield return(_unityWebRequest.SendWebRequest());

        if (_unityWebRequest.isHttpError || _unityWebRequest.isNetworkError)
        {
            Debug.print(_unityWebRequest.error.ToString());
        }
        else
        {
            AudioClip _audioClip = DownloadHandlerAudioClip.GetContent(_unityWebRequest);
        }
    }
Exemple #9
0
        public static string Resemple(string inPath, string outPath)
        {
            int outRate = 44100;
            var outFile = outPath;

            using (var reader = new WaveFileReader(inPath))
            {
                if (reader.WaveFormat.Equals(new WaveFormat(outRate, 2)))
                {
                    return(inPath);
                }
                else
                {
                    var outFormat = new WaveFormat(outRate, reader.WaveFormat.Channels);
                    using (var resampler = new MediaFoundationResampler(reader, outFormat))
                    {
                        // resampler.ResamplerQuality = 60;
                        WaveFileWriter.CreateWaveFile(outFile, resampler);
                    }
                }
            }
            File.Delete(inPath);
            File.Move(outFile, inPath);
            return(inPath);
        }
Exemple #10
0
        /// <summary>
        /// Applies changes based on the state of this instance, and saves to the specified path.
        /// </summary>
        /// <param name="path">The file path.</param>
        public void Save(string path)
        {
            // applies peak normalization to the reader
            if (this.Settings.NormalizeVolume)
            {
                this.NormalizationProvider.ApplyPeakNormalization(this.Reader);
            }

            // determine the output type
            if (this.Settings.EncodeToMP3 &&
                this.Reader.Length > 0)
            {
                using (var writer = new LameMP3FileWriter(path, this.Reader.WaveFormat, MP3_BIT_RATE))
                {
                    var buffer = new byte[1024 * 4];
                    var read   = 0;

                    while ((read = this.Reader.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        writer.Write(buffer, 0, read);
                    }
                }
            }
            else
            {
                WaveFileWriter.CreateWaveFile(path, this.Reader);
            }
        }
Exemple #11
0
        /// <summary>
        /// to add or set a new Sound to system
        /// </summary>
        /// <param name="number">number to key new Sound set to</param>
        /// <param name="path">path to Sound </param>
        public void setNewSound(byte number, string path)
        {
            try
            {
                string assemblyPath = path;

                string _outPath_ = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\HotKey\\sounder\\Sound" + number + ".wav";
                // string _outPath_ = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\Resource\sounder\Sound" + number + ".wav";


                //if (!File.Exists(_outPath_))
                //{

                using (Mp3FileReader mp3 = new Mp3FileReader(assemblyPath))
                {
                    using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                    {
                        WaveFileWriter.CreateWaveFile(_outPath_, pcm);
                    }
                }
                //}
            }
            catch
            {
                MessageBox.Show("error", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 /// <summary>
 /// 将mp3转为wav
 /// </summary>
 /// <param name="sourceFile">in mp3文件</param>
 /// <param name="desFile">out wav文件</param>
 public static void ConvertMP3toWAV(string sourceFile, string desFile)
 {
     using (var reader = new Mp3FileReader(sourceFile))
     {
         WaveFileWriter.CreateWaveFile(desFile, reader);
     }
 }
Exemple #13
0
 private void Mp3ToWav(string mp3file, string wavfile)
 {
     using (Mp3FileReader reader = new Mp3FileReader(mp3file))
     {
         WaveFileWriter.CreateWaveFile(wavfile, reader);
     }
 }
Exemple #14
0
 protected static void ConvertToWav(PhraseItem item, string folder, bool play, string [] details)
 {
     //Engine Name, SelectedVoice.Name, SelectedDiscreteSpeed, SelectedDiscreteVolume
     try
     {
         TagLib.File file = TagLib.File.Create(String.Format("{0}\\mp3\\{1}\\{2}.mp3", folder, item.Folder, item.FileName));
         file.Tag.Title   = item.Phrase;
         file.Tag.Comment = String.Format("{0}, {1}, {2}, {3}", details[0], details[1], details[2], details[3]);
         file.Save();
     }
     catch
     {
     }
     if (Properties.Settings.Default.EncodeToWav == true)
     {
         using (Mp3FileReader mp3 = new Mp3FileReader(String.Format("{0}\\mp3\\{1}\\{2}.mp3", folder, item.Folder, item.FileName)))
         {
             using (var resampler = new MediaFoundationResampler(mp3, new NAudio.Wave.WaveFormat(Properties.Settings.Default.WavSampleRate, Properties.Settings.Default.WavBitsPerSample, 1)))
             {
                 resampler.ResamplerQuality = 60;
                 WaveFileWriter.CreateWaveFile(String.Format("{0}\\wav\\{1}\\{2}.wav", folder, item.Folder, item.FileName), resampler);
             }
         }
     }
     if (play)
     {
         MainWindow.PlayAudioFullPath(String.Format("{0}\\{3}\\{1}\\{2}.{3}", folder, item.Folder, item.FileName, Properties.Settings.Default.EncodeToWav? "wav":"mp3"));
     }
     item.DownloadComplete = true;
 }
        private void button2_Click(object sender, EventArgs e)
        {
            save.Filter = "WAV File (*.wav)|*.wav";
            if (save.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            textBox2.Text = save.FileName;

            try
            {
                using (Mp3FileReader mp3 = new Mp3FileReader(open.FileName))
                {
                    using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                    {
                        WaveFileWriter.CreateWaveFile(save.FileName, pcm);
                        progressBar1.Value = 100;
                        label1.Text        = "Mp3 File Successfully Converted to Wav File";
                    }
                }
            }
            catch
            {
                progressBar1.Value = 0;
            }
        }
 public static void ConvertMp3ToWav(string mp3, string wav)
 {
     using (var reader = new Mp3FileReader(mp3))
     {
         WaveFileWriter.CreateWaveFile(wav, reader);
     }
 }
Exemple #17
0
        private static void ConvertMp3ToWav(string mp3)
        {
            string tempPath = @"C:\Users\Trevor\Desktop\capstone\Capstone\test\wwwroot\temp\";

            //get the filename without its extension
            string tempFilename = Path.GetFileNameWithoutExtension(mp3);// = "001066.mp3"

            try
            {
                string predictionsFilePath = "";
                //create a new mp3 reader
                using (Mp3FileReader reader = new Mp3FileReader(mp3))
                {
                    //create a new wav reader
                    using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader))
                    {
                        predictionsFilePath = predictionsPath + tempFilename + ".wav";
                        tempPath           += tempFilename + ".wav";
                        //create a new .wav
                        //WaveFileWriter.CreateWaveFile(predictionsPath + tempFilename + ".wav", pcmStream);
                        //WaveFileWriter.CreateWaveFile(tempPath + tempFilename + ".wav", pcmStream);
                        WaveFileWriter.CreateWaveFile(tempPath, pcmStream);
                    }
                }

                TrimWavFile(tempPath, predictionsFilePath, TimeSpan.Zero, TimeSpan.FromSeconds(30));
            }
            catch (Exception e)
            {
                Console.WriteLine("*** 3RR0R ***" + tempFilename + " *** 3RROR *** " + e.Message + "*** 3RROR ***");
            }
            //return true;
        }
Exemple #18
0
        private void DecodeFile()
        {
            string inputFileName = GetInputFileName("Select a compressed WAV File to decode");

            if (inputFileName == null)
            {
                return;
            }
            using (var reader = new WaveFileReader(inputFileName))
            {
                if (reader.WaveFormat.Encoding == WaveFormatEncoding.Pcm)
                {
                    MessageBox.Show("Please select a compressed WAV file to decode");
                    return;
                }
                string outputFileName = GetOutputFileName("Select Output File Name");
                if (outputFileName == null)
                {
                    return;
                }
                using (var convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))
                {
                    WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
                }
                if (checkBoxAutoLaunchConvertedFile.Checked)
                {
                    ProcessHelper.ShellExecute(outputFileName);
                }
            }
        }
Exemple #19
0
        private void EncodeFile()
        {
            string inputFileName = GetInputFileName("Select PCM WAV File to Encode");

            if (inputFileName == null)
            {
                return;
            }
            using (WaveFileReader reader = new WaveFileReader(inputFileName))
            {
                if (reader.WaveFormat.Encoding != WaveFormatEncoding.Pcm)
                {
                    MessageBox.Show("Please select a PCM WAV file to encode");
                    return;
                }
                WaveFormat targetFormat = GetTargetFormat(reader.WaveFormat);
                if (targetFormat == null)
                {
                    return;
                }
                string outputFileName = GetOutputFileName("Select Ouput File Name");
                if (outputFileName == null)
                {
                    return;
                }
                using (WaveStream convertedStream = new WaveFormatConversionStream(targetFormat, reader))
                {
                    WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
                }
                if (checkBoxAutoLaunchConvertedFile.Checked)
                {
                    System.Diagnostics.Process.Start(outputFileName);
                }
            }
        }
Exemple #20
0
        static void Main(string[] args)
        {
            string sLang = "zh-CN";
            string sText = "";

            Uri    uriMp3;
            string sMp3Path;
            string sWavPath;


            //Read text from text.txt
            if (args.Count() > 0)
            {
                sText = File.ReadAllText(args[0], Encoding.UTF8);
            }
            else
            {
                sText = File.ReadAllText(Environment.CurrentDirectory + @"\text.txt", Encoding.UTF8);
            }

            //Detect Language
            using (WebClient wcLang = new WebClient())
            {
                wcLang.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 9.0; Windows;)");
                Uri uriLang = new Uri("http://translate.google.cn/translate_a/t?client=t&sl=auto&text=" + sText);

                wcLang.DownloadFile(uriLang, "lang.txt");
                string parseResult = Utils.GetLang(File.ReadAllText("lang.txt"));
                if (parseResult == "")
                {
                    parseResult = "zh-CN";
                }
                sLang = parseResult;
            }

            uriMp3   = new Uri("http://translate.google.cn/translate_tts?tl=" + sLang + "&q=" + sText);
            sMp3Path = Environment.CurrentDirectory + @"tmp.mp3";
            sWavPath = Environment.CurrentDirectory + @"\..\res\sound\" + sText + ".wav";

            //Get MP3 from Google
            using (WebClient wcMp3Speech = new WebClient())
            {
                wcMp3Speech.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 9.0; Windows;)");
                wcMp3Speech.DownloadFile(uriMp3, sMp3Path);
            }

            //Now convert the MP3 to WAV
            using (Mp3FileReader reader = new Mp3FileReader(new FileStream(sMp3Path, FileMode.OpenOrCreate)))
            {
                WaveFileWriter.CreateWaveFile(sWavPath, reader);
            }

            //Now copy the WAV to speech.wav
            if (File.Exists(Environment.CurrentDirectory + @"\..\res\sound\speech.wav"))
            {
                File.Delete(Environment.CurrentDirectory + @"\..\res\sound\speech.wav");
            }

            File.Copy(sWavPath, Environment.CurrentDirectory + @"\..\res\sound\speech.wav");
        }
Exemple #21
0
        public static void TrimAndMix(WaveFileReader[] input, String output, TimeSpan startTime, TimeSpan endTime, bool syncPattern)
        {
            //if syncPattern = false, trim the input files based on the TimeSpan
            for (int i = 0; i < input.Length - 1; i++) //no need to trim the last file aka record.wav
            {
                TrimWavFile(input[i], $@"auto_generate/temp{i + 1}_trim.wav", startTime, endTime);
                input[i] = new WaveFileReader(String.Format($@"auto_generate/temp{i + 1}_trim.wav"));
            }

            // choose the sample rate we will mix at
            var maxSampleRate = input.Max(r => r.WaveFormat.SampleRate);
            int minBitRate    = input.Min(r => r.WaveFormat.BitsPerSample);
            // create the mixer sample providers, resampling if necessary
            var mixerSampleProviders = input.Select(r => r.WaveFormat.SampleRate == maxSampleRate ?
                                                    r.ToSampleProvider() :
                                                    new MediaFoundationResampler(r, new WaveFormat(maxSampleRate, minBitRate, r.WaveFormat.Channels)).ToSampleProvider());
            // create the mixer wave providers
            var mixerwaveProviders = mixerSampleProviders.Select(r => r.ToWaveProvider());
            var waveProvider       = new MultiplexingWaveProvider(mixerwaveProviders, input.Count() * 2);

            WaveFileWriter.CreateWaveFile(output, waveProvider);

            foreach (var i in input)
            {
                i.Dispose();
            }
        }
Exemple #22
0
        private string GenEditedFiles(string[] files, List <Note> notes)
        {
            string tempdir   = FluidSys.FluidSys.CreateTempDir();
            string tempfile  = "";
            string tempfile2 = "";

            int run = 0;

            // Trim each note
            foreach (string file in files)
            {
                tempfile  = tempdir + "\\" + run.ToString() + ".wav";
                tempfile2 = tempdir + "\\" + run.ToString() + "0.wav";

                //WavFileUtils.TrimWavFile(file, tempfile2, TimeSpan.FromMilliseconds(notes[run].VoiceProperties.Start),
                //    TimeSpan.FromMilliseconds(notes[run].VoiceProperties.End));

                var afr  = new AudioFileReader(file);
                var fade = new DelayFadeOutSampleProvider(afr);

                fade.BeginFadeIn(100);
                //fade.BeginFadeOut(afr.TotalTime.TotalMilliseconds , afr.TotalTime.TotalMilliseconds * 2);
                //fade.BeginFadeIn(35);

                var stwp = new NAudio.Wave.SampleProviders.SampleToWaveProvider(fade);
                WaveFileWriter.CreateWaveFile(tempfile, stwp);

                new System.Media.SoundPlayer(tempfile).Play();

                //File.Delete(tempfile2);

                run++;
            }
            return(tempdir);
        }
        private static string GetWaveFromMp3(string filename)
        {
            if (!File.Exists(filename))
            {
                throw new FileNotFoundException(filename + " not found");
            }

            var waveFilename = GetWaveFilenameFromMp3(filename);

            if (!File.Exists(waveFilename))
            {
                var fileInfo = new FileInfo(waveFilename);
                fileInfo.Directory.Create(); // If the directory already exists, this method does nothing.

                try
                {
                    using (var reader = new Mp3FileReader(filename))
                    {
                        WaveFileWriter.CreateWaveFile(waveFilename, reader);
                    }
                }
                catch (Exception e)
                {
                    var error = $"Failed to load {Path.GetFileName(filename)}: {e.Message}";

                    Console.WriteLine($"[CustomTunes] {error}");
                    return(null);
                }
            }

            return(waveFilename);
        }
Exemple #24
0
        public void OutputWaveToFile(
            string textToSpeak,
            string waveFile)
        {
            if (string.IsNullOrWhiteSpace(textToSpeak))
            {
                return;
            }

            this.StartSasara();

            var tempWave = Path.GetTempFileName();

            talker.OutputWaveToFile(
                textToSpeak,
                tempWave);

            // ささらは音量が小さめなので増幅する
            using (var reader = new WaveFileReader(tempWave))
            {
                var prov = new VolumeWaveProvider16(reader);
                prov.Volume = Settings.Default.SasaraGain;

                WaveFileWriter.CreateWaveFile(
                    waveFile,
                    prov);
            }

            if (File.Exists(tempWave))
            {
                File.Delete(tempWave);
            }
        }
Exemple #25
0
 private void HandleFile(string filename)
 {
     try
     {
         FileInfo file = new FileInfo(filename);
         string   path = System.IO.Path.Combine(file.Directory.FullName, "output");
         if (!Directory.Exists(path))
         {
             Directory.CreateDirectory(path);
         }
         AudioFileReader waveFileReader      = new AudioFileReader(filename);
         int             bytesPerMillisecond = waveFileReader.WaveFormat.AverageBytesPerSecond / 1000;
         int             startPos            = GetSilenceTime(waveFileReader, SilenceLocation.Start, config.Config.SilenceThreshold);
         int             endPos2             = GetSilenceTime(waveFileReader, SilenceLocation.End, config.Config.SilenceThreshold);
         endPos2 -= endPos2 % 4;
         WaveFileWriter waveFileWriter = new WaveFileWriter(filename + ".temp.wav", waveFileReader.WaveFormat);
         TrimSound(waveFileReader, waveFileWriter, startPos, endPos2);
         byte[] temp = new byte[bytesPerMillisecond * 500];
         waveFileWriter.Write(temp, 0, temp.Length);
         waveFileWriter.Close();
         waveFileReader.Close();
         WaveFileReader           filereader = new WaveFileReader(filename + ".temp.wav");
         WaveFormat               format     = new WaveFormat(8000, 16, 1);
         MediaFoundationResampler resample   = new MediaFoundationResampler(filereader, format);
         WaveFileWriter.CreateWaveFile(System.IO.Path.Combine(path, file.Name.Replace(file.Extension, ".wav")), resample);
         resample.Dispose();
         filereader.Close();
         File.Delete(filename + ".temp.wav");
     }
     catch (Exception)
     {
     }
 }
Exemple #26
0
        public static void WriteSong(string waveFileName, string mp3FileName, SongInfo info)
        {
            using (AudioFileReader reader = new AudioFileReader(waveFileName)) {
                //Console.WriteLine(reader.WaveFormat.BitsPerSample);
                WaveFormat format = WaveFormat.CreateIeeeFloatWaveFormat(reader.WaveFormat.SampleRate, reader.WaveFormat.Channels);                //new WaveFormat(reader.WaveFormat.SampleRate, 16, 2)
                using (var resampler = new MediaFoundationResampler(reader, format)) {
                    // resampler.ResamplerQuality = 60;
                    WaveFileWriter.CreateWaveFile(Path.GetFileNameWithoutExtension(mp3FileName) + ".wav", resampler);
                }
            }

            using (WaveFileReader reader = new WaveFileReader(Path.GetFileNameWithoutExtension(mp3FileName) + ".wav")) {
                using (LameMP3FileWriter writer = new LameMP3FileWriter(mp3FileName, reader.WaveFormat, 705)) {
                    //Console.WriteLine(reader.WaveFormat.BitsPerSample);
                    reader.CopyTo(writer);
                }
            }

            File.Delete(Path.GetFileNameWithoutExtension(mp3FileName) + ".wav");

            TagLib.File f = TagLib.File.Create(mp3FileName);
            f.Tag.Album        = info.Album;
            f.Tag.Artists      = new string[] { info.Artist };
            f.Tag.AlbumArtists = new string[] { info.Artist };
            f.Tag.Title        = info.Title;
            f.Tag.Genres       = new string[] { "Soundtrack" };
            f.Tag.Track        = (uint)info.TrackNumber;
            f.Save();
        }
Exemple #27
0
        /// <summary>
        /// Validate video file: [0 = sound video] // [1 = silent video] // [-1 = system error]
        /// </summary>
        /// <param name="file_path"></param>
        /// <param name="file_name"></param>
        /// <returns></returns>
        public static int IsSoundVideoFile(string file_path, string file_name)
        {
            string code      = "0xc00d36b3";
            string error     = "";
            string videofile = System.IO.Path.Combine(file_path, file_name);
            string audiofile = System.IO.Path.Combine(file_path, "unknown.wav");
            int    kq        = int.MinValue;

            try {
                using (var video = new MediaFoundationReader(videofile)) {
                    WaveFileWriter.CreateWaveFile(audiofile, video);
                }
                kq = 0;
            }
            catch (Exception ex) { error = ex.ToString(); }

            if (kq == int.MinValue)
            {
                kq = error.ToLower().Contains(code) ? 1 : -1;                     //
            }
            else
            {
                System.IO.File.Delete(audiofile);  //delete file audio
            }
            return(kq);
        }
Exemple #28
0
        private void MixTwoSamples()
        {
            while (writer == null && RecordedAudioWriter == null)
            {
            }

            Thread.Sleep(1000);

            MicFileReader     = new AudioFileReader(saveDirectory.SelectedPath + "\\" + micRecordFIleName);
            SpeakerFileReader = new AudioFileReader(saveDirectory.SelectedPath + "\\" + playBackRecordFileName);

            WaveMixerStream32 mixer = new WaveMixerStream32();

            mixer.AddInputStream(MicFileReader);
            mixer.AddInputStream(SpeakerFileReader);

            WaveFileWriter.CreateWaveFile(saveDirectory.SelectedPath + "\\" + "result.wav", mixer);

            MicFileReader.Close();
            MicFileReader.Dispose();
            MicFileReader = null;

            SpeakerFileReader.Close();
            SpeakerFileReader.Dispose();
            SpeakerFileReader = null;
        }
Exemple #29
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            string fileDir     = AppContext.BaseDirectory;
            var    inPath      = SPath.Combine(fileDir, "了解真相快三退.wav");
            var    semitone    = Math.Pow(2, 1.0 / 12);
            var    upOneTone   = semitone * semitone * semitone * semitone * semitone;
            var    downOneTone = 1.0 / (upOneTone);
            var    tfile       = TagLib.File.Create(inPath);

            using (var reader = new MediaFoundationReader(inPath))
            {
                var pitch = new SmbPitchShiftingSampleProvider(reader.ToSampleProvider());
                pitch.PitchFactor = (float)(((double)new Random().Next(60, 115)) / 100);
                string tempFileNameGuid   = Guid.NewGuid().ToString();
                string tempFilePath       = SPath.Combine(fileDir, tempFileNameGuid + ".wav");
                string outputFileNameGuid = Guid.NewGuid().ToString();
                string outWavFilePath     = SPath.Combine(fileDir, outputFileNameGuid + ".wav");
                string outMp3FilePath     = SPath.Combine(fileDir, outputFileNameGuid + ".mp3");
                WaveFileWriter.CreateWaveFile(tempFilePath, pitch.ToWaveProvider());
                ConvertWavToMp3(tempFilePath, outMp3FilePath, tfile.Properties.AudioBitrate);
                //playSampleProvider(pitch);
                using (var mp3Reader = new Mp3FileReader(outMp3FilePath))
                    using (var conversionStream = new WaveFormatConversionStream(reader.WaveFormat, mp3Reader))
                        WaveFileWriter.CreateWaveFile(outWavFilePath, conversionStream);
                if (File.Exists(tempFilePath))
                {
                    File.Delete(tempFilePath);
                }
            }
        }
Exemple #30
0
        /// <summary>
        /// MP3ファイルをWAVファイルへコンバート
        /// </summary>
        private void button_Convert_Click(object sender, EventArgs e)
        {
            // 1. Open MP3 File
            OpenFileDialog open = new OpenFileDialog();

            open.Filter = "Mp3 File (*.mp3)|*.mp3;";

            if (open.ShowDialog() != DialogResult.OK)
            {
                return;
            }


            // 2. Select Save WAV File
            SaveFileDialog save = new SaveFileDialog();

            save.Filter = "WAV File (*.wav)|*.wav;";

            if (save.ShowDialog() != DialogResult.OK)
            {
                return;
            }


            // 3. Convert mp3 -> wav
            using (Mp3FileReader mp3 = new Mp3FileReader(open.FileName))
            {
                using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(mp3))
                {
                    WaveFileWriter.CreateWaveFile(save.FileName, pcm);
                }
            }
        }