finalize on DeepgramSTTService
This commit is contained in:
@@ -65,6 +65,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
`src/pipecat/services/gemini_multimodal_live/gemini.py` to support different
|
||||
modalities.
|
||||
|
||||
- Changed `DeepgramSTTService` to send `finalize` event whenever VAD detects
|
||||
`UserStoppedSpeakingFrame`. This helps in faster transcriptions and clearing
|
||||
the `Deepgram` audio buffer.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed an issue where websocket based TTS services could incorrectly terminate
|
||||
|
||||
@@ -20,7 +20,9 @@ from pipecat.frames.frames import (
|
||||
TTSAudioRawFrame,
|
||||
TTSStartedFrame,
|
||||
TTSStoppedFrame,
|
||||
UserStoppedSpeakingFrame,
|
||||
)
|
||||
from pipecat.processors.frame_processor import FrameDirection
|
||||
from pipecat.services.ai_services import STTService, TTSService
|
||||
from pipecat.transcriptions.language import Language
|
||||
from pipecat.utils.time import time_now_iso8601
|
||||
@@ -237,3 +239,11 @@ class DeepgramSTTService(STTService):
|
||||
await self.push_frame(
|
||||
InterimTranscriptionFrame(transcript, "", time_now_iso8601(), language)
|
||||
)
|
||||
|
||||
async def process_frame(self, frame: Frame, direction: FrameDirection):
|
||||
await super().process_frame(frame, direction)
|
||||
|
||||
if isinstance(frame, UserStoppedSpeakingFrame):
|
||||
# https://developers.deepgram.com/docs/finalize
|
||||
await self._connection.finalize()
|
||||
logger.debug(f"Triggering finalize event on: {frame.name=}, {direction=}")
|
||||
|
||||
Reference in New Issue
Block a user