从 wav 流播放
Posted
技术标签:
【中文标题】从 wav 流播放【英文标题】:Playing from wav stream 【发布时间】:2020-03-26 10:08:25 【问题描述】: var result = service.Synthesize(
text: text,
accept: "audio/wav",
voice: "en-US_AllisonVoice"
//voice: "en-US_HenryV3Voice"
);
using (FileStream fs = File.Create(@"C:\Users\nkk01\Desktop\voice.wav"))
result.Result.WriteTo(fs);
fs.Close();
result.Result.Close();
var waveStream = new WaveFileReader(@"C:\Users\nkk01\Desktop\voice.wav");
var waveOut = new WaveOutEvent();
waveOut.Init(waveStream);
Console.WriteLine("Playing");
waveOut.Play();
Console.WriteLine("Finished playing");
您好,这是我当前的代码,效率极低,因为它必须将音频流保存到文件中才能播放。我想使用 NAudio 库将音频流直接传递到笔记本电脑的扬声器。我仍然没有设法找到解决方案。会有很大帮助的,谢谢。
【问题讨论】:
【参考方案1】:我不熟悉 naudio,但据我从他们的 git hub repo 中可以看出,WaveFileReader 的构造函数也接受流而不是文件名...
只需尝试将所有内容写入内存流而不是文件...不要忘记在读取内存流之前重新定位它('seek' to offset 0)
【讨论】:
以上是关于从 wav 流播放的主要内容,如果未能解决你的问题,请参考以下文章