从RIFF字符串创建wav文件

时间:2017-11-18 14:24:38

标签: c# wav

我正在创建一个语音验证系统,因为我正在使用存储我的wav文件的第三方API,当我调用GET时,它会返回RIFF格式编码的字符串作为响应。

我无法找到将此RIFF转换为wav文件的方法。

我尝试了下面的代码,它正在创建wav文件但是wav被破坏了:

using (var response = await httpClient.GetAsync(""))
                {

                    string responseData = await response.Content.ReadAsStringAsync();
                    using (BinaryWriter writer = new BinaryWriter(System.IO.File.Open(@"C:\wavFile.wav", FileMode.Create)))
                    {
                        byte[] data = System.Text.Encoding.UTF8.GetBytes(responseData);
                        writer.Write(data);
                    }
                }

我尝试使用ASCII和UTF8但结果相同。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您不应将回复视为string。波形文件是二进制数据,可能包含对字符串无效的字节序列。

WebClient (MSDN)可以直接download binary data而无需转换。

using (var webClient = new WebClient())
{
    byte[] wave = webClient.DownloadData("...");
}