Ejemplo n.º 1
0
        public void AddWord()
        {
            TokenOptions tokenOptions = new TokenOptions()
            {
                IamApiKey  = apikey,
                ServiceUrl = url
            };

            SpeechToTextService service = new SpeechToTextService(tokenOptions);

            var customWord = new CustomWord()
            {
                DisplayAs  = ".NET",
                SoundsLike = new List <string>()
                {
                    "dotnet"
                },
                Word = "dotnet"
            };

            var result = service.AddWord(
                customizationId: customizationId,
                wordName: "dotnet",
                word: "dotnet",
                soundsLike: new List <string>()
            {
                "dotnet"
            },
                displayAs: ".NET"
                );

            Console.WriteLine(result.Response);
        }
Ejemplo n.º 2
0
        public void AddWord()
        {
            IamConfig config = new IamConfig(
                apikey: apikey
                );

            SpeechToTextService service = new SpeechToTextService(config);

            service.SetEndpoint(url);

            var customWord = new CustomWord()
            {
                DisplayAs  = ".NET",
                SoundsLike = new List <string>()
                {
                    "dotnet"
                },
                Word = "dotnet"
            };

            var result = service.AddWord(
                customizationId: customizationId,
                wordName: "dotnet",
                word: "dotnet",
                soundsLike: new List <string>()
            {
                "dotnet"
            },
                displayAs: ".NET"
                );

            Console.WriteLine(result.Response);
        }
Ejemplo n.º 3
0
 bool IsCollucion(CustomLine line, CustomWord word)
 {
     if (word.X >= line.X && (word.X <= line.X + line.Width) && word.Y >= line.Y && word.Y <= line.Y + line.Height)
     {
         return(true);
     }
     //if (word.X >= line.X && (word.X <= line.X + line.Width) && word.Y >= line.Y && word.Y <= line.Y + line.Height && word.X + word.Width < line.X + line.Width)
     //{
     //    return true;
     //}
     return(false);
 }
Ejemplo n.º 4
0
        private BaseModel AddWord(string customizationId, string wordName, CustomWord customWord, Dictionary <string, object> customData = null)
        {
            Console.WriteLine("\nAttempting to AddWord()");
            var result = _service.AddWord(customizationId: customizationId, wordName: wordName, customWord: customWord, customData: customData);

            if (result != null)
            {
                Console.WriteLine("AddWord() succeeded:\n{0}", JsonConvert.SerializeObject(result, Formatting.Indented));
            }
            else
            {
                Console.WriteLine("Failed to AddWord()");
            }

            return(result);
        }
Ejemplo n.º 5
0
        private object AddWord(string customizationId, string wordName, string contentType, CustomWord customWord)
        {
            Console.WriteLine("\nAttempting to AddWord()");
            var result = service.AddWord(customizationId: customizationId, wordName: wordName, customWord: customWord);

            if (result != null)
            {
                Console.WriteLine("AddWord() succeeded:\n{0}", JsonConvert.SerializeObject(result, Formatting.Indented));
            }
            else
            {
                Console.WriteLine("Failed to AddWord()");
            }

            return(result);
        }
