services: fixed DailyTransport output camera and audio
This commit is contained in:
@@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed an issue with `DailyInputTransport` and `DailyOutputTransport` that
|
||||||
|
could cause some threads to not start properly.
|
||||||
|
|
||||||
- Fixed `STTService`. Add `max_silence_secs` and `max_buffer_secs` to handle
|
- Fixed `STTService`. Add `max_silence_secs` and `max_buffer_secs` to handle
|
||||||
better what's being passed to the STT service. Also add exponential smoothing
|
better what's being passed to the STT service. Also add exponential smoothing
|
||||||
to the RMS.
|
to the RMS.
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ class DailySession(EventHandler):
|
|||||||
sample_rate=self._params.audio_in_sample_rate,
|
sample_rate=self._params.audio_in_sample_rate,
|
||||||
num_channels=self._params.audio_in_channels)
|
num_channels=self._params.audio_in_channels)
|
||||||
|
|
||||||
@ property
|
@property
|
||||||
def participant_id(self) -> str:
|
def participant_id(self) -> str:
|
||||||
return self._participant_id
|
return self._participant_id
|
||||||
|
|
||||||
@@ -416,23 +416,18 @@ class DailyInputTransport(BaseInputTransport):
|
|||||||
self._camera_in_thread = threading.Thread(target=self._camera_in_thread_handler)
|
self._camera_in_thread = threading.Thread(target=self._camera_in_thread_handler)
|
||||||
|
|
||||||
async def start(self):
|
async def start(self):
|
||||||
if self._running:
|
await super().start()
|
||||||
return
|
|
||||||
|
|
||||||
self._camera_in_thread.start()
|
self._camera_in_thread.start()
|
||||||
await self._session.join()
|
await self._session.join()
|
||||||
await super().start()
|
|
||||||
|
|
||||||
async def stop(self):
|
async def stop(self):
|
||||||
await self._session.leave()
|
|
||||||
await super().stop()
|
await super().stop()
|
||||||
|
await self._session.leave()
|
||||||
|
|
||||||
async def cleanup(self):
|
async def cleanup(self):
|
||||||
self._camera_in_thread.join()
|
|
||||||
|
|
||||||
await self._session.cleanup()
|
|
||||||
|
|
||||||
await super().cleanup()
|
await super().cleanup()
|
||||||
|
self._camera_in_thread.join()
|
||||||
|
await self._session.cleanup()
|
||||||
|
|
||||||
def vad_analyze(self, audio_frames: bytes) -> VADState:
|
def vad_analyze(self, audio_frames: bytes) -> VADState:
|
||||||
return self._session.vad_analyze(audio_frames)
|
return self._session.vad_analyze(audio_frames)
|
||||||
@@ -523,19 +518,16 @@ class DailyOutputTransport(BaseOutputTransport):
|
|||||||
self._session = session
|
self._session = session
|
||||||
|
|
||||||
async def start(self):
|
async def start(self):
|
||||||
if self._running:
|
|
||||||
return
|
|
||||||
|
|
||||||
await self._session.join()
|
|
||||||
await super().start()
|
await super().start()
|
||||||
|
await self._session.join()
|
||||||
|
|
||||||
async def stop(self):
|
async def stop(self):
|
||||||
await self._session.leave()
|
|
||||||
await super().stop()
|
await super().stop()
|
||||||
|
await self._session.leave()
|
||||||
|
|
||||||
async def cleanup(self):
|
async def cleanup(self):
|
||||||
await self._session.cleanup()
|
|
||||||
await super().cleanup()
|
await super().cleanup()
|
||||||
|
await self._session.cleanup()
|
||||||
|
|
||||||
def write_raw_audio_frames(self, frames: bytes):
|
def write_raw_audio_frames(self, frames: bytes):
|
||||||
self._session.write_raw_audio_frames(frames)
|
self._session.write_raw_audio_frames(frames)
|
||||||
|
|||||||
Reference in New Issue
Block a user