新增 视频所属云校id
This commit is contained in:
parent
ba00c75a36
commit
de1cdcf32c
|
|
@ -53,7 +53,11 @@ namespace Learn.VideoAnalysis.Expand
|
||||||
{
|
{
|
||||||
context.HandleResponse();
|
context.HandleResponse();
|
||||||
if (context.Response.StatusCode == 403)
|
if (context.Response.StatusCode == 403)
|
||||||
|
{
|
||||||
|
var data1 = new { Code = 403, Message = context.Error + context.AuthenticateFailure?.Message };
|
||||||
|
context.Response.WriteAsync(data1.ToJson());
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
context.Response.Clear();
|
context.Response.Clear();
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
context.Response.StatusCode = 401;
|
context.Response.StatusCode = 401;
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,10 @@ namespace Learn.VideoAnalysis
|
||||||
{
|
{
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
//设置接口请求体最大100m
|
||||||
|
builder.WebHost.ConfigureKestrel(serverOptions => {
|
||||||
|
serverOptions.Limits.MaxRequestBodySize = 100_000_000; // 100MB
|
||||||
|
});
|
||||||
builder.Services.AddLogging(loggingBuilder =>
|
builder.Services.AddLogging(loggingBuilder =>
|
||||||
{
|
{
|
||||||
loggingBuilder.ClearProviders(); // 清除默认的日志提供程序
|
loggingBuilder.ClearProviders(); // 清除默认的日志提供程序
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
KnowPointId = knowDic[x].ToString(),
|
KnowPointId = knowDic[x].ToString(),
|
||||||
TagId = taskInfo.TagId,
|
TagId = taskInfo.TagId,
|
||||||
VideoTaskId = taskInfo.Id,
|
VideoTaskId = taskInfo.Id,
|
||||||
|
CloudSchoolId = taskInfo.CloudSchoolId,
|
||||||
Stage = s?.Stage?.ToEnum<StageEnum>()
|
Stage = s?.Stage?.ToEnum<StageEnum>()
|
||||||
});
|
});
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,9 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
|
||||||
}
|
}
|
||||||
public class SenseVoice
|
public class SenseVoice
|
||||||
{
|
{
|
||||||
const string TransducerStr = "sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20";
|
//const string TransducerStr = "sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20";
|
||||||
static OfflineRecognizer OR = default!;
|
static OfflineRecognizer OR = default!;
|
||||||
//static VoiceActivityDetector VAD = default!;
|
static OfflineRecognizer OR_old = default!;
|
||||||
static VadModelConfig VADModelConfig = default!;
|
static VadModelConfig VADModelConfig = default!;
|
||||||
public Repository<VideoTask> videoTaskDB { get; set; }
|
public Repository<VideoTask> videoTaskDB { get; set; }
|
||||||
|
|
||||||
|
|
@ -59,10 +59,12 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
|
||||||
config.FeatConfig.SampleRate = 16000;
|
config.FeatConfig.SampleRate = 16000;
|
||||||
//用于训练模型的特征维度
|
//用于训练模型的特征维度
|
||||||
config.FeatConfig.FeatureDim = 80;
|
config.FeatConfig.FeatureDim = 80;
|
||||||
//Path to tokens.txt
|
// Path to tokens.txt
|
||||||
config.ModelConfig.Tokens = Path.Combine(AppCommon.AIModelFile, "sherpa-onnx-sense-voice-24-07-17", "tokens.txt");
|
var AIModelVersion_270717 = "sherpa-onnx-sense-voice-24-07-17";
|
||||||
|
var AIModelVersion_251217 = "sherpa-onnx-sense-voice-funasr-nano-2025-12-17";
|
||||||
|
config.ModelConfig.Tokens = Path.Combine(AppCommon.AIModelFile, AIModelVersion_251217, "tokens.txt");
|
||||||
//SenseVoice 模型
|
//SenseVoice 模型
|
||||||
config.ModelConfig.SenseVoice.Model = Path.Combine(AppCommon.AIModelFile, "sherpa-onnx-sense-voice-24-07-17", "model.onnx");
|
config.ModelConfig.SenseVoice.Model = Path.Combine(AppCommon.AIModelFile, AIModelVersion_251217, "model.onnx");
|
||||||
//1 使用逆文本规范化处理感官语音 [控制标点符号生成]。
|
//1 使用逆文本规范化处理感官语音 [控制标点符号生成]。
|
||||||
config.ModelConfig.SenseVoice.UseInverseTextNormalization = 1;
|
config.ModelConfig.SenseVoice.UseInverseTextNormalization = 1;
|
||||||
//反转文本规范化规则 fst 的路径
|
//反转文本规范化规则 fst 的路径
|
||||||
|
|
@ -116,8 +118,26 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
|
||||||
|
|
||||||
OR = new OfflineRecognizer(config);
|
OR = new OfflineRecognizer(config);
|
||||||
|
|
||||||
|
|
||||||
|
OfflineRecognizerConfig oldConfig = new OfflineRecognizerConfig();
|
||||||
|
//采样率
|
||||||
|
oldConfig.FeatConfig.SampleRate = 16000;
|
||||||
|
oldConfig.FeatConfig.FeatureDim = 80;
|
||||||
|
oldConfig.ModelConfig.Tokens = Path.Combine(AppCommon.AIModelFile, AIModelVersion_270717, "tokens.txt");
|
||||||
|
oldConfig.ModelConfig.SenseVoice.Model = Path.Combine(AppCommon.AIModelFile, AIModelVersion_270717, "model.onnx");
|
||||||
|
oldConfig.ModelConfig.SenseVoice.UseInverseTextNormalization = 1;
|
||||||
|
//反转文本规范化规则 fst 的路径
|
||||||
|
//config.RuleFsts = Path.Combine(AppCommon.AIModelFile, "itn_subject_sx.fst");
|
||||||
|
|
||||||
|
oldConfig.ModelConfig.SenseVoice.Language = "zh";
|
||||||
|
//模型类型
|
||||||
|
oldConfig.ModelConfig.ModelType = string.Empty;
|
||||||
|
oldConfig.ModelConfig.NumThreads = numThreads;
|
||||||
|
oldConfig.ModelConfig.Provider = "cpu";
|
||||||
|
OR_old = new OfflineRecognizer(oldConfig);
|
||||||
|
|
||||||
VADModelConfig = new VadModelConfig();
|
VADModelConfig = new VadModelConfig();
|
||||||
VADModelConfig.SileroVad.Model = Path.Combine(AppCommon.AIModelFile, "sherpa-onnx-sense-voice-24-07-17", "silero_vad.onnx");
|
VADModelConfig.SileroVad.Model = Path.Combine(AppCommon.AIModelFile, AIModelVersion_270717, "silero_vad.onnx");
|
||||||
VADModelConfig.Debug = 0;
|
VADModelConfig.Debug = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -226,6 +246,18 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
|
||||||
using var stream = OR.CreateStream();
|
using var stream = OR.CreateStream();
|
||||||
stream.AcceptWaveform(sampleRate, segment.Samples);
|
stream.AcceptWaveform(sampleRate, segment.Samples);
|
||||||
OR.Decode(stream);
|
OR.Decode(stream);
|
||||||
|
|
||||||
|
//old
|
||||||
|
using var stream1 = OR_old.CreateStream();
|
||||||
|
stream1.AcceptWaveform(sampleRate, segment.Samples);
|
||||||
|
OR.Decode(stream1);
|
||||||
|
if (stream.Result.Text != stream1.Result.Text)
|
||||||
|
{
|
||||||
|
Console.WriteLine("=>" + (float)Math.Round(startTime, 2, MidpointRounding.AwayFromZero));
|
||||||
|
Console.WriteLine("新=>" + stream.Result.Text);
|
||||||
|
Console.WriteLine("旧=>" + stream1.Result.Text);
|
||||||
|
}
|
||||||
|
Console.WriteLine();
|
||||||
double? resP =null;
|
double? resP =null;
|
||||||
if (!string.IsNullOrEmpty(stream.Result.Text))
|
if (!string.IsNullOrEmpty(stream.Result.Text))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,10 @@ namespace VideoAnalysisCore.Controllers.Dto
|
||||||
/// 学科网的教材版本Id
|
/// 学科网的教材版本Id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long TextBookVersionId { get; set; }
|
public long TextBookVersionId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 用户中心的云校id
|
||||||
|
/// </summary>
|
||||||
|
public long? UserCenterCloudSchoolId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 教育阶段
|
/// 教育阶段
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ namespace VideoAnalysisCore.Controllers
|
||||||
VideoUrl = s.VideoUrl,
|
VideoUrl = s.VideoUrl,
|
||||||
CourseType = s.CourseType,
|
CourseType = s.CourseType,
|
||||||
CallBackUrl = s.CallBackUrl,
|
CallBackUrl = s.CallBackUrl,
|
||||||
|
CloudSchoolId =s.UserCenterCloudSchoolId,
|
||||||
Area = s.Area,
|
Area = s.Area,
|
||||||
HostIP = s.HostIP,
|
HostIP = s.HostIP,
|
||||||
};
|
};
|
||||||
|
|
@ -129,7 +130,8 @@ namespace VideoAnalysisCore.Controllers
|
||||||
MediaUrl = s.VideoUrl,
|
MediaUrl = s.VideoUrl,
|
||||||
PPTVideoCode = pptCode,
|
PPTVideoCode = pptCode,
|
||||||
PPTVideoUrl = pptUrl,
|
PPTVideoUrl = pptUrl,
|
||||||
VideoType = s.CourseType
|
VideoType = s.CourseType,
|
||||||
|
CloudSchoolId = s.UserCenterCloudSchoolId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
await nodePackageInfoDB.InsertRangeAsync(nodePackages);
|
await nodePackageInfoDB.InsertRangeAsync(nodePackages);
|
||||||
|
|
|
||||||
|
|
@ -87,5 +87,11 @@ namespace VideoAnalysisCore.Model
|
||||||
/// <para>回调添加到Headers</para>
|
/// <para>回调添加到Headers</para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string HostIP { get; set; }
|
public string HostIP { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 视频所属云校ID
|
||||||
|
/// <para><see cref="UserCenter.Model.CloudSchool"/> 用户中心的云校id</para>
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsNullable = true)]
|
||||||
|
public long? CloudSchoolId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,5 +73,11 @@ namespace VideoAnalysisCore.Model
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsIgnore = true)]
|
[SugarColumn(IsIgnore = true)]
|
||||||
public virtual StageEnum? Stage { get; set; }
|
public virtual StageEnum? Stage { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 视频所属云校ID
|
||||||
|
/// <para><see cref="UserCenter.Model.CloudSchool"/> 用户中心的云校id</para>
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsNullable = true)]
|
||||||
|
public long? CloudSchoolId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,12 @@ namespace VideoAnalysisCore.Model
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsNullable = true)]
|
[SugarColumn(IsNullable = true)]
|
||||||
public string? Sections { get; set; }
|
public string? Sections { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 视频所属云校ID
|
||||||
|
/// <para><see cref="UserCenter.Model.CloudSchool"/> 用户中心的云校id</para>
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsNullable = true)]
|
||||||
|
public long? CloudSchoolId { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="7.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="1.10.32" />
|
<PackageReference Include="org.k2fsa.sherpa.onnx" Version="1.12.20" />
|
||||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.7" />
|
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.7" />
|
||||||
<PackageReference Include="SqlSugar.IOC" Version="2.0.0" />
|
<PackageReference Include="SqlSugar.IOC" Version="2.0.0" />
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.205" />
|
<PackageReference Include="SqlSugarCore" Version="5.1.4.205" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue