Public Access
32 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|