transports(base_input): handle filter contorl frames
This commit is contained in:
@@ -14,6 +14,7 @@ from pipecat.frames.frames import (
|
|||||||
BotInterruptionFrame,
|
BotInterruptionFrame,
|
||||||
CancelFrame,
|
CancelFrame,
|
||||||
EndFrame,
|
EndFrame,
|
||||||
|
FilterUpdateSettingsFrame,
|
||||||
Frame,
|
Frame,
|
||||||
InputAudioRawFrame,
|
InputAudioRawFrame,
|
||||||
StartFrame,
|
StartFrame,
|
||||||
@@ -106,6 +107,8 @@ class BaseInputTransport(FrameProcessor):
|
|||||||
vad_analyzer = self.vad_analyzer()
|
vad_analyzer = self.vad_analyzer()
|
||||||
if vad_analyzer:
|
if vad_analyzer:
|
||||||
vad_analyzer.set_params(frame.params)
|
vad_analyzer.set_params(frame.params)
|
||||||
|
elif isinstance(frame, FilterUpdateSettingsFrame) and self._params.audio_in_filter:
|
||||||
|
await self._params.audio_in_filter.process_frame(frame)
|
||||||
# Other frames
|
# Other frames
|
||||||
else:
|
else:
|
||||||
await self.push_frame(frame, direction)
|
await self.push_frame(frame, direction)
|
||||||
@@ -173,14 +176,7 @@ class BaseInputTransport(FrameProcessor):
|
|||||||
|
|
||||||
# If an audio filter is available, run it before VAD.
|
# If an audio filter is available, run it before VAD.
|
||||||
if self._params.audio_in_filter:
|
if self._params.audio_in_filter:
|
||||||
audio = await self._params.audio_in_filter.filter(
|
frame.audio = await self._params.audio_in_filter.filter(frame.audio)
|
||||||
frame.audio, frame.sample_rate, frame.num_channels
|
|
||||||
)
|
|
||||||
frame = InputAudioRawFrame(
|
|
||||||
audio=audio,
|
|
||||||
sample_rate=frame.sample_rate,
|
|
||||||
num_channels=frame.num_channels,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check VAD and push event if necessary. We just care about
|
# Check VAD and push event if necessary. We just care about
|
||||||
# changes from QUIET to SPEAKING and vice versa.
|
# changes from QUIET to SPEAKING and vice versa.
|
||||||
|
|||||||
Reference in New Issue
Block a user