2011-06-13 7 views
2

우리는 MVC 사이트를 보유하고 있으며 이제 클라이언트 측에서 텍스트를 읽을 수있는 기능을 추가하고자합니다. 인보이스 목록을 표시하고 인보이스 세부 정보를 읽고 싶습니다. 데스크톱 응용 프로그램과 함께 System.Speech 라이브러리를 사용하여 읽을 수 있도록 세부 사항을 전달하여이 작업을 수행 할 수 있지만 MVC 프로젝트에서이 작업을 수행하는 방법을 알 수 있습니다.ASP.NEt MVC 음성 텍스트

답변

2

음, 이것은 단지 내 머리 위로 떨어져이며 테스트되지 않았습니다하지만 당신은 다음과 같이 할 수 있습니다 :

public ActionResult Speak(string text) 
{ 
    var speech = new SpeechSynthesizer(); 
    speech.Speak(text); 

    byte[] bytes; 
    using (var stream = new MemoryStream()) 
    { 
     speech.SetOutputToWaveStream(stream); 
     bytes = stream.ToArray(); 
    } 
    return File(bytes, "audio/x-wav"); 
} 
0

내가 연구되었다 나는이 방법을 발견, 그것을 이 경우

public async Task<ActionResult> Index() 
    { 
     Task<FileContentResult> task = Task.Run(() => 
     { 
      using (var synth = new SpeechSynthesizer()) 
      { 
       synth.SelectVoice("Microsoft Sabina Desktop"); 

       using (var stream = new MemoryStream()) 
       { 
        synth.SetOutputToWaveStream(stream); 
        synth.Speak("hola mundo"); 
        byte[] bytes = stream.GetBuffer(); 
        return File(bytes, "audio/x-wav"); 
       } 
      } 
     }); 

     return await task; 
    } 

나는 스페인어 음성을 사용하고 있지만, 물론 당신이 당신의 목소리를 선택하거나 synth.SelectVoice을 피하고 predeterminated

을 사용할 수 있습니다 : 존 Kalberer의 대답과 비슷