Ejemplo n.º 6
0
        public void TestCustomLanguageModels_Success()
        {
            var listLanguageModelsResult = ListLanguageModels();

            CreateLanguageModel createLanguageModel = new Model.CreateLanguageModel
            {
                Name          = _customModelName,
                BaseModelName = Model.CreateLanguageModel.BaseModelNameEnum.EN_US_BROADBANDMODEL,
                Description   = _customModelDescription
            };

            var    createLanguageModelResult = CreateLanguageModel(createLanguageModel);
            string customizationId           = createLanguageModelResult.CustomizationId;

            var getLanguageModelResult = GetLanguageModel(customizationId);

            var listCorporaResults = ListCorpora(customizationId);

            object addCorpusResults = null;

            using (FileStream corpusStream = File.OpenRead(_corpusPath))
            {
                addCorpusResults = AddCorpus(customizationId, _corpusName, corpusStream);
            }

            var getCorpusResults = GetCorpus(customizationId, _corpusName);

            CheckCorpusStatus(customizationId, _corpusName);
            autoEvent.WaitOne();

            var trainLanguageModelResult = TrainLanguageModel(customizationId);

            CheckCustomizationStatus(customizationId);
            autoEvent.WaitOne();
            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            var listCustomWordsResult = ListWords(customizationId);

            var customWords = new CustomWords()
            {
                Words = new List <CustomWord>()
                {
                    new CustomWord()
                    {
                        DisplayAs  = "Watson",
                        SoundsLike = new List <string>()
                        {
                            "wat son"
                        },
                        Word = "watson"
                    },
                    new CustomWord()
                    {
                        DisplayAs  = "C#",
                        SoundsLike = new List <string>()
                        {
                            "si sharp"
                        },
                        Word = "csharp"
                    },
                    new CustomWord()
                    {
                        DisplayAs  = "SDK",
                        SoundsLike = new List <string>()
                        {
                            "S.D.K."
                        },
                        Word = "sdk"
                    }
                }
            };

            var addCustomWordsResult = AddWords(customizationId, customWords);

            CheckCustomizationStatus(customizationId);
            autoEvent.WaitOne();

            trainLanguageModelResult = TrainLanguageModel(customizationId);
            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            CheckCustomizationStatus(customizationId);
            autoEvent.WaitOne();

            var customWord = new CustomWord()
            {
                DisplayAs  = ".NET",
                SoundsLike = new List <string>()
                {
                    "dotnet"
                },
                Word = "dotnet"
            };

            var addCustomWordResult = AddWord(customizationId, "dotnet", customWord);

            var getCustomWordResult = GetWord(customizationId, "dotnet");

            trainLanguageModelResult = TrainLanguageModel(customizationId);
            CheckCustomizationStatus(customizationId);
            autoEvent.WaitOne();
            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            CheckCorpusStatus(customizationId, _corpusName);
            autoEvent.WaitOne();

            //var upgradeLanguageModelResult = UpgradeLanguageModel(customizationId);
            //  Assert.IsNotNull(upgradeLanguageModelResult);

            var deleteCustomWordResults = DeleteWord(customizationId, "csharp");

            var deleteCorpusResults = DeleteCorpus(customizationId, _corpusName);

            var resetLanguageModelResult = ResetLanguageModel(customizationId);

            Assert.IsNotNull(resetLanguageModelResult);

            var deleteLanguageModelResults = DeleteLanguageModel(customizationId);

            Assert.IsNotNull(deleteCustomWordResults);
            Assert.IsNotNull(deleteCorpusResults);
            Assert.IsNotNull(deleteLanguageModelResults);
            Assert.IsNotNull(getCustomWordResult);
            Assert.IsTrue(getCustomWordResult._Word == "dotnet");
            Assert.IsNotNull(addCustomWordResult);
            Assert.IsNotNull(addCustomWordsResult);
            Assert.IsNotNull(listCustomWordsResult);
            Assert.IsNotNull(listCustomWordsResult._Words);
            Assert.IsNotNull(getCorpusResults);
            Assert.IsTrue(getCorpusResults.Name == _corpusName);
            Assert.IsNotNull(addCorpusResults);
            Assert.IsNotNull(listCorporaResults);
            Assert.IsNotNull(listCorporaResults._Corpora);
            Assert.IsNotNull(getLanguageModelResult);
            Assert.IsTrue(getLanguageModelResult.CustomizationId == customizationId);
            Assert.IsNotNull(createLanguageModelResult);
            Assert.IsNotNull(listLanguageModelsResult);
            Assert.IsNotNull(listLanguageModelsResult.Customizations);
        }
