From 086d4cd8144397448810ced46c122fec259fdcb8 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:29:20 +1100 Subject: [PATCH 1/8] breaking change --- src/hume/tts/client.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/hume/tts/client.py b/src/hume/tts/client.py index 5f6c2c70..a61ac957 100644 --- a/src/hume/tts/client.py +++ b/src/hume/tts/client.py @@ -42,19 +42,19 @@ def with_raw_response(self) -> RawTtsClient: """ return self._raw_client - def synthesize_json( - self, - *, - utterances: typing.Sequence[PostedUtterance], - context: typing.Optional[PostedContext] = OMIT, - format: typing.Optional[Format] = OMIT, - include_timestamp_types: typing.Optional[typing.Sequence[TimestampType]] = OMIT, - num_generations: typing.Optional[int] = OMIT, - split_utterances: typing.Optional[bool] = OMIT, - strip_headers: typing.Optional[bool] = OMIT, - version: typing.Optional[OctaveVersion] = OMIT, - instant_mode: typing.Optional[bool] = OMIT, - request_options: typing.Optional[RequestOptions] = None, + # def synthesize_json( + # self, + # *, + # utterances: typing.Sequence[PostedUtterance], + # context: typing.Optional[PostedContext] = OMIT, + # format: typing.Optional[Format] = OMIT, + # include_timestamp_types: typing.Optional[typing.Sequence[TimestampType]] = OMIT, + # num_generations: typing.Optional[int] = OMIT, + # split_utterances: typing.Optional[bool] = OMIT, + # strip_headers: typing.Optional[bool] = OMIT, + # version: typing.Optional[OctaveVersion] = OMIT, + # instant_mode: typing.Optional[bool] = OMIT, + # request_options: typing.Optional[RequestOptions] = None, ) -> ReturnTts: """ Synthesizes one or more input texts into speech using the specified voice. If no voice is provided, a novel voice will be generated dynamically. Optionally, additional context can be included to influence the speech's style and prosody. From 5335be43940d3077bb1ae3ca1f23524f705211e2 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:40:37 +1100 Subject: [PATCH 2/8] fix ci --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f656d3dd..fe7acc49 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -128,7 +128,7 @@ jobs: # Install SDK in editable mode from local path # This creates a link to the SDK source code - uv pip install -e "$SDK_PATH" + uv pip install --system -e "$SDK_PATH" echo "" echo "=== Verifying Linked SDK ===" From ac70a7d42fd161d6797aa6ce77bfdf3c1a2e27bf Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:42:14 +1100 Subject: [PATCH 3/8] fix build --- src/hume/tts/client.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/hume/tts/client.py b/src/hume/tts/client.py index a61ac957..a427e2b6 100644 --- a/src/hume/tts/client.py +++ b/src/hume/tts/client.py @@ -42,19 +42,19 @@ def with_raw_response(self) -> RawTtsClient: """ return self._raw_client - # def synthesize_json( - # self, - # *, - # utterances: typing.Sequence[PostedUtterance], - # context: typing.Optional[PostedContext] = OMIT, - # format: typing.Optional[Format] = OMIT, - # include_timestamp_types: typing.Optional[typing.Sequence[TimestampType]] = OMIT, - # num_generations: typing.Optional[int] = OMIT, - # split_utterances: typing.Optional[bool] = OMIT, - # strip_headers: typing.Optional[bool] = OMIT, - # version: typing.Optional[OctaveVersion] = OMIT, - # instant_mode: typing.Optional[bool] = OMIT, - # request_options: typing.Optional[RequestOptions] = None, + def synthesize_json( + self, + *, + utterances: typing.Sequence[PostedUtterance], + context: typing.Optional[PostedContext] = OMIT, + format: typing.Optional[Format] = OMIT, + include_timestamp_types: typing.Optional[typing.Sequence[TimestampType]] = OMIT, + num_generations: typing.Optional[int] = OMIT, + split_utterances: typing.Optional[bool] = OMIT, + strip_headers: typing.Optional[bool] = OMIT, + version: typing.Optional[OctaveVersion] = OMIT, + instant_mode: typing.Optional[bool] = OMIT, + request_options: typing.Optional[RequestOptions] = None, ) -> ReturnTts: """ Synthesizes one or more input texts into speech using the specified voice. If no voice is provided, a novel voice will be generated dynamically. Optionally, additional context can be included to influence the speech's style and prosody. @@ -483,6 +483,7 @@ def voices(self): def stream_input(self): if self._stream_input is None: from .stream_input.client import StreamInputClient # noqa: E402 + self._stream_input = StreamInputClient(client_wrapper=self._client_wrapper) return self._stream_input From 68b7f12a70b129bd2e4e2ac741576865d69299d3 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:45:36 +1100 Subject: [PATCH 4/8] wip --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe7acc49..fa3c524c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,13 +123,13 @@ jobs: echo "SDK version: $SDK_VERSION" echo "SDK path: $SDK_PATH" echo "====================" - + cd ../examples/tts/tts-python-quickstart - + # Install SDK in editable mode from local path # This creates a link to the SDK source code - uv pip install --system -e "$SDK_PATH" - + pip install -e "$SDK_PATH" + echo "" echo "=== Verifying Linked SDK ===" INSTALLED_VERSION=$(python -c "from importlib.metadata import version; print(version('hume'))") @@ -139,7 +139,7 @@ jobs: else echo "✓ Version matches: $INSTALLED_VERSION" fi - + # Verify it's using local SDK (editable install) SDK_LOCATION=$(python -c "import hume; import os; print(os.path.dirname(hume.__file__))") echo "SDK location: $SDK_LOCATION" From d5febf43e5e3125ed23b38eaef5b79555d2685e7 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:47:18 +1100 Subject: [PATCH 5/8] fix audio deps --- .github/workflows/ci.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa3c524c..c4b96d8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,6 +94,11 @@ jobs: run: | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 + - name: Install system dependencies for audio + run: | + sudo apt-get --yes update + sudo apt-get --yes install libportaudio2 + - name: Install uv run: | curl -LsSf https://astral.sh/uv/install.sh | sh @@ -126,13 +131,16 @@ jobs: cd ../examples/tts/tts-python-quickstart - # Install SDK in editable mode from local path + # Create venv that uv run will use + uv venv + + # Install SDK in editable mode from local path into the venv # This creates a link to the SDK source code - pip install -e "$SDK_PATH" + uv pip install -e "$SDK_PATH" echo "" echo "=== Verifying Linked SDK ===" - INSTALLED_VERSION=$(python -c "from importlib.metadata import version; print(version('hume'))") + INSTALLED_VERSION=$(uv run python -c "from importlib.metadata import version; print(version('hume'))") echo "Installed hume version: $INSTALLED_VERSION" if [ "$INSTALLED_VERSION" != "$SDK_VERSION" ]; then echo "✗ WARNING: Version mismatch! Expected $SDK_VERSION, got $INSTALLED_VERSION" @@ -141,7 +149,7 @@ jobs: fi # Verify it's using local SDK (editable install) - SDK_LOCATION=$(python -c "import hume; import os; print(os.path.dirname(hume.__file__))") + SDK_LOCATION=$(uv run python -c "import hume; import os; print(os.path.dirname(hume.__file__))") echo "SDK location: $SDK_LOCATION" if [[ "$SDK_LOCATION" == *"$SDK_PATH"* ]]; then echo "✓ Using local SDK (editable install)" From 3e865130a8be07555d7b3f1f567233629afe6faa Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:49:58 +1100 Subject: [PATCH 6/8] fix poetry path --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4b96d8c..ce5cc5e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -90,9 +90,9 @@ jobs: python-version: '3.11' - name: Bootstrap poetry - working-directory: ./sdk run: | curl -sSL https://install.python-poetry.org | python - -y --version 1.5.1 + echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Install system dependencies for audio run: | @@ -165,7 +165,6 @@ jobs: run: uv run pytest test_app.py -v env: TEST_HUME_API_KEY: ${{ secrets.TEST_HUME_API_KEY }} - TEST_HUME_SECRET_KEY: ${{ secrets.TEST_HUME_SECRET_KEY }} publish: needs: [compile-without-audio, compile-with-audio, test] From 6b84c5382e506f0efb5c58280f514e3512ad8ac8 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:52:07 +1100 Subject: [PATCH 7/8] fix venv pip --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce5cc5e2..f0589457 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -136,7 +136,8 @@ jobs: # Install SDK in editable mode from local path into the venv # This creates a link to the SDK source code - uv pip install -e "$SDK_PATH" + # Use the venv's pip directly to avoid uv's PEP 621 parsing issues with Poetry projects + .venv/bin/pip install -e "$SDK_PATH" echo "" echo "=== Verifying Linked SDK ===" From 5d0b03102f2987eb059fcc4464b1b28b804f6e91 Mon Sep 17 00:00:00 2001 From: ivaaan Date: Sat, 13 Dec 2025 10:55:13 +1100 Subject: [PATCH 8/8] life is a struggle --- .github/workflows/ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0589457..ec7bd63d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -132,12 +132,13 @@ jobs: cd ../examples/tts/tts-python-quickstart # Create venv that uv run will use - uv venv + # Use python -m venv to ensure pip is included + python -m venv .venv # Install SDK in editable mode from local path into the venv # This creates a link to the SDK source code - # Use the venv's pip directly to avoid uv's PEP 621 parsing issues with Poetry projects - .venv/bin/pip install -e "$SDK_PATH" + # Use the venv's Python with -m pip to avoid uv's PEP 621 parsing issues with Poetry projects + .venv/bin/python -m pip install -e "$SDK_PATH" echo "" echo "=== Verifying Linked SDK ==="