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();
            });
        }
Example #2
0
        /// <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++;
            });
        }
Example #3
0
        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);
        }