Have you been in need of converting mp3 audios to wav audios?  If so, the skill in this article provides you a chance to manage the mp3-to-wav conversion by yourself.

The wave audio files are useful because they retain the first-generation archived file with high quality and simple file structures. But without a proper tool, it can still be difficult for us to so the conversion. And now I will introduce you to NAudio, an opensource library written in C#, which provide API to meet our needs.

NAudio Overview

NAudio is a .NET library with dozens of useful facilities to speed up the development of audio-related project in .NET. The file formats it concerns include .wav, .mp3 and .aiff and the functionalities on these format have undergone a restrict and long-standing testing because the project had been under development since 2001.

Get Started with NAudio

NAudio is distributed as two .dll files, along with an XML file to facilitate intenllisense documentation. We can download the latest version of NAudio from here and uncompress the .zip file into any directory, which looks like the following

Fig-1: Unzip the archive and release two DLLs and one XML file.

We use Visual C# 2010 Express to develop our application and Visual C# Express const nothing since it is free online. Then we set up a NAudio environment following the steps below:

  1. create a solution with arbitrary name.
  2. right click the ‘References’ on in the Solution Explorer.
  3. click the ‘Add Reference’, select ‘Browse’ tab.
  4. traverse to directory where we keep our DLLs, select two DLLs and press ‘OK’.

Hence we finishing adding NAudio DLLs into our environment and we can start coding.

Fig-2: Right click the ‘Reference’ and open the dialog.

Fig-3: Traverse to the directory keeping two DLLs.

Fig-4: The NAudio program sets are included in the reference.

Convert MP3 to WAV with NAudio

In NAudio, we are offered many facilities. However, what we need in this example is just one class, NAudio.Wave. So add the following two line beneath the other using commands.

using NAudio;
using NAudio.Wave;

To complete conversion from MP3 to Wav, we only need to follow three steps:

  1. read in the mp3 file with Mp3FileReader class.
  2. get wave stream from the MP3 stream via CreatePcmStream interface.
  3. write the wave stream into a file with WaveFileWriter class.

All the three steps above can be easily summarized into the following C# code with comments.

using (Mp3FileReader reader = new Mp3FileReader(mp3file))
{
using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(wavfile, pcmStream);
}
}

Until now have we finished the work of converting a MP3 file to a Wave file. Surprisingly simple, isn’t it?

Complete Code in C# with NAudio

In this section, I simply produce the complete source code that can be built and run.

using System;
using System.Collections.Generic;
using System.Text;

using NAudio; using NAudio.Wave;

namespace Mp3ToWav { class Program { static void Main(string[] args) { string mp3file;

//Try to read a mp3 file path until it gets valid one. do { do { Console.Out.Write("Please enter the mp3 path:"); mp3file = Console.In.ReadLine(); } while(!System.IO.File.Exists(mp3file)); } while (!mp3file.EndsWith(".mp3"));

//Generate the wav file path for output. string wavfile = mp3file.Replace(".mp3", ".wav"); string wavpath = wavfile;

//Get audio file name for display in console. int index = wavfile.LastIndexOf("\\"); string wavname = wavfile.Substring(index+1, wavfile.Length-index-1); index = mp3file.LastIndexOf("\\"); string mp3name = mp3file.Substring(index+1, mp3file.Length-index-1);

//Display message. Console.Out.WriteLine("Converting {0} to {1}", mp3name, wavname);

//step 1: read in the MP3 file with Mp3FileReader. using (Mp3FileReader reader = new Mp3FileReader(mp3file)) {

//step 2: get wave stream with CreatePcmStream method. using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader)) {

//step 3: write wave data into file with WaveFileWriter. WaveFileWriter.CreateWaveFile(wavfile, pcmStream); } } Console.Out.WriteLine("Conversion finish and wav is saved at {0}.\nPress any key to finish.", wavpath); Console.In.ReadLine(); } } }

Conclusion

In this article, I introduce a simplified and self-aided method to convert a mp3 audio file to a wave audio file with .NET library NAudio. To guide you through all the steps, I also show you the steps to include the DLLs into the reference, in which we can access the classes encapsulated in the DLL. And I hope you can find your way to complete this work.

If you like this article, please share it with your friends on facebook, myspace, twitter or any other SNS or media by clicking the retweet buttons. If you have any problem about this article, please contact the author without hesitance.

转:http://www.assembleforce.com/2012-07/use-naudio-library-to-convert-mp3-audio-into-wav-audio.h

c# Use NAudio Library to Convert MP3 audio into WAV audio(将Mp3格式转换成Wav格式)的更多相关文章

