Skip to content

v0.7.0

Compare
Choose a tag to compare
@aconchillo aconchillo released this 01 Mar 00:25
· 59 commits to main since this release

Added

  • Added initial support for low-level Voice Activity Detection (VAD).
vad = Daily.create_native_vad(1000, 16000, 1)
confidence = vad.analyze_frames(audio_frames)
  • Added includeRawResponse field to TranscriptionSettings. If true, all incoming TranscriptionMessage will include a new rawResponse field with Deepgram's raw data.

  • Added new CallClient.release() function to allow freeing resources even in the event of EventHandler circular dependencies. It is common to have the following code:

class MyClient(EventHandler):

  def __init__(self):
    self.call_client=CallClient(event_handler=self)

  ...

If MyClient is a single application there shouldn't be any issues with freeing resources when the application ends. However, if we have an application that wants to create and release multiple MyClient instances the previous approach won't work with Python's garbage collection since there's a circular dependency. To solve this, we can now do:

class MyClient(EventHandler):

  def __init__(self):
    self.call_client=CallClient(event_handler=self)

  def leave(self):
    self.call_client.leave()
    self.call_client.release()

  ...

The new CallClient.release() function also blocks until all previous asynchronous operations have completed, so it's another convenient way to know, for example, when CallClient.leave() finishes.

Changed

  • ⚠️ Breaking change ⚠️: Completion callbacks now receive only the necessary arguments. For example, before CallClient.leave(completion=...) completion callback would receive (None, Error | None) arguments when it should only receive (Error | None).

    This is the list of functions with completion callbacks that have been affected:
    CallClient.leave(), CallClient.update_remote_participants(), CallClient.eject_remote_participants(), CallClient.update_permissions(), CallClient.start_recording(), CallClient.stop_recording(), CallClient.update_recording(), CallClient.start_transcription(), CallClient.stop_transcription(), CallClient.start_dialout(), CallClient.stop_dialout(), CallClient.send_app_message(), CallClient.send_prebuilt_chat_message().

    If you use any of the completion callbacks from one of the functions listed above, you simply need to remove the first argument from your callable.

Other

  • Updated demos to use the new CallClient.release() function.