public static async System.Threading.Tasks.Task <string> TextToSpelledPronunciationServiceAsync(string text, System.Collections.Generic.Dictionary <string, string> apiArgs) { //System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(Options.options.locale.language); using (System.Speech.Recognition.SpeechRecognitionEngine RecognitionEngine = new System.Speech.Recognition.SpeechRecognitionEngine()) { RecognitionEngine.LoadGrammar(new System.Speech.Recognition.DictationGrammar()); text = text.Replace(".", ""); // EmulateRecognize returns null if a period is in the text System.Speech.Recognition.RecognitionResult result = RecognitionEngine.EmulateRecognize(text); if (result == null) { throw new Exception("TextToSpelledPronunciationServiceAsync: RecognitionResult returned null probably due to invalid language input."); } string pronunciations = null; foreach (System.Speech.Recognition.RecognizedWordUnit w in result.Words) { pronunciations += w.Pronunciation + " "; } return(pronunciations); } }