/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { DescribeVoicesResponse response = new DescribeVoicesResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("NextToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.NextToken = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Voices", targetDepth)) { var unmarshaller = new ListUnmarshaller <Voice, VoiceUnmarshaller>(VoiceUnmarshaller.Instance); response.Voices = unmarshaller.Unmarshall(context); continue; } } return(response); }
public async static Task <List <PollyVoiceDTO> > GetVoiceList(IAmazonPolly pollyClient, string languageCode) { List <PollyVoiceDTO> result = new List <PollyVoiceDTO>(); DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest() { LanguageCode = languageCode }; String nextToken; do { DescribeVoicesResponse describeVoicesResponse = await pollyClient.DescribeVoicesAsync(describeVoicesRequest); nextToken = describeVoicesResponse.NextToken; describeVoicesRequest.NextToken = nextToken; //Console.WriteLine(languageCode + " Voices: "); foreach (var voice in describeVoicesResponse.Voices) { // Console.WriteLine(" Name: {0}, Gender: {1}, LanguageName: {2}", voice.Name, voice.Gender, voice.LanguageName); result.Add(new PollyVoiceDTO() { voice_name = voice.Name, gender = voice.Gender }); } ; } while (nextToken != null); return(result); }
public async static Task <List <PollyLanguageDTO> > GetLanguageList(IAmazonPolly pollyClient) { List <PollyLanguageDTO> result = new List <PollyLanguageDTO>(); Dictionary <string, string> dicLanguages = new Dictionary <string, string>(); DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest(); String nextToken; do { DescribeVoicesResponse describeVoicesResponse = await pollyClient.DescribeVoicesAsync(describeVoicesRequest); nextToken = describeVoicesResponse.NextToken; describeVoicesRequest.NextToken = nextToken; foreach (var voice in describeVoicesResponse.Voices) { // Console.WriteLine(" Name: {0}, Gender: {1}, LanguageName: {2}", voice.Name, voice.Gender, voice.LanguageName); if (dicLanguages.ContainsKey(voice.LanguageCode) == false) { string langaugeName = null; string[] words = voice.LanguageName.Split(' '); if (words.Length > 1) { langaugeName = words[1] + ", " + words[0]; } else { langaugeName = voice.LanguageName; } dicLanguages.Add(voice.LanguageCode, voice.LanguageName); result.Add(new PollyLanguageDTO() { language_code = voice.LanguageCode, language_name = langaugeName }); } } ; } while (nextToken != null); result.Sort(delegate(PollyLanguageDTO x, PollyLanguageDTO y) { return(x.language_name.CompareTo(y.language_name)); }); return(result); }
public static void DescribeVoices() { AmazonPollyClient client = new AmazonPollyClient(); DescribeVoicesRequest allVoicesRequest = new DescribeVoicesRequest(); DescribeVoicesRequest enUsVoicesRequest = new DescribeVoicesRequest() { LanguageCode = "en-US" }; try { String nextToken; do { DescribeVoicesResponse allVoicesResponse = client.DescribeVoices(allVoicesRequest); nextToken = allVoicesResponse.NextToken; allVoicesRequest.NextToken = nextToken; Console.WriteLine("All voices: "); foreach (Voice voice in allVoicesResponse.Voices) { Console.WriteLine(" Name: {0}, Gender: {1}, LanguageName: {2}", voice.Name, voice.Gender, voice.LanguageName); } } while (nextToken != null); do { DescribeVoicesResponse enUsVoicesResponse = client.DescribeVoices(enUsVoicesRequest); nextToken = enUsVoicesResponse.NextToken; enUsVoicesRequest.NextToken = nextToken; Console.WriteLine("en-US voices: "); foreach (Voice voice in enUsVoicesResponse.Voices) { Console.WriteLine(" Name: {0}, Gender: {1}, LanguageName: {2}", voice.Name, voice.Gender, voice.LanguageName); } } while (nextToken != null); } catch (Exception e) { Console.WriteLine("Exception caught: " + e.Message); } }
public static string GetVoices(ref QuestToSpeech.Voice[] voices, AwsAPIConfig config) { List <QuestToSpeech.Voice> list = new List <QuestToSpeech.Voice>(); try { using (AmazonPollyClient client = new AmazonPollyClient(config.AccessKey, config.SecretKey, Amazon.RegionEndpoint.GetBySystemName(config.Region))) { DescribeVoicesRequest req = new DescribeVoicesRequest(); string nextToken; do { DescribeVoicesResponse res = client.DescribeVoices(req); nextToken = res.NextToken; req.NextToken = nextToken; foreach (var voice in res.Voices) { list.Add(new QuestToSpeech.Voice() { Name = string.Format("{0}-{1}", voice.LanguageCode, voice.Id.ToString()), Gender = voice.Gender == Gender.Female ? QuestToSpeech.Gender.Female : QuestToSpeech.Gender.Male, LangCode = voice.LanguageCode, Module = QuestToSpeech.Module.AWS }); } } while (nextToken != null); list.Sort(delegate(QuestToSpeech.Voice v1, QuestToSpeech.Voice v2) { return(v1.Name.CompareTo(v2.Name)); }); voices = list.ToArray(); } } catch (Exception ex) { return(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); } return(null); }