2017-11-18 3 views
1

내 Wav 파일을 저장하는 제 3 자 API를 사용하고 GET을 호출하면 응답으로 RIFF 형식의 인코딩 된 문자열을 반환하기 때문에 음성 인증 시스템을 만들고 있습니다.RIFF 문자열에서 wav 파일 만들기

이 RIFF를 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); 
        } 
       } 

내가 UTF8하지만 같은 결과와 함께 ASCII 시도 :

가 나는 wav 파일을 생성되지만 WAV가 currupted되고, 코드 아래했습니다. 누구든지 도와 줄 수 있습니까?

+0

난 타사 API를 호출하고 그들은 "RIFFfZ WAVEfmt"로 시작하는 응답 만 RIFF 큰 문자열을 보낸 @ThomasWeller – Neel

답변

1

응답을 string으로 읽지 마십시오. 웨이브 파일은 문자열에 유효하지 않은 바이트 시퀀스를 포함 할 수있는 바이너리 데이터입니다.

WebClient (MSDN)은 변환 할 필요없이 직접 download binary data 일 수 있습니다. 나는이를 디코딩하고 wav 파일로 변환하는 방법을 알아낼 수 없습니다 오전

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

강타 :) 당신이 맞습니다 :) 그것이 문제였습니다. 감사 – Neel