parent
2ddbe98a1b
commit
4f48553afd
|
|
@ -84,7 +84,7 @@ namespace VideoAnalysisCore.AICore.FFMPGE
|
||||||
keyFrames.Add((int)timestamp);
|
keyFrames.Add((int)timestamp);
|
||||||
//string outputPath = Path.Combine(outputDir, $"change_{timestamp:0000}.jpg");
|
//string outputPath = Path.Combine(outputDir, $"change_{timestamp:0000}.jpg");
|
||||||
//currFrame.Save(outputPath);
|
//currFrame.Save(outputPath);
|
||||||
Console.WriteLine($"变化帧: {timestamp}秒,差异值: {ssim:F2}");
|
//Console.WriteLine($"变化帧: {timestamp}秒,差异值: {ssim:F2}");
|
||||||
}
|
}
|
||||||
//Console.WriteLine($"帧: {timestamp}秒,SSIM{ssim:F2} 差异值: {ssim:F2} ");
|
//Console.WriteLine($"帧: {timestamp}秒,SSIM{ssim:F2} 差异值: {ssim:F2} ");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -199,15 +199,14 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
await Parallel.ForAsync(0, totalCount,
|
await Parallel.ForAsync(0, totalCount,
|
||||||
new ParallelOptions() { MaxDegreeOfParallelism = 20 },
|
new ParallelOptions() { MaxDegreeOfParallelism = 20 },
|
||||||
async (s, c) =>
|
async (s, c) =>
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
{
|
||||||
var cArr = captionsArr
|
var cArr = captionsArr
|
||||||
.Skip(spanCount * s)
|
.Skip(spanCount * s)
|
||||||
.Take(spanCount);
|
.Take(spanCount);
|
||||||
if (cArr.Count() == 0)
|
if (cArr.Count() == 0)
|
||||||
return;
|
return;
|
||||||
var nowCaptionStr = cArr.Select(s => s.Text).ToJson();
|
var cStrArr = cArr.Select(s => s.Text);
|
||||||
|
var nowCaptionStr = cStrArr.ToJson();
|
||||||
var resFormat = """[string(修改结果)]""";
|
var resFormat = """[string(修改结果)]""";
|
||||||
var postMessages =
|
var postMessages =
|
||||||
$"这是一堂中国{subject}课堂的字幕,由结果是语音识别提供。" +
|
$"这是一堂中国{subject}课堂的字幕,由结果是语音识别提供。" +
|
||||||
|
|
@ -224,8 +223,8 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
var resData = await ChatAsync<string[]>(taskInfo.Id.ToString(), postMessages, "优化字幕", "deepseek-chat", 3000);
|
var resData = await ChatAsync<string[]>(taskInfo.Id.ToString(), postMessages, "优化字幕", "deepseek-chat", 3000);
|
||||||
if (resData.Count() != cArr.Count())
|
if (resData.Count() != cArr.Count())
|
||||||
{
|
{
|
||||||
Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s} AI结果数量不匹配,重试×");
|
resData = cStrArr.ToArray();
|
||||||
continue;
|
Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s} AI结果数量不匹配,采用原始值");
|
||||||
}
|
}
|
||||||
newCaptionsList.AddRange(resData.Select((text, i) => new SenseVoiceRes()
|
newCaptionsList.AddRange(resData.Select((text, i) => new SenseVoiceRes()
|
||||||
{
|
{
|
||||||
|
|
@ -235,7 +234,6 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
}));
|
}));
|
||||||
Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}完成√ ");
|
Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}完成√ ");
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
});
|
});
|
||||||
var res = newCaptionsList.OrderBy(s => s.Start).ToArray();
|
var res = newCaptionsList.OrderBy(s => s.Start).ToArray();
|
||||||
Console.WriteLine(DateTime.Now + $"=>字幕优化执行完成");
|
Console.WriteLine(DateTime.Now + $"=>字幕优化执行完成");
|
||||||
|
|
@ -505,6 +503,10 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(insertData==null || insertData.Count==0|| insertQuestionKonw.Count==0)
|
||||||
|
return null;
|
||||||
|
|
||||||
//上传oss 并更新imageUrl
|
//上传oss 并更新imageUrl
|
||||||
ossClient.AddVideoQuestionUrl(insertData);
|
ossClient.AddVideoQuestionUrl(insertData);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ using VideoAnalysisCore.Job;
|
||||||
using VideoAnalysisCore.Model;
|
using VideoAnalysisCore.Model;
|
||||||
using VideoAnalysisCore.Model.Enum;
|
using VideoAnalysisCore.Model.Enum;
|
||||||
using AlibabaCloud.SDK.Vod20170321;
|
using AlibabaCloud.SDK.Vod20170321;
|
||||||
|
using UserCenter.Model.Enum;
|
||||||
|
|
||||||
namespace VideoAnalysisCore.Common
|
namespace VideoAnalysisCore.Common
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -70,11 +70,18 @@ namespace VideoAnalysisCore.Controllers
|
||||||
var nodePackages = new List<NodePackageInfo>(reqArr.Count());
|
var nodePackages = new List<NodePackageInfo>(reqArr.Count());
|
||||||
var videoIdArr = videoTaskDB.AsQueryable().Select(v => v.TagId).Distinct().ToArray();
|
var videoIdArr = videoTaskDB.AsQueryable().Select(v => v.TagId).Distinct().ToArray();
|
||||||
var courseArr = await courseInfoDB.AsQueryable().ToArrayAsync();
|
var courseArr = await courseInfoDB.AsQueryable().ToArrayAsync();
|
||||||
|
//系统可接收任务的学科
|
||||||
|
var subjectArr = new List<SubjectEnum?>
|
||||||
|
{
|
||||||
|
SubjectEnum.数学
|
||||||
|
};
|
||||||
foreach (var sGroup in reqArr.GroupBy(s => s.ContentId))
|
foreach (var sGroup in reqArr.GroupBy(s => s.ContentId))
|
||||||
{
|
{
|
||||||
var s = sGroup.FirstOrDefault(s => s.VideoType == VideoType.摄像头);
|
var s = sGroup.FirstOrDefault(s => s.VideoType == VideoType.摄像头);
|
||||||
if (s is null)
|
if (s is null)
|
||||||
return BadRequest("无有效的老师授课视频");
|
return BadRequest("无有效的老师授课视频");
|
||||||
|
//校验学科有效
|
||||||
|
if (!subjectArr.Contains(s.SubjectId)) continue;
|
||||||
var stageId = s.StageId.GetHashCode();
|
var stageId = s.StageId.GetHashCode();
|
||||||
var subjectId = s.SubjectId.GetHashCode();
|
var subjectId = s.SubjectId.GetHashCode();
|
||||||
var course = courseArr.FirstOrDefault(x => stageId == x.Stage_Id && subjectId == x.Subject_Id);
|
var course = courseArr.FirstOrDefault(x => stageId == x.Stage_Id && subjectId == x.Subject_Id);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue