[Pipeline OpenSpec]:完成开源语音助手式重构规划,包含事件总线、TurnController和主说话人端点
This commit is contained in:
+26
@@ -1,5 +1,31 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Live assistant pipeline events
|
||||
The live runtime SHALL execute as a stage-based voice assistant pipeline with stable events for every externally observable stage.
|
||||
|
||||
#### Scenario: Successful live turn emits ordered events
|
||||
- **WHEN** a live turn completes successfully
|
||||
- **THEN** the event stream SHALL include wake listening, wake detected, acknowledgement, capture started, speech started, speech ended, STT started, final transcript, LLM started, TTS started, playback finished, and standby resumed in that order
|
||||
|
||||
#### Scenario: Terminal reporting consumes events
|
||||
- **WHEN** the terminal reporter prints user-facing live status
|
||||
- **THEN** it SHALL derive the status from pipeline events rather than duplicating stage logic
|
||||
|
||||
### Requirement: Primary speaker endpointing
|
||||
The live runtime SHALL support a per-turn primary speaker endpoint mode that ends the user utterance when the speaker who started the utterance is no longer present.
|
||||
|
||||
#### Scenario: Primary speaker disappears
|
||||
- **WHEN** the user starts speaking after wake and their temporary per-turn voice profile is established
|
||||
- **THEN** capture SHALL end after the configured primary speaker absence duration even if background noise or non-primary speech remains
|
||||
|
||||
#### Scenario: Temporary profile is insufficient
|
||||
- **WHEN** the live runtime cannot establish a reliable per-turn voice profile because speech is too short or too quiet
|
||||
- **THEN** capture SHALL fall back to configured VAD silence endpointing and SHALL NOT hang indefinitely
|
||||
|
||||
#### Scenario: No persistent voiceprint
|
||||
- **WHEN** the process exits
|
||||
- **THEN** no primary speaker profile SHALL be stored or reused across runs
|
||||
|
||||
### Requirement: Realtime transcript terminal output
|
||||
The live runtime SHALL display the recognized user utterance text in the terminal after STT succeeds and before the LLM request is sent.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user