Non la mia risposta, copia incolla da How do can I use LAME to encode an wav to an mp3 c#
modo più semplice in .Net 4.0:
Utilizzare il Visual Studio Nuget Package Manager Console:
Install-Package NAudio.Lame
Codice snip: Invia discorso a un flusso di memoria, quindi salvare come mp3:
01.235.164,106 mila
//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);
}
}
Avevo provato lo stesso codice del tuo, funziona perfettamente in locale ma non riesco a creare file mp3 sul server. Hai idea di quale configurazione abbiamo bisogno sul server? –
è necessario distribuire alcune DLL sul server per NAudio a lavorare per esempio hai messo libmp3lame.32.dll e libmp3lame.64.dll nella stessa cartella del tuo exe? – Cel
Sì, li ho, li ho nella cartella Bin e anche nella directory root. Ma quando eseguo questa applicazione sul server, creo un file mp3 con la dimensione di 2kb sempre indipendente dal testo molto grande che inserisci e dal l'mp3 non suona. Penso che a causa di alcuni problemi sul server non sia possibile creare mp3 correttamente. –