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); }
private static string GetLanguageFromBreakdown(VideoIndexerResult videoIndexerAnalysisResult) { if (videoIndexerAnalysisResult.breakdowns == null || videoIndexerAnalysisResult.breakdowns.Length == 0) { return("unknown"); } return(videoIndexerAnalysisResult.breakdowns[0].language); }
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, }); }
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); }
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 }); }