public MainViewModel(ITtsService ttsService) { this.ttsService = ttsService; //// .... this was a test //ttsService.AddWordCallback((textBeingRead, start, length) => //{ // // word // PrependToLog($"[{start}:{length}] {textBeingRead.Substring(start, length)}"); //}); //TODO: use config file maybe var xmlFile = @"C:\OtherMiktemk\datafiles\german-grammar\german-grammar-split.xml"; outputLang = "de"; CurIndex = 900; allText = XmlFactory.LoadFromFile<MultiLanguageText>(xmlFile); PlayStopCommand = new RelayCommand(PlayStop, () => true); PreviewKeyDownCommand = new RelayCommand<KeyEventArgs>((args) => { if (args.Key == Key.Left) CurIndex--; if (args.Key == Key.Right) CurIndex++; if (args.Key == Key.Space) PlayStop(); }); }
/// <summary> /// phraseCallback is called for every phrase read 0..n-1 and one more time, with a null, when we are done all fragments /// </summary> public void SayAsyncMany( MultiLanguageText allText, int startFragment, Action<UniLangPhrase, int> phraseCallback) { var fragments = allText.Phrases.Skip(startFragment); var curIndex = startFragment; synth.SayManyPhrasesInManyLanguages(fragments, (phrase) => { // .... called when fragment is completed phraseCallback(phrase, curIndex); curIndex++; }); }
public Program() { // TODO: use config file maybe var langCodeLatin = "de"; var langCodeCyril = "ru"; var inFile = @"C:\OtherMiktemk\datafiles\german-grammar\german-grammar.txt"; var outFile = @"C:\OtherMiktemk\datafiles\german-grammar\german-grammar-split.xml"; var textFile = File.ReadAllLines(inFile); var textSentenceSplit = textFile.SelectMany(para => para.Split(new [] { ".", "?", "!" }, StringSplitOptions.RemoveEmptyEntries)); var allTextStruct = new MultiLanguageText(); foreach (var sentence in textSentenceSplit) { var phraseSplits = Utils.SplitAwayCyrillics(sentence, langCodeLatin, langCodeCyril).ToList(); foreach (var phrase in phraseSplits) { allTextStruct.Phrases.Add(phrase); } } XmlFactory.WriteToFile(allTextStruct, outFile); }