Make meeting lifecycle stateful

This commit is contained in:
2026-05-27 12:55:17 +02:00
parent d607b957bb
commit e85274829a
91 changed files with 4076 additions and 479 deletions
@@ -0,0 +1,12 @@
## Why
Azure Speech post-stream refinement can improve final segment quality while preserving the existing low-latency streaming transcription flow.
## What Changes
- Add an `AzureSpeech.PostProcessingOption` setting.
- Keep the default option unset while the live Azure backend uses `ConversationTranscriber`.
- Apply the configured option only for compatible Azure Speech SDK recognizer paths; skip it for `ConversationTranscriber` to preserve working live diarized transcription.
- Use a Speech resource region that supports post-stream refinement.
## Impact
- Affected specs: `meeting-transcription`
- Affected code: Azure Speech options, Azure streaming transcription provider, appsettings, Azure provider tests
@@ -0,0 +1,27 @@
## ADDED Requirements
### Requirement: Azure Speech post-stream refinement is configurable
Meeting Assistant SHALL allow the Azure Speech streaming transcription provider to configure the Speech SDK post-processing option.
When configured for a compatible Azure Speech SDK recognizer, Meeting Assistant SHALL set `SpeechServiceResponse_PostProcessingOption` on the Azure Speech SDK `SpeechConfig`.
The default application configuration SHALL keep `PostProcessingOption` empty while using live `ConversationTranscriber` and SHALL use a region that supports post-stream refinement for future compatible recognizer paths.
Meeting Assistant SHALL keep using the existing Azure live streaming transcription flow rather than switching to batch or offline processing.
When the Azure live streaming backend uses `ConversationTranscriber`, Meeting Assistant SHALL prefer working live diarized transcription over applying a post-processing option that is only documented for `SpeechRecognizer`.
#### Scenario: Azure Speech post-refinement is configured
- **WHEN** `AzureSpeech.PostProcessingOption` is `PostRefinement`
- **AND** the configured Azure Speech recognizer supports SDK post-processing
- **THEN** Meeting Assistant sets `SpeechServiceResponse_PostProcessingOption` to `PostRefinement` on the Azure Speech SDK configuration
#### Scenario: Azure live conversation transcription remains available
- **WHEN** `AzureSpeech.PostProcessingOption` is `PostRefinement`
- **AND** the Azure backend is using live `ConversationTranscriber`
- **THEN** Meeting Assistant skips the post-processing SDK property
- **AND** continues using live conversation transcription
#### Scenario: Azure Speech post-processing is unset
- **WHEN** `AzureSpeech.PostProcessingOption` is empty
- **THEN** Meeting Assistant does not set a post-processing option on the Azure Speech SDK configuration
@@ -0,0 +1,14 @@
## 1. Specification
- [x] 1.1 Define Azure Speech post-stream refinement configuration behavior.
## 2. Implementation
- [x] 2.1 Add configurable Azure Speech post-processing option.
- [x] 2.2 Apply the configured option only to compatible Azure Speech SDK recognizer paths and skip it for live `ConversationTranscriber`.
- [x] 2.3 Configure Azure Speech for a post-stream-refinement-supported region.
- [x] 2.4 Provision or reuse an Azure Speech resource and set the local key environment variable.
## 3. Validation
- [x] 3.1 Add provider tests for the post-processing option.
- [x] 3.2 Run focused provider tests.
- [x] 3.3 Run full test suite.
- [x] 3.4 Run OpenSpec validation.