using MeetingAssistant.MeetingNotes; using MeetingAssistant.Transcription; namespace MeetingAssistant.Recording; public static class RecordingSpeechRecognitionPipelineOptions { public static async Task BuildAsync( IRecordingDictationWordProvider dictationWordProvider, MeetingAssistantOptions runOptions, MeetingNote? meetingNote, CancellationToken cancellationToken) { var dictationWords = await dictationWordProvider.ReadOptionalWordsAsync(runOptions, cancellationToken); var attendeeCount = meetingNote?.Frontmatter.Attendees.Count(attendee => !string.IsNullOrWhiteSpace(attendee)) ?? 0; return attendeeCount > 1 ? new SpeechRecognitionPipelineOptions(attendeeCount, dictationWords) : new SpeechRecognitionPipelineOptions(DictationWords: dictationWords); } }