Files
2026-05-20 02:06:16 +02:00

32 lines
1.2 KiB
C#

namespace MeetingAssistant.Transcription;
public sealed class FunAsrSpeechRecognitionPipeline : StreamingSpeechRecognitionPipeline
{
private readonly IFunAsrBackendLifecycle backendLifecycle;
private readonly FunAsrTranscriptFinalizer transcriptFinalizer;
public FunAsrSpeechRecognitionPipeline(
FunAsrStreamingTranscriptionProvider transcriptionProvider,
IFunAsrBackendLifecycle backendLifecycle,
FunAsrTranscriptFinalizer transcriptFinalizer)
: base(transcriptionProvider)
{
this.backendLifecycle = backendLifecycle;
this.transcriptFinalizer = transcriptFinalizer;
}
public override Task WaitUntilReadyAsync(CancellationToken cancellationToken)
{
return backendLifecycle.EnsureStartedAsync(cancellationToken);
}
protected override Task<IReadOnlyList<TranscriptionSegment>> BuildFinishedTranscriptAsync(
string audioPath,
IReadOnlyList<TranscriptionSegment> liveSegments,
SpeechRecognitionPipelineOptions options,
CancellationToken cancellationToken)
{
return transcriptFinalizer.FinalizeAsync(audioPath, liveSegments, cancellationToken);
}
}