From 374c582cd1a179ef38f30c726d13c53a755080fe 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, 18 Mar 2025 17:27:35 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=20sv=E8=AF=AD=E8=A8=80?=
=?UTF-8?q?=E8=BD=AC=E5=BD=95=E5=87=BD=E6=95=B0=E6=9C=80=E5=90=8E=E6=88=AA?=
=?UTF-8?q?=E6=96=AD=E6=BC=8F=E8=AF=9D=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AICore/SherpaOnnx/SenseVoice.cs | 22 +++++++++++--------
VideoAnalysisCore/Common/ExceptionFilter.cs | 9 +-------
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs b/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs
index de8f980..e76db03 100644
--- a/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs
+++ b/VideoAnalysisCore/AICore/SherpaOnnx/SenseVoice.cs
@@ -110,6 +110,10 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
}
+
+
+
+
///
/// 获取语音字幕
///
@@ -120,7 +124,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
var filePath = Path.Combine(task.LocalPath(), task + ".wav");
if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
throw new Exception("task 音频路径未找到");
- await TaskHandle(new WaveReader(filePath));
+ await TaskHandle(new WaveReader(filePath), task);
}
///
@@ -144,14 +148,14 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
for (int i = 0; i != numIter; ++i)
{
int start = i * windowSize;
- //float[] samples = new float[windowSize];
- //Array.Copy(reader.Samples, start, samples, 0, windowSize);
- //VAD.AcceptWaveform(samples);
+ float[] samples = new float[windowSize];
+ Array.Copy(reader.Samples, start, samples, 0, windowSize);
+ VAD.AcceptWaveform(samples);
- Memory samples = new float[windowSize];
- Memory sourceSpan = reader.Samples.AsMemory(start, windowSize);
- sourceSpan.CopyTo(samples);
- VAD.AcceptWaveform(samples.ToArray());
+ //Memory samples = new float[windowSize];
+ //Memory sourceSpan = reader.Samples.AsMemory(start, windowSize);
+ //sourceSpan.CopyTo(samples);
+ //VAD.AcceptWaveform(samples.ToArray());
//是否检测到语音
if (VAD.IsSpeechDetected())
@@ -161,9 +165,9 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
await VAD.ReadNext(res, totalSecond, task);
}
}
+ VAD.Flush();
while (!VAD.IsEmpty())
await VAD.ReadNext(res, totalSecond, task);
- VAD.Flush();
//如果携带任务ID
if (!string.IsNullOrEmpty(task))
{
diff --git a/VideoAnalysisCore/Common/ExceptionFilter.cs b/VideoAnalysisCore/Common/ExceptionFilter.cs
index 7a439ce..7850e42 100644
--- a/VideoAnalysisCore/Common/ExceptionFilter.cs
+++ b/VideoAnalysisCore/Common/ExceptionFilter.cs
@@ -14,19 +14,12 @@ namespace VideoAnalysisCore.Common
{
public class ExceptionFilter : IAsyncExceptionFilter
{
- readonly NavigationManager nm;
- public ExceptionFilter(NavigationManager nm)
+ public ExceptionFilter()
{
- this.nm = nm;
}
public async Task OnExceptionAsync(ExceptionContext context)
{
- if (context.Exception is InvalidOperationException)
- {
- nm.NavigateTo("/Login");
- }
- else
{
// 创建一个包含错误信息的对象
var errorObject = new