Example #1
0
        public override async Task <Stream> GetSynthesizedDataAsync(string ssml, AudioEncode outputEncode, CancellationToken token)
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, _synthesizeUri)
            {
                Content = new StringContent(ssml, Encoding.UTF8, "application/ssml+xml")
            };

            request.Headers.Add("Connection", "Keep-Alive");
            request.Headers.Add("X-Microsoft-OutputFormat", outputEncode.GetEncodeName());
            //request.Headers.Add("X-FD-ClientID", "RadioStationService");
            //request.Headers.Add("X-FD-ImpressionGUID", Guid.NewGuid().ToString());

            HttpResponseMessage response = await HttpClient.SendAsync(request, token).ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                string errorMsg = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                throw new Exception(
                          $"Synthesize fail with status code: {response.StatusCode.ToString()}, error message: [{errorMsg}]");
            }
            Stream stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);

            return(stream);
        }
Example #2
0
 public override Stream GetSynthesizedData(string ssml, AudioEncode outputEncode)
 {
     return(Task.Run(() => GetSynthesizedDataAsync(ssml, outputEncode, CancellationToken.None)).Result);
 }
        public static string GetEncodeName(this AudioEncode encode)
        {
            EncodeMapping.TryGetValue(encode, out string encodeString);

            return(encodeString);
        }