From a8ec291497569195c9586c9e85ac8133e5a44fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com> Date: Tue, 13 Jan 2026 18:16:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ioc=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VideoAnalysis/Program.cs | 4 ++-- VideoAnalysisCore/AICore/SherpaOnnx/FunASRNano.cs | 8 +++++--- VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs | 3 +++ .../Controllers/VideoTaskController.cs | 15 ++++++++++++++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/VideoAnalysis/Program.cs b/VideoAnalysis/Program.cs index f537f54..81a8022 100644 --- a/VideoAnalysis/Program.cs +++ b/VideoAnalysis/Program.cs @@ -38,11 +38,11 @@ namespace Learn.VideoAnalysis loggingBuilder.SetMinimumLevel(LogLevel.Warning); // 设置最小日志级别为 Warning }); + //绑定 appsetting 配置 + builder.Configuration.AddAppConfig(args); //初始化 插件 builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerExpand("AI视频分析"); - //绑定 appsetting 配置 - builder.Configuration.AddAppConfig(args); builder.Services.AddPermissionAuthentication(); builder.Services.AddSqlSugarExpand(); builder.Services.AddRedisExpand(); diff --git a/VideoAnalysisCore/AICore/SherpaOnnx/FunASRNano.cs b/VideoAnalysisCore/AICore/SherpaOnnx/FunASRNano.cs index 89d41da..5c97cf1 100644 --- a/VideoAnalysisCore/AICore/SherpaOnnx/FunASRNano.cs +++ b/VideoAnalysisCore/AICore/SherpaOnnx/FunASRNano.cs @@ -26,7 +26,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx /// public static void AddFunASRNanoExpand(this IServiceCollection services) { - services.AddSingleton(); + services.AddSingleton(); } } /// @@ -97,8 +97,9 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx public List RunTask(Stream s) { if (s is null) throw new Exception("闊抽璺緞 is null"); + if (OR is null) Init(); return serviceProvider.GetRequiredService() - .TaskHandle(new WaveReader(s), null, SoundHandle, SherpaVadVersion.silero_vad_v5); + .TaskHandle(new WaveReader(s), null, SoundHandle, SherpaVadVersion.ten_vad_324); } /// /// 鑾峰彇璇煶瀛楀箷 @@ -110,8 +111,9 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx var filePath = Path.Combine(task.LocalPath(), "task.wav"); if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath)) throw new Exception("task 闊抽璺緞鏈壘鍒"); + if (OR is null) Init(); serviceProvider.GetRequiredService() - .TaskHandle(new WaveReader(filePath), null, SoundHandle, SherpaVadVersion.silero_vad_v5); + .TaskHandle(new WaveReader(filePath), null, SoundHandle, SherpaVadVersion.ten_vad_324); return Task.CompletedTask; } diff --git a/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs b/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs index cbe1d0a..50663fa 100644 --- a/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs +++ b/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs @@ -99,7 +99,9 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx /// public List RunTask(Stream s) { + if (s is null) throw new Exception("闊抽璺緞 is null"); + if (OR is null) Init(); return serviceProvider.GetRequiredService() .TaskHandle(new WaveReader(s), null, SoundHandle, SherpaVadVersion.silero_vad_v5); } @@ -113,6 +115,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx var filePath = Path.Combine(task.LocalPath(), "task.wav"); if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath)) throw new Exception("task 闊抽璺緞鏈壘鍒"); + if (OR is null) Init(); serviceProvider.GetRequiredService() .TaskHandle(new WaveReader(filePath), null, SoundHandle, SherpaVadVersion.silero_vad_v5); diff --git a/VideoAnalysisCore/Controllers/VideoTaskController.cs b/VideoAnalysisCore/Controllers/VideoTaskController.cs index 614c208..12b37b7 100644 --- a/VideoAnalysisCore/Controllers/VideoTaskController.cs +++ b/VideoAnalysisCore/Controllers/VideoTaskController.cs @@ -37,10 +37,12 @@ namespace VideoAnalysisCore.Controllers readonly RedisManager redisManager; public readonly SenseVoice senseVoice; + public readonly FunASRNano funASRNano; + private readonly IMapper mp; public VideoTaskController(Repository baseService, RedisManager redisManager, Repository videoQuestionDB, - Repository videoQuestionKonwDB, Repository videoKonwPointDB, SenseVoice senseVoice, IMapper mp, Repository taskLogDB) : base(baseService) + Repository videoQuestionKonwDB, Repository videoKonwPointDB, SenseVoice senseVoice, IMapper mp, Repository taskLogDB, FunASRNano funASRNano) : base(baseService) { this.baseService = baseService; this.redisManager = redisManager; @@ -50,6 +52,7 @@ namespace VideoAnalysisCore.Controllers this.senseVoice = senseVoice; this.mp = mp; this.taskLogDB = taskLogDB; + this.funASRNano = funASRNano; } @@ -147,6 +150,16 @@ namespace VideoAnalysisCore.Controllers { using var s = file.OpenReadStream(); var res = senseVoice.RunTask(s); + s.Position = 0; + var res1 = funASRNano.RunTask(s); + + for (int i = 0; i < res.Count(); i++) + { + Console.WriteLine($"绗瑊res[i].Start}绉"); + Console.WriteLine($"ssv=> {res[i].Text}"); + Console.WriteLine($"fun=> {res1[i].Text}"); + Console.WriteLine(); + } return Ok(res); }