Public Access
Add meeting assistant speech and summary automation
This commit is contained in:
@@ -9,6 +9,7 @@ public abstract class StreamingSpeechRecognitionPipeline : ISpeechRecognitionPip
|
||||
private readonly Channel<AudioChunk> audio = Channel.CreateUnbounded<AudioChunk>();
|
||||
private readonly Channel<TranscriptionSegment> liveTranscript = Channel.CreateUnbounded<TranscriptionSegment>();
|
||||
private readonly List<TranscriptionSegment> liveSegments = [];
|
||||
private SpeechRecognitionPipelineOptions options = SpeechRecognitionPipelineOptions.Default;
|
||||
private Task? transcriptionTask;
|
||||
private bool initialized;
|
||||
|
||||
@@ -18,6 +19,13 @@ public abstract class StreamingSpeechRecognitionPipeline : ISpeechRecognitionPip
|
||||
}
|
||||
|
||||
public virtual Task InitializeAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return InitializeAsync(SpeechRecognitionPipelineOptions.Default, cancellationToken);
|
||||
}
|
||||
|
||||
public virtual Task InitializeAsync(
|
||||
SpeechRecognitionPipelineOptions options,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
if (initialized)
|
||||
{
|
||||
@@ -25,6 +33,7 @@ public abstract class StreamingSpeechRecognitionPipeline : ISpeechRecognitionPip
|
||||
}
|
||||
|
||||
initialized = true;
|
||||
this.options = options;
|
||||
transcriptionTask = Task.Run(() => TranscribeAsync(cancellationToken), CancellationToken.None);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
@@ -90,6 +99,7 @@ public abstract class StreamingSpeechRecognitionPipeline : ISpeechRecognitionPip
|
||||
{
|
||||
await foreach (var segment in transcriptionProvider.TranscribeAsync(
|
||||
audio.Reader.ReadAllAsync(cancellationToken),
|
||||
options,
|
||||
cancellationToken))
|
||||
{
|
||||
liveSegments.Add(segment);
|
||||
|
||||
Reference in New Issue
Block a user