2

ASP.NET 응용 프로그램에서 speak.aspx?text=Hello%20world을 호출하여 음성을 생성하고 싶습니다. 이 경우 .wav 형식의 응답이 표시됩니다.ASP.NET의 SpeechSynthesizer - 비동기 오류

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    using (var ss = new SpeechSynthesizer()) { 
    MemoryStream str = new MemoryStream(); 
    ss.SetOutputToWaveStream(str); 
    ss.Speak(Server.UrlDecode(Request.QueryString["text"])); 
    Response.AddHeader("Content-Type", "audio/wav"); 
    str.WriteTo(Response.OutputStream); 
    str.Close(); 
    } 
} 

그러나이 메시지와 함께 실패합니다 :

InvalidOperationException이 :

지금까지 난 뒤에 코드로 빈 페이지가 비동기 작업이이 컨텍스트에서 허용되지 않습니다. 비동기 작업을 시작하는 페이지는 Async 특성을 true로 설정해야하며 비동기 작업은 PreRenderComplete 이벤트 이전의 페이지에서만 시작할 수 있습니다.

나는 @Page 지침, 코드 실행되지만 무기한 페이지 중단에 대한 요청에 Async="true"를 추가하는 경우. 잘못된 점을 알려주고 올바른 코드/접근 방식을 사용할 수 있습니까?

참고 Google TTS (text-to-speech) API는 100 자 이하의 문자열 만 허용하므로 사용할 수 없습니다.

감사합니다.

답변