Releases: daily-co/daily-python
v0.6.0
Added
-
Added
punctuate
andendpointing
fields toTranscriptionSettings
. -
Added dialout support with
CallClient.start_dialout()
andCallClient.stop_dialout()
. -
Added completion callbacks to
VirtualMicrophone.write_frames()
andVirtualSpeaker.read_frames()
. This change makes virtual devices completely asynchronous if they are created withnon_blocking
set toTrue
.
Changed
- Renamed
session_id
field toparticipantId
inTranscriptionMessage
.
Removed
- Removed
is_final
,user_id
anduser_name
fields fromTranscriptionMessage
.
Fixed
-
Room deletion messages from the server are now properly handled.
-
CallClient.send_app_message(None)
now properly triggers aValueError
exception. -
If an invalid participant ID is passed to
CallClient.send_app_message()
it will now trigger aValueError
exception. -
Fixed an issue that would cause audio crackling and popping when using non-blocking devices.
-
Fixed support for different audio sample rates and number of channels, other than 16000 and 1 channel.
-
Don't quote the participant ID when passing the string to video/audio renderer callbacks.
-
Fixed a potential crash on shutdown when using a virtual camera device.
-
Emit
transcription-started
event if transcription is already started when joining the room.
Other
- Added GStreamer media player demo.
v0.5.4
Improvements and fixes
- Fixed another issue that could cause
CallClient.join()
to fail if another Daily web client was also joining at the same time.
v0.5.3
Improvements and fixes
- Fixed an issue that could cause
CallClient.join()
to fail if another Daily web client was also joining at the same time.
v0.5.2
Improvements and fixes
- Disabled echo cancellation, noise suppression and auto gain control by default to match the previous library behavior.
v0.5.1
Improvements and fixes
- Fixed a crash when passing audio frames to
VirtualMicrophone.write_frames()
that require padding (i.e. non-multiple of 10ms worth of audio frames).
v0.5.0
New features
- Support for non-blocking virtual audio devices. This allows integration with hardware devices (e.g. via PyAudio).
- Echo cancellation, noise suppression and auto gain control can now be enabled for virtual microphones via custom constraints.
- It is now possible to pass additional Deepgram settings to
start_transcription()
using the newextra
field. - New demos to show how to integrate with PyAudio, how to send images and other improvements in existing demos.
Improvements and fixes
- Fixed an issue on user leave (manual or by the server) that would prevent the user to rejoin.
API changes
- Transcription defaults have been removed in favor of Deepgram's defaults. This allows to simply specify
{"model": "nova-2"}
. - Transcription
redact
can now also be a list of strings as supported by Deepgram (e.g.["pci"]
).
v0.4.0
New features
- Added support for capturing individual participant audio tracks.
- Added support for ejecting participants.
- Support python >= 3.7 and, on Linux, glibc >= 2.28.
Improvements and fixes
- Improved general video renderer performance.
- Improved media subscriptions stability and performance.
- Fixed a deadlock that would not allow receiving multiple simultaneous video renderers.
- Fixed a deadlock when a screen share was stopped.
- Fixed an issue where setting the user name could not be reflected automatically when requesting participants list.
- Fixed an issue that could cause joins/reconnects to not complete successfully.
- Fixed a sporadic crash that could occur when handling media streams.
- Added Qt demo (similar to the existing Gtk demo).
- Qt and Gtk demos can now save the selected participant audio into a WAV file and can also render screen share.
v0.3.1
Improvements and fixes
- Fixed an issue that could cause
daily-python
clients to join a meeting session in a different region. - Fixed a dead-lock that could occur when a
CallClient
is destroyed.
v0.3.0
New features
- Support for sending chat messages to Daily Prebuilt (
CallClient.send_prebuilt_chat_message()
). - Added Python type hints (helpful for editor completions).
- Support for Python 3.8.
Improvements and fixes
- Improved response time of
CallClient
getter functions. - Improved low-latency performace of virtual audio devices.
- Fixed potential crash after
CallClient.leave()
. - Improved internal safeness of participant video renderers.
- Fixed a
VirtualMicrophoneDevice
memory leak. - Properly trigger a transcription error event if transcription can't start.
- Demos have been updated to show more real live code.
API changes
- Removed
detect_language
fromTranscriptionSettings
. EventHandler.on_transcription_stopped
can now tell if transcription was stopped by a user or because of an error occurred.
v0.2.0
New features
- Support for start/stop recordings.
- Support for start/stop transcriptions and receive transcriptions messages.
Improvements and fixes
- Fixed an issue that was causing sporadic audio gaps on macOS and in certain OS task scheduling scenarios.
- Network re-connections have been improved.
API changes
VirtualSpeakerDevice.read_frames()
has been improved and doesn't require the user to add sleeps. Therefore, it is now possible to read, for example, 10 seconds of audio in a single call. Since the timings are now controlled internally, this minimizes any potential audio issues.
The following old code:
SAMPLE_RATE = 16000
READ_INTERVAL = 0.01
FRAMES_TO_READ = int(SAMPLE_RATE * READ_INTERVAL)
SECONDS_TO_READ = 10.0
for _ in range (int(SECONDS_TO_READ / READ_INTERVAL)):
buffer = speaker.read_frames(FRAMES_TO_READ)
time.sleep(READ_INTERVAL)
can be replaced with:
SECONDS_TO_READ = 10
FRAMES_TO_READ = SAMPLE_RATE * SECONDS_TO_READ
buffer = speaker.read_frames(FRAMES_TO_READ)