public async void Speak(string text, CrossLocale?crossLocale = null, float?pitch = null, float?speakRate = null, float?volume = null, CancellationToken cancelToken = default(CancellationToken)) { if (TextToSpeech != null) { if (crossLocale == null) { var localeList = (await TextToSpeech.GetInstalledLanguages())?.ToArray(); if (localeList != null) { crossLocale = localeList.FirstOrDefault(o => o.DisplayName.Contains("zh-CN")); } } TextToSpeech.Speak(text, crossLocale, pitch, speakRate, volume, cancelToken).Forget(); } }