feat: add transcription pause controls

This commit is contained in:
2026-09-02 12:22:11 +02:00
parent 714da456df
commit 70ffaa7357
18 changed files with 1927 additions and 94 deletions
@@ -0,0 +1,28 @@
## ADDED Requirements
### Requirement: Streaming recognition sessions survive intentional transcription pauses
Meeting Assistant SHALL preserve the active streaming speech-recognition pipeline and transcript session while transcription is intentionally paused.
For every mixed audio chunk captured while paused, Meeting Assistant SHALL discard the captured sample values and SHALL send an equal-duration PCM silence chunk to the temporary recording, live speaker audio buffer, and configured speech-recognition pipeline.
Meeting Assistant SHALL NOT clear run-local speaker mappings or previously collected speaker samples when transcription is paused or unpaused.
When Azure Speech is the configured provider, Meeting Assistant SHALL keep the same active `ConversationTranscriber` operation and push audio stream across the pause rather than stopping and recreating the Azure recognition session.
#### Scenario: Paused audio is replaced with silence
- **GIVEN** an active meeting transcription is paused
- **WHEN** the audio source captures a non-silent mixed audio chunk
- **THEN** the temporary recording and speech-recognition pipeline receive an equal-length silent chunk
- **AND** neither receives the captured sample values
#### Scenario: Azure session remains active across pause
- **GIVEN** Azure Speech is transcribing an active meeting with speaker attribution
- **WHEN** transcription is paused and later unpaused
- **THEN** Meeting Assistant keeps the same conversation transcriber and push stream active
- **AND** preserves run-local speaker mappings and collected speaker samples
- **AND** newly captured audio after unpause continues through that session
#### Scenario: Buffered pre-pause result is retained
- **GIVEN** the transcription backend accepted audio before transcription was paused
- **WHEN** the corresponding transcript result arrives after the pause begins
- **THEN** Meeting Assistant writes that transcript result to the same meeting transcript