我正在Silverlight中創建一個需要讀取其內容的應用程序。我正在使用WCF服務將內容發送到服務器端,然後將此代碼合成文本到語音。將流轉換爲WMA
public class SpeechService
{
[OperationContract]
public byte[] StartSpeak(string Text)
{
MemoryStream ms = new MemoryStream();
using (System.Speech.Synthesis.SpeechSynthesizer synhesizer = new System.Speech.Synthesis.SpeechSynthesizer())
{
synhesizer.SelectVoiceByHints(System.Speech.Synthesis.VoiceGender.NotSet, System.Speech.Synthesis.VoiceAge.NotSet, 0, new System.Globalization.CultureInfo("pl-PL"));
synhesizer.SetOutputToWaveStream(ms);
synhesizer.Speak(Text);
}
return ms.ToArray();
}
在客戶端
我用這個代碼:http://elegantcode.com/2010/03/07/text-to-speech-in-silverlight-using-wcf/發揮創建的聲音,以客戶端的MediaElement。
它的工作原理,但我需要調整它,因爲生成的流是相當大的 - 2分鐘的新聞超過8MB。最近幾天,我在網上瀏覽了兩個問題的解決方案: 1.使用wcf將音頻數據流式傳輸到Silverlight 2.在將音頻發送到客戶端之前壓縮音頻
至於問題編號1我不知道如何實現它:/我會使用任何幫助或想法。 最困難的事情沒有。 2是我無法將輸出聲音保存爲文件。我需要隨時進行編碼並向客戶端發送壓縮聲音。對於我所知道的最好的想法是將其編碼爲AAC或WMA,因爲MediaElement都支持這兩者。
我會很感激任何幫助。謝謝。
說真的沒有人可以幫忙嗎? :( –