  1. 怎样将M4A音频格式转换成MP3格式

    因为MP3音频格式应用的广泛性,所以很多时候我们都需要将不同的音频格式转换成MP3格式的,那么如果我们需要将M4A音频格式转换成MP3格式,我们应该怎样进行实现呢?下面我们就一起来看一下吧. 操作步骤 ...

  2. 怎样将flac音频格式转换成MP3格式

    Flac音频格式怎样转换成MP3格式呢?随着现在音频格式的不断多样性,生活中很多时候我们都会遇到音频格式转换的问题,如flac音频转MP3的问题,那么我们应该如何去解决这个问题呢?下面我们就一起去来一 ...

  3. vs2010音频文件压缩 调用lame_enc.dll将WAV格式转换成MP3

    /* //My_lame.h */ #pragma once#include "stdafx.h"#include <windows.h>#include <st ...

  4. .net amr格式文件转换成mp3格式文件的方法

    前言:winform端对于音频文件的格式多有限制,大多数不支持amr格式的文件的播放.但是,手机端传过来的音频文件大多数是amr格式的文件,所以,要想在winform客户端支持音频文件的播放,可以通过 ...

  5. 如何将AAC音频转换成MP3格式

    我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...

  6. CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件

    CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件   原因略.   解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...

  7. jav音频格式转换 ffmpeg 微信录音amr转mp3

    项目背景: 之前公司开发了一个微信公众号,要求把js-sdk录音文件在web网页也能播放.众所周知,html的<audio>标签ogg,mp3,wav,也有所说苹果safari支持m4a格 ...

  8. ffmpeg mp4 mp3 wav flac webm aac ac3 ogg格式转换

    版权声明:本文为博主原创文章,未经允许不得转载. ffmpeg是Linux中转换音频视频文件的常用工具. mp4 to mp3: ffmpeg -i $ID.mp4 -acodec libmp3lam ...

  9. ImageMagick convert多张照片JPG转成pdf格式,pdfunite合并PDF文件

      在认识ImageMagick之前,我***的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用起来也是蛮方便的.在一次偶然的机会中,我遇到了Imag ...

随机推荐

  1. tensorflow学习笔记(10) mnist格式数据转换为TFrecords

    本程序 (1)mnist的图片转换成TFrecords格式 (2) 读取TFrecords格式 # coding:utf-8 # 将MNIST输入数据转化为TFRecord的格式 # http://b ...

  2. C# 属性事件一些设置说明

    大致列举一些常用的属性或事件的一些修饰 用法类似,主要是对属性的进一步设置 [Browsable(true)] public bool Enable {get;set;} 顺便说一下事件的应用: pu ...

  3. Climbing Stairs爬楼梯——动态规划

    题目描写叙述: 初阶:有n层的台阶,一開始你站在第0层,每次能够爬两层或者一层. 请问爬到第n层有多少种不同的方法? 进阶:假设每次能够爬两层.和倒退一层,同一个位置不能反复走,请问爬到第n层有多少种 ...

  4. Centos下查看和修改网卡Mac地址

    linux/Centos下查看网卡Mac地址,输入命令: #ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e4:56:2E:D8:20 00:e4:56 ...

  5. Unity3D - 详解Quaternion类(二)

    OK,不做引子了,接上篇Unity3D - 详解Quaternion类(一)走起! 四.Quaternion类静态方法 Quaternion中的静态方法有9个即:Angle方法.Dot方法.Euler ...

  6. iOS: [UITableView reloadData]

    在 iTouch4 或者相差不多的 iPhone 上,不建议在 UIViewController 的 viewWillAppear 的方法中放置 UITableView 的 reloadData 方法 ...

  7. ChemDraw Std 14如何标记同位素

    ChemDraw软件是一款专业高效的化学绘图工具,能够绘制各种复杂的结构方程式,在基础化学.有机化学.材料化学等领域得到广泛应用.而ChemDraw Std 14 作为ChemDraw 的最新版本,增 ...

  8. OpenCV学习:Windows+VS2010+OpenCV配置

    OpenCV下载: 百度云下载:https://pan.baidu.com/s/1mhAExdu (2.4.9版本) 下载完成后,双击运行exe,选择输出目录,我选择的是C:\OpenCV 配置环境变 ...

  9. C# Serializable(转)

    C# Serializable System.SerializableAttribute 串行化是指存储和获取磁盘文件.内存或其他地方中的对象.在串行化时,所有的实例数据都保存到存储介质上,在取消串行 ...

  10. Linux,unix,cygwin,centeros下的tar压缩解压缩命令具体解释

    tar Examples:   tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.   tar -tvf ...