diff --git a/software/poetry.lock b/software/poetry.lock index 34052a5..3bffe03 100644 --- a/software/poetry.lock +++ b/software/poetry.lock @@ -957,13 +957,13 @@ dev = ["mypy (>=0.990)", "types-python-xlib (>=0.32)", "types-setuptools (>=65.5 [[package]] name = "exceptiongroup" -version = "1.2.1" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, - {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -6929,13 +6929,13 @@ dev = ["pre-commit", "pytest", "ruff (>=0.3.0)"] [[package]] name = "sentry-sdk" -version = "2.9.0" +version = "2.10.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.9.0-py2.py3-none-any.whl", hash = "sha256:0bea5fa8b564cc0d09f2e6f55893e8f70286048b0ffb3a341d5b695d1af0e6ee"}, - {file = "sentry_sdk-2.9.0.tar.gz", hash = "sha256:4c85bad74df9767976afb3eeddc33e0e153300e887d637775a753a35ef99bee6"}, + {file = "sentry_sdk-2.10.0-py2.py3-none-any.whl", hash = "sha256:87b3d413c87d8e7f816cc9334bff255a83d8b577db2b22042651c30c19c09190"}, + {file = "sentry_sdk-2.10.0.tar.gz", hash = "sha256:545fcc6e36c335faa6d6cda84669b6e17025f31efbf3b2211ec14efe008b75d1"}, ] [package.dependencies] diff --git a/software/source/clients/base_device.py b/software/source/clients/base_device.py index 34b96a1..4810488 100644 --- a/software/source/clients/base_device.py +++ b/software/source/clients/base_device.py @@ -155,13 +155,15 @@ class Device: async def play_audiosegments(self): """Plays them sequentially.""" - mpv_command = ["mpv", "--no-cache", "--no-terminal", "--", "fd://0"] - mpv_process = subprocess.Popen( - mpv_command, - stdin=subprocess.PIPE, - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) + if self.tts_service == "elevenlabs": + print("Ensure `mpv` in installed to use `elevenlabs`.\n\n(On macOSX, you can run `brew install mpv`.)") + mpv_command = ["mpv", "--no-cache", "--no-terminal", "--", "fd://0"] + mpv_process = subprocess.Popen( + mpv_command, + stdin=subprocess.PIPE, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) while True: try: diff --git a/software/source/server/async_server.py b/software/source/server/async_server.py index 48be5fa..88b80e4 100644 --- a/software/source/server/async_server.py +++ b/software/source/server/async_server.py @@ -58,6 +58,8 @@ async def websocket_endpoint( data = await websocket.receive() + await asyncio.sleep(0) + if isinstance(data, bytes): await interpreter.input(data) elif "bytes" in data: @@ -71,13 +73,14 @@ async def websocket_endpoint( while True: output = await interpreter.output() + await asyncio.sleep(0) + if isinstance(output, bytes): - # print(f"Sending {len(output)} bytes of audio data.") + print(f"Sending {len(output)} bytes of audio data.") await websocket.send_bytes(output) - # we dont send out bytes rn, no TTS elif isinstance(output, dict): - # print("sending text") + print("sending text") await websocket.send_text(json.dumps(output)) await asyncio.gather(send_output(), receive_input())