Я пытаюсь вывести текст в речь wav-файла и воспроизвести его с тегом HTML5 <audio>
. Метод text-to-speech выводит байты, но элемент управления html5 не воспроизводит его.Воспроизведение wav с помощью HTML5
Если вместо потоковой передачи байтов непосредственно в элемент управления, я сначала сохраняю его как файл, а затем конвертирую файл в байты с файловым потоком и вывожу его, он начинает воспроизводиться, но я не хочу, чтобы мне нужно было сохранять файл каждый раз. Я использую MVC 4.
// in a class library
public byte[] GenerateAudio(string randomText)
{
MemoryStream wavAudioStream = new MemoryStream();
SpeechSynthesizer speechEngine = new SpeechSynthesizer();
speechEngine.SetOutputToWaveStream(wavAudioStream);
speechEngine.Speak(randomText);
wavAudioStream.Flush();
Byte[] wavBytes = wavAudioStream.GetBuffer();
return wavBytes;
}
// in my controller
public ActionResult Listen()
{
return new FileContentResult(c.GenerateAudio(Session["RandomText"].ToString()), "audio/wav");
}
// in my view
<audio controls autoplay>
<source src="@Url.Content("~/Captcha/Listen")" type="audio/wav" />
Your browser does not support the <audio> element.
</audio>