Как мне узнать, когда процесс преобразования текста в речь начинается и заканчивается в Xamarin? - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь добавить анимацию, когда начинается процесс TTS (анимация также начинается), и когда функция TTS заканчивается, анимация также заканчивается.

У меня сейчас есть мой код:


            if (!string.IsNullOrWhiteSpace(TTSEditor.Text))
            {
                animationView.Loop = true;
                animationView.AutoPlay = true;
                animationView.Play();

                //insert TTS function Here
                var Text = TTSEditor.Text;
                CrossTextToSpeech.Current.Speak(Text, speakRate: (float)0.9, pitch: (float)1.1f);
            }          

            else
            {
                DisplayAlert("Error", "Text Field Should not be Blank to Use Text-to-Speech Functionality!", "OK");
            }

Я использую Xam.Plugins.TextToSpeech в качестве моего TTS, он работает нормально, но я не могу найти то, что хочу здесь: https://github.com/jamesmontemagno/TextToSpeechPlugin

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Вы можете подождать процесса разговора:

private async void Button_Clicked(object sender, EventArgs e)
{
    Console.WriteLine("begin");

    await CrossTextToSpeech.Current.Speak("Hello world! Hello world! Hello world! Hello world!", speakRate: (float)0.9, pitch: (float)1.1f);

    Console.WriteLine("end");

}

См .: Руководство по программированию / Концепции / Asyn c

1 голос
/ 02 февраля 2020

Каждая платформа имеет такую ​​возможность, и вы можете вызывать собственный код с каждой платформы с помощью внедрения зависимостей, если вы используете Xamarin.Forms, или даже напрямую, если вы используете только собственные проекты.

Вы можете посмотреть если есть другой плагин, который имел бы такую ​​возможность, но я не знаю об этом.

К сожалению, Джеймс больше не обновляет этот плагин, поэтому шансы на новую функцию очень малы.

Так что в целом это возможно, но это требует большой работы и достаточно хороших знаний, я дал вам некоторые рекомендации, поскольку ответ не может go за этим.

...