Exemplo n.º 1
0
        private static IList <string> GetTextFromBreakdown(VideoIndexerResult videoIndexerAnalysisResult)
        {
            var list = new List <string>();

            if (videoIndexerAnalysisResult.breakdowns == null || videoIndexerAnalysisResult.breakdowns.Length == 0)
            {
                return(list);
            }

            foreach (var block in videoIndexerAnalysisResult.breakdowns[0].insights.transcriptBlocks)
            {
                foreach (var ocr in block.ocrs)
                {
                    foreach (var line in ocr.lines)
                    {
                        if (string.IsNullOrEmpty(line.textData))
                        {
                            continue;
                        }
                        list.Add(line.textData);
                    }
                }
            }

            return(list);
        }
Exemplo n.º 2
0
        private static string GetLanguageFromBreakdown(VideoIndexerResult videoIndexerAnalysisResult)
        {
            if (videoIndexerAnalysisResult.breakdowns == null || videoIndexerAnalysisResult.breakdowns.Length == 0)
            {
                return("unknown");
            }

            return(videoIndexerAnalysisResult.breakdowns[0].language);
        }
Exemplo n.º 3
0
        private static ContentModeration GetContentModerationFromBreakdown(VideoIndexerResult videoIndexerAnalysisResult)
        {
            if (videoIndexerAnalysisResult.breakdowns == null || videoIndexerAnalysisResult.breakdowns.Length == 0)
            {
                return(new ContentModeration());
            }

            return(new ContentModeration
            {
                AdultClassifierValue = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.adultClassifierValue,
                BannedWordsCount = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.bannedWordsCount,
                BannedWordsRatio = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.bannedWordsRatio,
                IsAdult = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.isAdult,
                RacyClassifierValue = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.racyClassifierValue,
                ReviewRecommended = videoIndexerAnalysisResult.breakdowns[0].insights.contentModeration.reviewRecommended,
            });
        }
Exemplo n.º 4
0
        public static VideoAnalysisResult MapToDomain(this VideoIndexerResult videoIndexerAnalysisResult)
        {
            var domainEntity = new VideoAnalysisResult()
            {
                Name              = videoIndexerAnalysisResult.name,
                Description       = videoIndexerAnalysisResult.description,
                Language          = GetLanguageFromBreakdown(videoIndexerAnalysisResult),
                Topics            = videoIndexerAnalysisResult.summarizedInsights.topics?.Select(MapToDomain).ToList(),
                Annotations       = videoIndexerAnalysisResult.summarizedInsights.annotations?.Select(MapToDomain).ToList(),
                Brands            = videoIndexerAnalysisResult.summarizedInsights.brands?.Select(MapToDomain).ToList(),
                Faces             = videoIndexerAnalysisResult.summarizedInsights.faces?.Select(MapToDomain).ToList(),
                Sentiments        = videoIndexerAnalysisResult.summarizedInsights.sentiments?.Select(MapToDomain).ToList(),
                ThumbnailUrl      = videoIndexerAnalysisResult.summarizedInsights.thumbnailUrl,
                LengthInMinutes   = (double)videoIndexerAnalysisResult.durationInSeconds / 60,
                ContentModeration = GetContentModerationFromBreakdown(videoIndexerAnalysisResult),
                Transcript        = GetTranscriptFromBreakdown(videoIndexerAnalysisResult),
                Text              = GetTextFromBreakdown(videoIndexerAnalysisResult),
            };

            return(domainEntity);
        }
Exemplo n.º 5
0
        private static string GetTranscriptFromBreakdown(VideoIndexerResult videoIndexerAnalysisResult)
        {
            if (videoIndexerAnalysisResult.breakdowns == null || videoIndexerAnalysisResult.breakdowns.Length == 0)
            {
                return(string.Empty);
            }

            var stringBuilder = new StringBuilder();

            foreach (var block in videoIndexerAnalysisResult.breakdowns[0].insights.transcriptBlocks)
            {
                foreach (var line in block.lines)
                {
                    if (string.IsNullOrEmpty(line.text))
                    {
                        continue;
                    }
                    stringBuilder.AppendLine(line.text);
                }
            }

            return(stringBuilder.ToString());
        }
 /// <summary>
 /// Flattens and simplifies the insights model.
 /// </summary>
 private static SimplifiedVideoInsights TransformVideoIndexModelToSimplifiedStructure(VideoIndexerResult indexerInsights, string encodedMetadataPath)
 {
     return(new SimplifiedVideoInsights()
     {
         Content = string.Join(" ", indexerInsights.Videos.SelectMany(video => (video.Insights.Transcript?.Select(transcript => transcript.Text)) ?? Enumerable.Empty <string>())),
         Persons = indexerInsights.SummarizedInsights.Faces.Select(face => face.Name).ToArray(),
         Organizations = Array.Empty <string>(),
         Locations = indexerInsights.SummarizedInsights.NamedLocations.Select(x => x.Name).ToArray(),
         KeyPhrases = indexerInsights.SummarizedInsights.Keywords.Select(x => x.Name)
                      .Union(indexerInsights.SummarizedInsights.Labels.Select(x => x.Name))
                      .Union(indexerInsights.SummarizedInsights.Topics.Select(x => x.Name))
                      .Union(indexerInsights.SummarizedInsights.Sentiments.Select(x => x.SentimentKey))
                      .Union(indexerInsights.SummarizedInsights.Emotions.Select(x => x.Type))
                      .ToArray(),
         IndexedVideoId = indexerInsights.Id,
         OriginalVideoEncodedMetadataPath = encodedMetadataPath,
         OriginalVideoName = indexerInsights.Name,
         ThumbnailId = indexerInsights.SummarizedInsights.ThumbnailId
     });
 }