Add support for websockets 15.0
This commit is contained in:
@@ -24,6 +24,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- `torch` and `torchaudio` are no longer required for running Smart Turn
|
- `torch` and `torchaudio` are no longer required for running Smart Turn
|
||||||
locally. This avoids gigabytes of dependencies being installed.
|
locally. This avoids gigabytes of dependencies being installed.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Updated `websockets` dependency to support version 15.0. Removed deprecated
|
||||||
|
usage of `ConnectionClosed.code` and `ConnectionClosed.reason` attributes in
|
||||||
|
`AWSTranscribeSTTService` for compatibility.
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
- `PipelineTask` events `on_pipeline_stopped`, `on_pipeline_ended` and
|
- `PipelineTask` events `on_pipeline_stopped`, `on_pipeline_ended` and
|
||||||
|
|||||||
@@ -47,32 +47,32 @@ Website = "https://pipecat.ai"
|
|||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
aic = [ "aic-sdk~=1.0.1" ]
|
aic = [ "aic-sdk~=1.0.1" ]
|
||||||
anthropic = [ "anthropic~=0.49.0" ]
|
anthropic = [ "anthropic~=0.49.0" ]
|
||||||
assemblyai = [ "websockets>=13.1,<15.0" ]
|
assemblyai = [ "websockets>=13.1,<16.0" ]
|
||||||
asyncai = [ "websockets>=13.1,<15.0" ]
|
asyncai = [ "websockets>=13.1,<16.0" ]
|
||||||
aws = [ "aioboto3~=15.0.0", "websockets>=13.1,<15.0" ]
|
aws = [ "aioboto3~=15.0.0", "websockets>=13.1,<16.0" ]
|
||||||
aws-nova-sonic = [ "aws_sdk_bedrock_runtime~=0.0.2; python_version>='3.12'" ]
|
aws-nova-sonic = [ "aws_sdk_bedrock_runtime~=0.0.2; python_version>='3.12'" ]
|
||||||
azure = [ "azure-cognitiveservices-speech~=1.42.0"]
|
azure = [ "azure-cognitiveservices-speech~=1.42.0"]
|
||||||
cartesia = [ "cartesia~=2.0.3", "websockets>=13.1,<15.0" ]
|
cartesia = [ "cartesia~=2.0.3", "websockets>=13.1,<16.0" ]
|
||||||
cerebras = []
|
cerebras = []
|
||||||
deepseek = []
|
deepseek = []
|
||||||
daily = [ "daily-python~=0.19.9" ]
|
daily = [ "daily-python~=0.19.9" ]
|
||||||
deepgram = [ "deepgram-sdk~=4.7.0" ]
|
deepgram = [ "deepgram-sdk~=4.7.0" ]
|
||||||
elevenlabs = [ "websockets>=13.1,<15.0" ]
|
elevenlabs = [ "websockets>=13.1,<16.0" ]
|
||||||
fal = [ "fal-client~=0.5.9" ]
|
fal = [ "fal-client~=0.5.9" ]
|
||||||
fireworks = []
|
fireworks = []
|
||||||
fish = [ "ormsgpack~=1.7.0", "websockets>=13.1,<15.0" ]
|
fish = [ "ormsgpack~=1.7.0", "websockets>=13.1,<16.0" ]
|
||||||
gladia = [ "websockets>=13.1,<15.0" ]
|
gladia = [ "websockets>=13.1,<16.0" ]
|
||||||
google = [ "google-cloud-speech~=2.32.0", "google-cloud-texttospeech~=2.26.0", "google-genai~=1.24.0", "websockets>=13.1,<15.0" ]
|
google = [ "google-cloud-speech~=2.32.0", "google-cloud-texttospeech~=2.26.0", "google-genai~=1.24.0", "websockets>=13.1,<16.0" ]
|
||||||
grok = []
|
grok = []
|
||||||
groq = [ "groq~=0.23.0" ]
|
groq = [ "groq~=0.23.0" ]
|
||||||
gstreamer = [ "pygobject~=3.50.0" ]
|
gstreamer = [ "pygobject~=3.50.0" ]
|
||||||
heygen = [ "livekit>=0.22.0", "websockets>=13.1,<15.0" ]
|
heygen = [ "livekit>=0.22.0", "websockets>=13.1,<16.0" ]
|
||||||
inworld = []
|
inworld = []
|
||||||
krisp = [ "pipecat-ai-krisp~=0.4.0" ]
|
krisp = [ "pipecat-ai-krisp~=0.4.0" ]
|
||||||
koala = [ "pvkoala~=2.0.3" ]
|
koala = [ "pvkoala~=2.0.3" ]
|
||||||
langchain = [ "langchain~=0.3.20", "langchain-community~=0.3.20", "langchain-openai~=0.3.9" ]
|
langchain = [ "langchain~=0.3.20", "langchain-community~=0.3.20", "langchain-openai~=0.3.9" ]
|
||||||
livekit = [ "livekit~=0.22.0", "livekit-api~=0.8.2", "tenacity>=8.2.3,<10.0.0" ]
|
livekit = [ "livekit~=0.22.0", "livekit-api~=0.8.2", "tenacity>=8.2.3,<10.0.0" ]
|
||||||
lmnt = [ "websockets>=13.1,<15.0" ]
|
lmnt = [ "websockets>=13.1,<16.0" ]
|
||||||
local = [ "pyaudio~=0.2.14" ]
|
local = [ "pyaudio~=0.2.14" ]
|
||||||
mcp = [ "mcp[cli]~=1.9.4" ]
|
mcp = [ "mcp[cli]~=1.9.4" ]
|
||||||
mem0 = [ "mem0ai~=0.1.94" ]
|
mem0 = [ "mem0ai~=0.1.94" ]
|
||||||
@@ -80,26 +80,26 @@ mistral = []
|
|||||||
mlx-whisper = [ "mlx-whisper~=0.4.2" ]
|
mlx-whisper = [ "mlx-whisper~=0.4.2" ]
|
||||||
moondream = [ "accelerate~=1.10.0", "einops~=0.8.0", "pyvips[binary]~=3.0.0", "timm~=1.0.13", "transformers>=4.48.0" ]
|
moondream = [ "accelerate~=1.10.0", "einops~=0.8.0", "pyvips[binary]~=3.0.0", "timm~=1.0.13", "transformers>=4.48.0" ]
|
||||||
nim = []
|
nim = []
|
||||||
neuphonic = [ "websockets>=13.1,<15.0" ]
|
neuphonic = [ "websockets>=13.1,<16.0" ]
|
||||||
noisereduce = [ "noisereduce~=3.0.3" ]
|
noisereduce = [ "noisereduce~=3.0.3" ]
|
||||||
openai = [ "websockets>=13.1,<15.0" ]
|
openai = [ "websockets>=13.1,<16.0" ]
|
||||||
openpipe = [ "openpipe~=4.50.0" ]
|
openpipe = [ "openpipe~=4.50.0" ]
|
||||||
openrouter = []
|
openrouter = []
|
||||||
perplexity = []
|
perplexity = []
|
||||||
playht = [ "websockets>=13.1,<15.0" ]
|
playht = [ "websockets>=13.1,<16.0" ]
|
||||||
qwen = []
|
qwen = []
|
||||||
rime = [ "websockets>=13.1,<15.0" ]
|
rime = [ "websockets>=13.1,<16.0" ]
|
||||||
riva = [ "nvidia-riva-client~=2.21.1" ]
|
riva = [ "nvidia-riva-client~=2.21.1" ]
|
||||||
runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.117.0", "pipecat-ai-small-webrtc-prebuilt>=1.0.0"]
|
runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.117.0", "pipecat-ai-small-webrtc-prebuilt>=1.0.0"]
|
||||||
sambanova = []
|
sambanova = []
|
||||||
sarvam = [ "websockets>=13.1,<15.0" ]
|
sarvam = [ "websockets>=13.1,<16.0" ]
|
||||||
sentry = [ "sentry-sdk~=2.23.1" ]
|
sentry = [ "sentry-sdk~=2.23.1" ]
|
||||||
local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
|
local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
|
||||||
local-smart-turn-v3 = [ "transformers", "onnxruntime>=1.20.1, <2" ]
|
local-smart-turn-v3 = [ "transformers", "onnxruntime>=1.20.1, <2" ]
|
||||||
remote-smart-turn = []
|
remote-smart-turn = []
|
||||||
silero = [ "onnxruntime>=1.20.1, <2" ]
|
silero = [ "onnxruntime>=1.20.1, <2" ]
|
||||||
simli = [ "simli-ai~=0.1.10"]
|
simli = [ "simli-ai~=0.1.10"]
|
||||||
soniox = [ "websockets>=13.1,<15.0" ]
|
soniox = [ "websockets>=13.1,<16.0" ]
|
||||||
soundfile = [ "soundfile~=0.13.0" ]
|
soundfile = [ "soundfile~=0.13.0" ]
|
||||||
speechmatics = [ "speechmatics-rt>=0.4.0" ]
|
speechmatics = [ "speechmatics-rt>=0.4.0" ]
|
||||||
tavus=[]
|
tavus=[]
|
||||||
@@ -107,7 +107,7 @@ together = []
|
|||||||
tracing = [ "opentelemetry-sdk>=1.33.0", "opentelemetry-api>=1.33.0", "opentelemetry-instrumentation>=0.54b0" ]
|
tracing = [ "opentelemetry-sdk>=1.33.0", "opentelemetry-api>=1.33.0", "opentelemetry-instrumentation>=0.54b0" ]
|
||||||
ultravox = [ "transformers>=4.48.0", "vllm>=0.9.0" ]
|
ultravox = [ "transformers>=4.48.0", "vllm>=0.9.0" ]
|
||||||
webrtc = [ "aiortc~=1.11.0", "opencv-python~=4.11.0.86" ]
|
webrtc = [ "aiortc~=1.11.0", "opencv-python~=4.11.0.86" ]
|
||||||
websocket = [ "websockets>=13.1,<15.0", "fastapi>=0.115.6,<0.117.0" ]
|
websocket = [ "websockets>=13.1,<16.0", "fastapi>=0.115.6,<0.117.0" ]
|
||||||
whisper = [ "faster-whisper~=1.1.1" ]
|
whisper = [ "faster-whisper~=1.1.1" ]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
|
|||||||
@@ -532,9 +532,7 @@ class AWSTranscribeSTTService(STTService):
|
|||||||
logger.debug(f"{self} Other message type received: {headers}")
|
logger.debug(f"{self} Other message type received: {headers}")
|
||||||
logger.debug(f"{self} Payload: {payload}")
|
logger.debug(f"{self} Payload: {payload}")
|
||||||
except websockets.exceptions.ConnectionClosed as e:
|
except websockets.exceptions.ConnectionClosed as e:
|
||||||
logger.error(
|
logger.error(f"{self} WebSocket connection closed in receive loop: {e}")
|
||||||
f"{self} WebSocket connection closed in receive loop with code {e.code}: {e.reason}"
|
|
||||||
)
|
|
||||||
break
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"{self} Unexpected error in receive loop: {e}")
|
logger.error(f"{self} Unexpected error in receive loop: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user