播放从 Azure 语音翻译中以 byte[] 形式获取的音频
Play audio obtained as byte[] from Azure Speech translation
我正在关注samples for Microsoft Cognitive Services Speech SDK, namely the Speech Translation。
dotnet 核心示例使用麦克风作为音频输入并翻译您所说的内容。翻译结果也可作为合成语音使用。我想播放此音频,但找不到合适的代码。
尝试使用此 中建议的 NAudio,但音频出现乱码。猜猜音频的格式更多。
有什么指点吗?
在 .Net Core 上,许多音频包可能无法运行。例如,使用 NAudio,我无法在 Mac.
上播放声音
我使用 NetCoreAudio
包 (Nuget) 实现了它,在翻译 Synthesizing
事件中有以下实现:
recognizer.Synthesizing += (s, e) =>
{
var audio = e.Result.GetAudio();
Console.WriteLine(audio.Length != 0
? $"AudioSize: {audio.Length}"
: $"AudioSize: {audio.Length} (end of synthesis data)");
if (audio.Length > 0)
{
var fileName = Path.Combine(Directory.GetCurrentDirectory(), $"{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss.wav")}");
File.WriteAllBytes(fileName, audio);
var player = new Player();
player.Play(fileName).Wait();
}
};
我正在关注samples for Microsoft Cognitive Services Speech SDK, namely the Speech Translation。
dotnet 核心示例使用麦克风作为音频输入并翻译您所说的内容。翻译结果也可作为合成语音使用。我想播放此音频,但找不到合适的代码。
尝试使用此
有什么指点吗?
在 .Net Core 上,许多音频包可能无法运行。例如,使用 NAudio,我无法在 Mac.
上播放声音我使用 NetCoreAudio
包 (Nuget) 实现了它,在翻译 Synthesizing
事件中有以下实现:
recognizer.Synthesizing += (s, e) =>
{
var audio = e.Result.GetAudio();
Console.WriteLine(audio.Length != 0
? $"AudioSize: {audio.Length}"
: $"AudioSize: {audio.Length} (end of synthesis data)");
if (audio.Length > 0)
{
var fileName = Path.Combine(Directory.GetCurrentDirectory(), $"{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss.wav")}");
File.WriteAllBytes(fileName, audio);
var player = new Player();
player.Play(fileName).Wait();
}
};