Ejemplo n.º 7
0
        private List <CustomLine> buildTextFromParagraph(FREngine.IParagraph par, int iBlock)
        {
            // CustomParagraph result = new CustomParagraph();

            List <CustomWord> wordItems = new List <CustomWord>();


            string text = par.Text;

            FREngine.CharParams charParams = par.Application.CreateCharParams();

            int wordStart                  = 0;
            int wordStartInText            = Text.Count;
            List <Character> charaterItems = new List <Character>();

            for (int iChar = 0; iChar < text.Length; iChar++)
            {
                char ch = text[iChar];
                par.GetCharParams(iChar, charParams);

                bool isVisible = (!char.IsWhiteSpace(ch));
                if (isVisible)
                {
                    Text.Add(new Character(ch, charParams));
                    charaterItems.Add(new Character(ch, charParams));
                }

                // Splitting words by whitespaces
                // TODO: line break, hyphen
                if (char.IsWhiteSpace(ch))
                {
                    if (wordStart < iChar)
                    {
                        int wordEndInText = Text.Count - 1;
                        words.Add(new Word(wordStartInText, wordEndInText, Text));

                        CustomWord word = new CustomWord();
                        //word.Word = new Word(wordStartInText, wordEndInText, Text);
                        word.X     = charaterItems.Min(x => x.Rect.X);
                        word.Y     = charaterItems.Min(x => x.Rect.Y);
                        word.Value = new Word(wordStartInText, wordEndInText, Text).ToString();

                        int xMax = charaterItems.Max(x => x.Rect.X);
                        word.Width  = xMax + charaterItems.First(x => x.Rect.X == xMax).Rect.Width - word.X;
                        word.Height = charaterItems.Max(x => x.Rect.Height);

                        //word.CharaterItems = charaterItems;
                        wordItems.Add(word);

                        listWords.Add(word);
                        charaterItems = new List <Character>();
                    }

                    wordStart       = iChar + 1;
                    wordStartInText = Text.Count;
                }
            }

            // Add last word if necessary
            if (wordStart < text.Length)
            {
                int wordEndInText = Text.Count - 1;
                words.Add(new Word(wordStartInText, wordEndInText, Text));
                CustomWord word = new CustomWord();
                //word.Word = new Word(wordStartInText, wordEndInText, Text);
                //word.CharaterItems = charaterItems;
                word.Value = new Word(wordStartInText, wordEndInText, Text).ToString();
                word.X     = charaterItems.Min(x => x.Rect.X);
                word.Y     = charaterItems.Min(x => x.Rect.Y);
                int xMax = charaterItems.Max(x => x.Rect.X);
                word.Width  = xMax + charaterItems.First(x => x.Rect.X == xMax).Rect.Width - word.X;
                word.Height = charaterItems.Max(x => x.Rect.Height);


                wordItems.Add(word);
                listWords.Add(word);
                charaterItems = new List <Character>();
            }
            List <CustomLine> csLineItems = new List <CustomLine>();

            //if (result.WordItems.Any())
            //{
            //    CustomLine line = new CustomLine()

            //        {
            //            X = par.Left,
            //            Y = par.Top,
            //            Width = par.Right - par.Left,
            //            Height = par.Bottom - par.Top,
            //            WordItems = result.WordItems,
            //            Index = 0,
            //            ParentBlockIndex = iBlock,
            //            Value = string.Join(" ", result.WordItems.Select(x => x.Word.ToString()).ToArray())
            //        }
            //        ;



            //    csLineItems.Add(line);
            //    lineAll.Add(line);

            //}


            FREngine.IParagraphLines lines = par.Lines;



            if (wordItems.Any())
            {
                int iLine = 0;
                foreach (FREngine.IParagraphLine item in lines)
                {
                    CustomLine lineItem = new CustomLine()
                    {
                        X           = item.Left,
                        Y           = item.Top,
                        Height      = item.Bottom - item.Top,
                        Width       = item.Right - item.Left,
                        ParentIndex = 0,
                        Index       = iLine,
                    };
                    int iWords = 0;
                    lineItem.WordItems         = wordItems.Where(x => IsCollucion(lineItem, x)).Select(x => { x.Index = iWords; iWords++; x.ParentIndex = iLine; return(x); }).ToList();
                    lineItem.Value             = string.Join(" ", lineItem.WordItems.OrderBy(x => x.X).Select(x => x.Value));
                    lineItem.ValueWithoutSpace = string.Join("", lineItem.WordItems.OrderBy(x => x.X).Select(x => x.Value));

                    csLineItems.Add(lineItem);
                    lineAll.Add(lineItem);
                    iLine++;
                }
            }



            return(csLineItems.OrderBy(x => x.Index).ToList());
        }
        public void TestCustomLanguageModels_Success()
        {
            service.WithHeader("X-Watson-Test", "1");
            var listLanguageModelsResult = service.ListLanguageModels();

            service.WithHeader("X-Watson-Test", "1");
            var createLanguageModelResult = service.CreateLanguageModel(
                name: customModelName,
                baseModelName: EN_US,
                dialect: "en-US",
                description: customModelDescription
                );
            string customizationId = createLanguageModelResult.Result.CustomizationId;

            service.WithHeader("X-Watson-Test", "1");
            var getLanguageModelResult = service.GetLanguageModel(
                customizationId: customizationId
                );

            service.WithHeader("X-Watson-Test", "1");
            var listCorporaResults = service.ListCorpora(
                customizationId: customizationId
                );

            DetailedResponse <object> addCorpusResults = null;

            using (FileStream fs = File.OpenRead(corpusPath))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);
                    service.WithHeader("X-Watson-Test", "1");
                    addCorpusResults = service.AddCorpus(
                        customizationId: customizationId,
                        corpusName: corpusName,
                        corpusFile: ms
                        );
                }
            }

            service.WithHeader("X-Watson-Test", "1");
            var getCorpusResults = service.GetCorpus(
                customizationId: customizationId,
                corpusName: corpusName
                );

            CheckCorpusStatus(
                customizationId: customizationId,
                corpusName: corpusName
                );
            autoEvent.WaitOne();

            service.WithHeader("X-Watson-Test", "1");
            var trainLanguageModelResult = service.TrainLanguageModel(
                customizationId: customizationId
                );

            CheckCustomizationStatus(
                customizationId: customizationId
                );
            autoEvent.WaitOne();

            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            service.WithHeader("X-Watson-Test", "1");
            var listCustomWordsResult = service.ListWords(
                customizationId: customizationId,
                wordType: "all",
                sort: "-alphabetical"
                );

            var words = new List <CustomWord>()
            {
                new CustomWord()
                {
                    DisplayAs  = "Watson",
                    SoundsLike = new List <string>()
                    {
                        "wat son"
                    },
                    Word = "watson"
                },
                new CustomWord()
                {
                    DisplayAs  = "C#",
                    SoundsLike = new List <string>()
                    {
                        "si sharp"
                    },
                    Word = "csharp"
                },
                new CustomWord()
                {
                    DisplayAs  = "SDK",
                    SoundsLike = new List <string>()
                    {
                        "S.D.K."
                    },
                    Word = "sdk"
                }
            };

            service.WithHeader("X-Watson-Test", "1");
            var addCustomWordsResult = service.AddWords(
                customizationId: customizationId,
                words: words
                );

            CheckCustomizationStatus(
                customizationId: customizationId
                );
            autoEvent.WaitOne();

            service.WithHeader("X-Watson-Test", "1");
            trainLanguageModelResult = service.TrainLanguageModel(
                customizationId: customizationId
                );
            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            CheckCustomizationStatus(
                customizationId: customizationId
                );
            autoEvent.WaitOne();

            var customWord = new CustomWord()
            {
                DisplayAs  = ".NET",
                SoundsLike = new List <string>()
                {
                    "dotnet"
                },
                Word = "dotnet"
            };

            service.WithHeader("X-Watson-Test", "1");
            var addCustomWordResult = service.AddWord(
                customizationId: customizationId,
                wordName: "dotnet",
                word: "dotnet",
                soundsLike: new List <string>()
            {
                "dotnet"
            },
                displayAs: ".NET"
                );

            service.WithHeader("X-Watson-Test", "1");
            var getCustomWordResult = service.GetWord(
                customizationId: customizationId,
                wordName: "dotnet"
                );

            service.WithHeader("X-Watson-Test", "1");
            trainLanguageModelResult = service.TrainLanguageModel(
                customizationId: customizationId
                );
            CheckCustomizationStatus(
                customizationId: customizationId
                );
            autoEvent.WaitOne();
            Assert.IsNotNull(trainLanguageModelResult);
            trainLanguageModelResult = null;

            CheckCorpusStatus(
                customizationId: customizationId,
                corpusName: corpusName
                );
            autoEvent.WaitOne();

            //service.WithHeader("X-Watson-Test", "1");
            //var upgradeLanguageModelResult = service.UpgradeLanguageModel(
            //    customizationId: customizationId
            //    );
            //Assert.IsNotNull(upgradeLanguageModelResult);

            service.WithHeader("X-Watson-Test", "1");
            var listGrammarsResult = service.ListGrammars(customizationId: customizationId);

            service.WithHeader("X-Watson-Test", "1");
            var addGrammarResult = service.AddGrammar(
                customizationId: customizationId,
                grammarName: grammarName,
                grammarFile: new MemoryStream(File.ReadAllBytes(grammarPath)),
                contentType: grammarsContentType
                );

            service.WithHeader("X-Watson-Test", "1");
            var getGrammarResult = service.GetGrammar(
                customizationId: customizationId,
                grammarName: grammarName
                );

            CheckCustomizationStatus(
                customizationId: customizationId
                );
            autoEvent.WaitOne();

            service.WithHeader("X-Watson-Test", "1");
            var deleteGrammarResult = service.DeleteGrammar(
                customizationId: customizationId,
                grammarName: grammarName
                );

            service.WithHeader("X-Watson-Test", "1");
            var deleteCustomWordResults = service.DeleteWord(
                customizationId: customizationId,
                wordName: "csharp"
                );

            service.WithHeader("X-Watson-Test", "1");
            var deleteCorpusResults = service.DeleteCorpus(
                customizationId: customizationId,
                corpusName: corpusName
                );

            service.WithHeader("X-Watson-Test", "1");
            var resetLanguageModelResult = service.ResetLanguageModel(
                customizationId: customizationId
                );

            Assert.IsNotNull(resetLanguageModelResult);

            service.WithHeader("X-Watson-Test", "1");
            var deleteLanguageModelResults = service.DeleteLanguageModel(
                customizationId: customizationId
                );

            Assert.IsNotNull(deleteGrammarResult);
            Assert.IsNotNull(getGrammarResult);
            Assert.IsTrue(getGrammarResult.Result.Name == grammarName);
            Assert.IsNotNull(addGrammarResult);
            Assert.IsNotNull(listGrammarsResult);
            Assert.IsNotNull(deleteCustomWordResults);
            Assert.IsNotNull(deleteCorpusResults);
            Assert.IsNotNull(deleteLanguageModelResults);
            Assert.IsNotNull(getCustomWordResult);
            Assert.IsTrue(getCustomWordResult.Result._Word == "dotnet");
            Assert.IsNotNull(addCustomWordResult);
            Assert.IsNotNull(addCustomWordsResult);
            Assert.IsNotNull(listCustomWordsResult);
            Assert.IsNotNull(listCustomWordsResult.Result._Words);
            Assert.IsNotNull(getCorpusResults);
            Assert.IsTrue(getCorpusResults.Result.Name == corpusName);
            Assert.IsNotNull(addCorpusResults);
            Assert.IsNotNull(listCorporaResults);
            Assert.IsNotNull(listCorporaResults.Result._Corpora);
            Assert.IsNotNull(getLanguageModelResult);
            Assert.IsTrue(getLanguageModelResult.Result.CustomizationId == customizationId);
            Assert.IsNotNull(createLanguageModelResult);
            Assert.IsNotNull(listLanguageModelsResult);
            Assert.IsNotNull(listLanguageModelsResult.Result.Customizations);
        }