Using NAudio.Lame



我是C#的新手,正在学习。我为自己构建了一个文本到语音控制台应用程序,我对此非常满意。

因为我是个新手,但从学习中获得了巨大的轰动,我不能在不学习如何使用wjdavis5的情况下跳过这篇文章中的代码。

"安装包NAudio.Lame代码段:我的显然返回了一个byte[]-我有一个单独的保存到磁盘的方法b/c,我认为它使单元测试更容易。

public static byte[] ConvertWavToMp3(byte[] wavFile)
{
using(var retMs = new MemoryStream())
using (var ms = new MemoryStream(wavFile))
using(var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(retMs, rdr.WaveFormat, 128))
{
rdr.CopyTo(wtr);
return retMs.ToArray();
}
}

来自这篇文章:

将NAudio 中存储流的格式从wav更改为mp3

我基本上理解语法,但我太生涩了,以至于我很难理解如何将wavFile放入方法中。

它的基本C#内容我显然很难理解,这是我第一次被迫问,但我必须知道!

看看那个漂亮的代码!

干杯Andrew

using System;
using System.Text;
using System.IO;
using System.Speech.Synthesis;
using System.Speech.AudioFormat;
using NAudio.Wave;
using NAudio.Lame;
namespace Lame_Mp3_Test
{
class Program
{
public static void ConvertWavStreamToMp3File(ref MemoryStream ms, string 
savetofilename)
{
//rewind to beginning of stream
ms.Seek(0, SeekOrigin.Begin);
using (var retMs = new MemoryStream())
using (var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(savetofilename, rdr.WaveFormat, 
LAMEPreset.VBR_90))
{
rdr.CopyTo(wtr);
}
}

static void Main(string[] args)
{

using (SpeechSynthesizer reader = new SpeechSynthesizer())
{
//set some settings
reader.Volume = 100;
reader.Rate = 0; //medium
//save to memory stream
MemoryStream ms = new MemoryStream();
reader.SetOutputToWaveStream(ms);
//do speaking
reader.Speak("This is a test mp3");
//now convert to mp3 using LameEncoder or shell out to audiograbber
ConvertWavStreamToMp3File(ref ms, "c:\test\mytest.mp3");
}
}
}

}

相关内容

  • 没有找到相关文章

最新更新