C# 将流转换为WMA

C# 将流转换为WMA,c#,.net,silverlight,audio,stream,C#,.net,Silverlight,Audio,Stream,我正在Silverlight中创建一个需要读取其内容的应用程序。我使用WCF服务将内容发送到服务器端,然后有这个代码将文本合成为语音 public class SpeechService { [OperationContract] public byte[] StartSpeak(string Text) { MemoryStream ms = new MemoryStream(); using (System.Speech.Synthesis.SpeechSynth

我正在Silverlight中创建一个需要读取其内容的应用程序。我使用WCF服务将内容发送到服务器端,然后有这个代码将文本合成为语音

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();
}
在客户端,我使用以下代码:使用MediaElement向客户端播放创建的声音

它可以工作,但我需要调整它,因为生成的流相当大-2分钟的新闻超过8MB。在过去的几天里,我一直在浏览网页,寻找两个问题的解决方案: 1.使用wcf将音频数据流传输到Silverlight 2.在将音频发送到客户端之前压缩音频

至于问题1,我不知道如何实现它:/我将使用任何帮助或想法。 2号最困难的事情是我无法将输出声音保存为文件。我需要做编码的飞行和发送压缩的声音到客户端。据我所知,最好的办法是将is编码为AAC或WMA,因为MediaElement支持这两者


我将感谢任何帮助。谢谢

值得一看Windows Azure媒体服务


它提供了“实时流媒体”,您可以将其与音频一起使用。我已经为点播(on-demand,但不是直播)和流媒体(streaming)使用过这个,而且它真的很容易做到。只需将您的媒体“上传到云”,它就会编码并为您提供一个端点。然后,您可以使用Silverlight媒体元素中的此端点来获取流媒体。

真的没有人可以帮忙吗(