从 RIFF 字符串创建 wav 文件
Creating wav file from RIFF string
我正在创建一个语音认证系统,为此我使用第三方 API 存储我的 wav 文件,当我调用 GET 时,它 returns 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,但结果相同。有人可以帮忙吗?
您不应将回复阅读为 string
。波形文件是二进制数据,其中可能包含对字符串无效的字节序列。
WebClient (MSDN) can directly download binary data无需转换。
using (var webClient = new WebClient())
{
byte[] wave = webClient.DownloadData("...");
}
我正在创建一个语音认证系统,为此我使用第三方 API 存储我的 wav 文件,当我调用 GET 时,它 returns 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,但结果相同。有人可以帮忙吗?
您不应将回复阅读为 string
。波形文件是二进制数据,其中可能包含对字符串无效的字节序列。
WebClient (MSDN) can directly download binary data无需转换。
using (var webClient = new WebClient())
{
byte[] wave = webClient.DownloadData("...");
}