Я новичок, когда дело доходит до программирования, но я хотел бы создать обработчик запросов языка, в котором я получаю массив (синтаксис: скажем, текст на языке), разделяю его, устанавливаю язык устройства на языке выдачии позвольте устройству произносить данный текст.Я ничего не мог найти о настройке языка на устройстве.
Я занимаюсь проектом UWP, поэтому я могу использовать только Windows.Media.Speechsynthezier.
Этомой (незаконченный!) код на данный момент:
// открытый класс LanguageRequestHandler
string _request;
SpeechSynthesizer synth;
private SpeechSynthesizer _synth;
public LanguageRequestHandler( string request)
{
_request = request;
_synth = new SpeechSynthesizer();
var voice = SpeechSynthesizer.AllVoices.SingleOrDefault(i => i.Gender == VoiceGender.Female) ?? SpeechSynthesizer.DefaultVoice;
_synth.Voice = voice;
}
// Это должна быть только проверка, если отправленная мне команда имеет правильный вызов
public string GetResponse()
{
string response = "invalid command";
string[] args = _request.Split(' ');
if (args[0] == "say")
{
response = CheckLanguage(args[1]);
}
return response;
}
// Здесь я хочу проверить, какой язык запрашивается, и я на самом деле хотел установить язык, на котором должно работать устройство (но, как вы знаете, оно выглядит, оно не закончено)
public string CheckLanguage(string language)
{
string response = "No language selected";
string[] args = _request.Split(' ');
if (language == "spanish")
{
}
else if(language == "english")
{
}
else if (language == "german")
{
}
else if (language == "french")
{
}
return language;
}
// Здесь я делю текст, который мне дают, и собираю его в предложение, которое должно быть переведено позже
public string Text(string text)
{
string response = "No text given to translate";
string[] args = _request.Split(' ');
for (int i = 2; i < args.Length; i++)
{
response += args[i] + " ";
}
return text;
}
// Наконец я пытаюсь установить громкость устройства.и синтез из текста в речь, которая должна быть передана на устройство и позволить ему говорить
public async void Talk(string message)
{
MediaPlayer mp = new MediaPlayer { Volume = 100 };
var stream = await _synth.SynthesizeTextToStreamAsync(message);
mp.Source = MediaSource.CreateFromStream(stream, stream.ContentType);
mp.Play();
}