public Task <IList <SsmlUnit> > GenerateAsync(string text) { var metaText = MetaText.CreateMetaText(text, _textSpliter.SplitText); var analyzeResults = new List <TextAnalyzeResult>(); //todo: parallel the analyze step foreach (var type in _analyzeResultProcessOrder) { if (!_analyzerDict.TryGetValue(type, out var analyzer)) { continue; } try { analyzeResults.Add(analyzer.AnalyzeText(metaText)); } catch (Exception) { //ignore for now todo: add log here } } return(GenerateAsync(metaText, analyzeResults)); }