gpt4 book ai didi

c# - 我如何使用 LAME 将 wav 编码为 mp3 c#

转载 作者:太空狗 更新时间:2023-10-29 21:04:56 25 4
gpt4 key购买 nike

我目前正在使用 NAudio 来捕捉声音,它只会创建一个 wav 文件。我正在寻找一种在保存文件之前将其编码为 mp3 的方法。我找到了 LAME,但每当我尝试添加 lame_enc.dll 文件时,它都会显示“无法添加引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件”。任何帮助将不胜感激。

最佳答案

.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);
}
}

关于c# - 我如何使用 LAME 将 wav 编码为 mp3 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com