您好,我正在尝试将内存流中的文本转换为语音 (wav),将其转换为 mp3,然后在用户页面上播放。所以需要我帮助下一步做什么吗?
这是我的 asmx 代码:
[WebMethod]
public byte[] StartSpeak(string Word)
{
MemoryStream ms = new MemoryStream();
using (System.Speech.Synthesis.SpeechSynthesizer synhesizer = new System.Speech.Synthesis.SpeechSynthesizer())
{
synhesizer.SelectVoiceByHints(System.Speech.Synthesis.VoiceGender.NotSet, System.Speech.Synthesis.VoiceAge.NotSet, 0, new System.Globalization.CultureInfo("en-US"));
synhesizer.SetOutputToWaveStream(ms);
synhesizer.Speak(Word);
}
return ms.ToArray();
}
谢谢。
最佳答案
只是想使用 NAudio.Lame 发布我的示例:
NuGet:
Install-Package 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();
}
}
关于c# - 在 NAudio 的内存流中将格式从 wav 更改为 mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19058530/