protected async void MsgQuery(dynamic message)
{
var data = message["data"];
MycroftSpeaker speaker = speakers[data["targetSpeaker"]];
if (speaker.Status != "up")
{
await QueryFail(message["id"], "Target speaker is " + speaker.Status);
}
else
{
var text = data["text"];
PromptBuilder prompt = new PromptBuilder(new System.Globalization.CultureInfo("en-GB"));
prompt.StartVoice(VoiceGender.Female, VoiceAge.Adult, 0);
foreach (var phrase in text)
{
prompt.AppendText(phrase["phrase"]);
prompt.AppendBreak(new TimeSpan((int)(phrase["delay"] * 10000000)));
}
prompt.EndVoice();
try
{
prompt.AppendAudio("lutz.wav");
}
catch
{
}
Thread t = new Thread(Listen);
t.Start(new { speaker = speaker, prompt = prompt });
await Query("audioOutput", "stream_tts", new { ip = ipAddress, port = speaker.Port }, new string[] { speaker.InstanceId });
}
}
#endregion