All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Introduced a new class to enable custom configuration of audio playback settings, offering greater flexibility for fine-tuning audio playback.
- The client now buffers audio to ensure smoother playback, especially in challenging network conditions.
- Resolved an issue with reading piped audio from stdin.
- Client-side function calling example
- Improved audio playback in examples
- Added instructions on how to generate an API KEY and how to install pyaudio
- Set default URL when running from CLI
tools
parameter: Introduced in theclient.run()
function to enable custom tool functionality.ToolFunctionParam
class: Added for enhanced type-checking when building client functions.- New message types:
ToolInvoke
andToolResult
messages are now supported for handling function calling.
- StartConversation message: Updated to include the
tools
parameter.
- Added the option to change the assistant from CLI
- Added the option to load conversation_config from a config file
- Added client handling of unexpected messages from the server
- Allow versions of websockets from
10.0
up to and including13.1
to mitigate extra_headers compatibility issue with websockets14.0
- Improved documentation for Interaction class
ResponseStarted
: Indicates the start of TTS audio streaming from the server. The message contains the textual content of the utterance to be spoken.ResponseInterrupted
: Indicates an interruption in the TTS audio stream from the server. The message contains the textual content up to the point where the utterance was stopped.ResponseCompleted
: Indicates the completion of TTS audio transmission from the server. The message includes the textual content of the utterance just spoken.ConversationEnding
: Indicates the session will continue in one-sided mode during TTS playback of the final words.AddAudio
: Implicit name for all inbound binary messages. The client confirms receipt by sending anServerMessageType.AudioReceived
message.AudioReceived
: Response toServerMessageType.AddAudio
, indicating that audio has been added successfully.- Deprecation warning for
audio
(replaced by AddAudio) andprompt
(replaced by Response*) messages
- Unused
EndOfTranscript
server message
- PyAudio class is instantiated only when the client is started directly from the CLI.
- Simplified microphone example
- Choppy audio playback on some systems using Python 3.12+
- Latency issues on some systems using Python 3.12+
- Improved handling of the AudioEnded which caused the client to abruptly close the connection. The client now waits up to 5 seconds for a ConversationEnded message from the server before closing the connection.
- Do not generate JWT when connecting to a local Flow server.
TranscriptionError
is nowConversationError
- CLI usage example from README using
-
which caused anunrecognized arguments
error. - Stream from microphone example using ssl_context=None
EndOfTranscriptException
from exceptions
- Add speechmatics-flow client