Files
meeting-assistant/MeetingAssistant/Transcription/ISpeechRecognitionPipeline.cs
T
2026-05-20 02:06:16 +02:00

32 lines
982 B
C#

using MeetingAssistant.Recording;
namespace MeetingAssistant.Transcription;
public interface ISpeechRecognitionPipeline : IAsyncDisposable
{
Task InitializeAsync(CancellationToken cancellationToken);
Task WaitUntilReadyAsync(CancellationToken cancellationToken);
ValueTask WriteAsync(AudioChunk chunk, CancellationToken cancellationToken);
Task CompleteAsync(CancellationToken cancellationToken);
IAsyncEnumerable<TranscriptionSegment> ReadLiveTranscriptAsync(CancellationToken cancellationToken);
Task<IReadOnlyList<TranscriptionSegment>> ReadFinishedTranscriptAsync(
string audioPath,
SpeechRecognitionPipelineOptions options,
CancellationToken cancellationToken);
}
public interface ISpeechRecognitionPipelineFactory
{
ISpeechRecognitionPipeline Create();
}
public sealed record SpeechRecognitionPipelineOptions(int? NumSpeakers = null)
{
public static SpeechRecognitionPipelineOptions Default { get; } = new();
}