From 2c430b09e330dadef2dd9747d85a3dc3ec350f09 Mon Sep 17 00:00:00 2001 From: Rob <77rgh77@gmail.com> Date: Wed, 20 May 2026 20:20:55 -0400 Subject: [PATCH 1/2] Expose temperature parameter on high-level TTS client The temperature parameter was added to the raw TTS client via Fern generation but not to the manually-maintained client.py wrapper. This adds it to all 8 synthesize methods. --- src/hume/tts/client.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/hume/tts/client.py b/src/hume/tts/client.py index a403e8f9..6a757f6a 100644 --- a/src/hume/tts/client.py +++ b/src/hume/tts/client.py @@ -52,6 +52,7 @@ def synthesize_json( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -94,6 +95,9 @@ def synthesize_json( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -146,6 +150,7 @@ def synthesize_json( num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -162,6 +167,7 @@ def synthesize_file( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -204,6 +210,9 @@ def synthesize_file( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -251,6 +260,7 @@ def synthesize_file( num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -267,6 +277,7 @@ def synthesize_file_streaming( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -307,6 +318,9 @@ def synthesize_file_streaming( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -352,6 +366,7 @@ def synthesize_file_streaming( num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -368,6 +383,7 @@ def synthesize_json_streaming( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -410,6 +426,9 @@ def synthesize_json_streaming( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -457,6 +476,7 @@ def synthesize_json_streaming( num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -619,6 +639,7 @@ async def synthesize_json( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -661,6 +682,9 @@ async def synthesize_json( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -721,6 +745,7 @@ async def main() -> None: num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -737,6 +762,7 @@ async def synthesize_file( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -779,6 +805,9 @@ async def synthesize_file( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -834,6 +863,7 @@ async def main() -> None: num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -851,6 +881,7 @@ async def synthesize_file_streaming( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -891,6 +922,9 @@ async def synthesize_file_streaming( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -944,6 +978,7 @@ async def main() -> None: num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, @@ -961,6 +996,7 @@ async def synthesize_json_streaming( num_generations: typing.Optional[int] = OMIT, split_utterances: typing.Optional[bool] = OMIT, strip_headers: typing.Optional[bool] = OMIT, + temperature: typing.Optional[float] = OMIT, version: typing.Optional[OctaveVersion] = OMIT, instant_mode: typing.Optional[bool] = OMIT, request_options: typing.Optional[RequestOptions] = None, @@ -1003,6 +1039,9 @@ async def synthesize_json_streaming( strip_headers : typing.Optional[bool] If enabled, the audio for all the chunks of a generation, once concatenated together, will constitute a single audio file. Otherwise, if disabled, each chunk's audio will be its own audio file, each with its own headers (if applicable). + temperature : typing.Optional[float] + Sampling temperature for the speech generation model. Higher values increase variation; lower values increase consistency. + version : typing.Optional[OctaveVersion] Selects the Octave model version used to synthesize speech for this request. If you omit this field, Hume automatically routes the request to the most appropriate model. Setting a specific version ensures stable and repeatable behavior across requests. @@ -1058,6 +1097,7 @@ async def main() -> None: num_generations=num_generations, split_utterances=split_utterances, strip_headers=strip_headers, + temperature=temperature, version=version, instant_mode=instant_mode, request_options=request_options, From e1d7bb3ddd063d07e277e4f226c00e4c76cea531 Mon Sep 17 00:00:00 2001 From: Rob <77rgh77@gmail.com> Date: Wed, 20 May 2026 20:33:55 -0400 Subject: [PATCH 2/2] bump version to 0.13.13 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3b3bc72e..d1735607 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "hume" -version = "0.13.12" +version = "0.13.13" description = "A Python SDK for Hume AI" readme = "README.md" authors = []