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 자 이하의 문자열 만 허용하므로 사용할 수 없습니다.
감사합니다.