Esempio n. 1
0
        private async void DownloadModel(string person)
        {
            MLTtsLocalModel         model   = new MLTtsLocalModel.Factory(person).Create();
            MLModelDownloadStrategy request = new MLModelDownloadStrategy.Factory()
                                              .NeedWifi()
                                              .SetRegion(MLModelDownloadStrategy.RegionDrEurope)
                                              .Create();

            Task downloadTask = manager.DownloadModelAsync(model, request, this);

            try
            {
                await downloadTask;

                if (downloadTask.IsCompleted)
                {
                    mlTtsEngine.UpdateConfig(mlTtsConfigs);
                    Log.Info(Tag, "downloadModel: " + model.ModelName + " success");
                    ShowToast("downloadModel Success");
                    Speak(mEditText.Text.ToString().Trim());
                }
                else
                {
                    Log.Info(Tag, "failed ");
                }
            }
            catch (Exception e)
            {
                Log.Error(Tag, "downloadModel failed: " + e.Message);
                ShowToast(e.Message);
            }
        }
Esempio n. 2
0
        public async void OnClick(View v)
        {
            switch (v.Id)
            {
            case Resource.Id.close:
                mEditText.Text = "";
                break;

            case Resource.Id.btn_speak:
                string text = mEditText.Text.ToString();
                //Check whether the offline model corresponding to the language has been downloaded.
                MLTtsLocalModel model          = new MLTtsLocalModel.Factory(MLTtsConstants.TtsSpeakerOfflineEnUsMaleEagle).Create();
                Task <bool>     checkModelTask = manager.IsModelExistAsync(model);

                try
                {
                    await checkModelTask;

                    if (checkModelTask.IsCompleted && checkModelTask.Result == true)
                    {
                        Speak(text);
                    }
                    else
                    {
                        Log.Error(Tag, "isModelDownload== " + checkModelTask.Result);
                        ShowToast("The offline model has not been downloaded!");
                        DownloadModel(MLTtsConstants.TtsSpeakerOfflineEnUsMaleEagle);
                    }
                }
                catch (Exception e)
                {
                    Log.Error(Tag, "downloadModel failed: " + e.Message);
                    ShowToast(e.Message);
                }
                break;

            case Resource.Id.btn_download_model:
                DownloadModel(MLTtsConstants.TtsSpeakerOfflineEnUsMaleEagle);
                break;

            case Resource.Id.btn_stop_speak:
                mlTtsEngine.Stop();
                break;

            default:
                break;
            }
        }