Skip to content

Commit e054c33

Browse files
authored
upgrades websockets and cartesia to latest versions (vocodedev#729)
* upgrades websockets and cartesia to latest versions * fix lint * fix typecheck
1 parent fb8e079 commit e054c33

8 files changed

Lines changed: 377 additions & 281 deletions

File tree

playground/streaming/agent/websocket_user_implemented_agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import asyncio
22

3-
from websockets.server import serve
3+
from websockets.asyncio.server import serve
44

55
from vocode.streaming.models.websocket_agent import (
66
WebSocketAgentMessage,

poetry.lock

Lines changed: 358 additions & 264 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ sentry-sdk = { extras = ["fastapi"], version = "^2.3.1" }
3434
sounddevice = "^0.4.7"
3535
tiktoken = "^0.7.0"
3636
uvicorn = "^0.30.0"
37-
websockets = "^12.0"
37+
websockets = "^14.1"
3838
nltk = "^3.8.1"
3939

4040
# LLM Providers
@@ -43,7 +43,7 @@ groq = { version = "^0.9.0", optional = true }
4343
# Synthesizers
4444
google-cloud-texttospeech = { version = "^2.16.3", optional = true }
4545
pvkoala = { version = "^2.0.1", optional = true }
46-
cartesia = { version = "^1.0.10", optional = true }
46+
cartesia = {version = "^1.1.0", optional = true}
4747

4848
# Transcribers
4949
google-cloud-speech = { version = "^2.26.0", optional = true }

vocode/streaming/agent/websocket_user_implemented_agent.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import websockets
55
from loguru import logger
6-
from websockets.client import WebSocketClientProtocol, connect
6+
from websockets.asyncio.client import ClientConnection
77

88
from vocode.streaming.agent.base_agent import (
99
AgentInput,
@@ -73,10 +73,10 @@ async def _process(self) -> None:
7373
socket_url = self.get_agent_config().respond.url
7474
logger.info("Connecting to web socket agent %s", socket_url)
7575

76-
async with connect(socket_url) as ws:
76+
async with websockets.connect(socket_url) as ws:
7777

7878
async def sender(
79-
ws: WebSocketClientProtocol,
79+
ws: ClientConnection,
8080
) -> None: # sends audio to websocket
8181
while not self.has_ended:
8282
logger.info("Waiting for data from agent request queue")
@@ -109,7 +109,7 @@ async def sender(
109109

110110
logger.debug("Terminating web socket agent sender")
111111

112-
async def receiver(ws: WebSocketClientProtocol) -> None:
112+
async def receiver(ws: ClientConnection) -> None:
113113
while not self.has_ended:
114114
try:
115115
msg = await ws.recv()

vocode/streaming/synthesizer/eleven_labs_websocket_synthesizer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ async def establish_websocket_listeners(self, chunk_size):
176176

177177
async with websockets.connect(
178178
url,
179-
extra_headers=headers,
179+
additional_headers=headers,
180180
) as ws:
181181

182182
async def write() -> None:

vocode/streaming/transcriber/assembly_ai_transcriber.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ async def process(self):
9494

9595
async with websockets.connect(
9696
URL,
97-
extra_headers=(("Authorization", self.api_key),),
97+
additional_headers=(("Authorization", self.api_key),),
9898
ping_interval=5,
9999
ping_timeout=20,
100100
) as ws:

vocode/streaming/transcriber/deepgram_transcriber.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import websockets
99
from loguru import logger
1010
from pydantic.v1 import BaseModel, Field
11-
from websockets.client import WebSocketClientProtocol
11+
from websockets.asyncio.client import ClientConnection
1212

1313
from vocode import getenv
1414
from vocode.streaming.models.audio import AudioEncoding
@@ -389,16 +389,18 @@ async def process(self):
389389
self.audio_cursor = 0.0
390390
self.start_ts = now()
391391

392-
extra_headers = {"Authorization": f"Token {self.api_key}"}
392+
additional_headers = {"Authorization": f"Token {self.api_key}"}
393393
deepgram_url = self.get_deepgram_url()
394394
logger.info(f"Connecting to Deepgram at {deepgram_url}")
395395

396396
try:
397-
async with websockets.connect(deepgram_url, extra_headers=extra_headers) as ws:
397+
async with websockets.connect(
398+
deepgram_url, additional_headers=additional_headers
399+
) as ws:
398400
self.connected_ts = now()
399401

400402
async def sender(
401-
ws: WebSocketClientProtocol,
403+
ws: ClientConnection,
402404
): # sends audio to websocket
403405
byte_rate = self.get_byte_rate()
404406

@@ -417,7 +419,7 @@ async def sender(
417419

418420
logger.debug("Terminating Deepgram transcriber sender")
419421

420-
async def receiver(ws: WebSocketClientProtocol):
422+
async def receiver(ws: ClientConnection):
421423
buffer = ""
422424
buffer_avg_confidence = 0.0
423425
num_buffer_utterances = 1

vocode/streaming/transcriber/rev_ai_transcriber.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import websockets
77
from loguru import logger
8-
from websockets.client import WebSocketClientProtocol
8+
from websockets.asyncio.client import ClientConnection
99

1010
from vocode import getenv
1111
from vocode.streaming.models.transcriber import (
@@ -71,7 +71,7 @@ async def _run_loop(self):
7171
async def process(self):
7272
async with websockets.connect(self.get_rev_ai_url()) as ws:
7373

74-
async def sender(ws: WebSocketClientProtocol):
74+
async def sender(ws: ClientConnection):
7575
while not self.closed:
7676
try:
7777
data = await asyncio.wait_for(self._input_queue.get(), 5)
@@ -81,7 +81,7 @@ async def sender(ws: WebSocketClientProtocol):
8181
await ws.close()
8282
logger.debug("Terminating Rev.AI transcriber sender")
8383

84-
async def receiver(ws: WebSocketClientProtocol):
84+
async def receiver(ws: ClientConnection):
8585
buffer = ""
8686

8787
while not self.closed:

0 commit comments

Comments
 (0)