不是我的答案,從How do can I use LAME to encode an wav to an mp3 c#
最簡單的方法複製粘貼在.NET 4.0中:
使用Visual Studio的NuGet包管理器控制檯:
Install-Package NAudio.Lame
代碼剪輯:將語音發送到內存流,然後另存爲mp3:
//reference System.Speech
using System.Speech.Synthesis;
using System.Speech.AudioFormat;
//reference Nuget Package NAudio.Lame
using NAudio.Wave;
using NAudio.Lame;
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, "mytest.mp3");
}
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);
}
}
來源
2014-10-22 07:53:42
Cel
我已經嘗試過你的相同的代碼,在本地完美工作,但無法在服務器上創建mp3文件。你知道我們在服務器上需要什麼配置嗎? –
您需要在服務器上部署一些dll以便naudio運行,例如你是否將libmp3lame.32.dll和libmp3lame.64.dll與你的exe文件放在同一個文件夾中? – Cel
是的,我有他們,我有他們在Bin文件夾和根目錄以及。但當我在服務器上運行此應用程序它創建一個2kb大小的MP3文件總是獨立於您輸入的非常大的文本和MP3不播放。我認爲由於服務器上的一些問題,它無法正常創建mp3。 –