sarvamai 0.1.23a3__py3-none-any.whl → 0.1.23a4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. sarvamai/__init__.py +203 -405
  2. sarvamai/chat/raw_client.py +20 -20
  3. sarvamai/client.py +34 -186
  4. sarvamai/core/__init__.py +21 -76
  5. sarvamai/core/client_wrapper.py +3 -19
  6. sarvamai/core/force_multipart.py +2 -4
  7. sarvamai/core/http_client.py +97 -217
  8. sarvamai/core/http_response.py +1 -1
  9. sarvamai/core/jsonable_encoder.py +0 -8
  10. sarvamai/core/pydantic_utilities.py +4 -110
  11. sarvamai/errors/__init__.py +6 -40
  12. sarvamai/errors/bad_request_error.py +1 -1
  13. sarvamai/errors/forbidden_error.py +1 -1
  14. sarvamai/errors/internal_server_error.py +1 -1
  15. sarvamai/errors/service_unavailable_error.py +1 -1
  16. sarvamai/errors/too_many_requests_error.py +1 -1
  17. sarvamai/errors/unprocessable_entity_error.py +1 -1
  18. sarvamai/requests/__init__.py +62 -150
  19. sarvamai/requests/configure_connection.py +4 -0
  20. sarvamai/requests/configure_connection_data.py +40 -11
  21. sarvamai/requests/error_response_data.py +1 -1
  22. sarvamai/requests/file_signed_url_details.py +1 -1
  23. sarvamai/requests/speech_to_text_job_parameters.py +10 -1
  24. sarvamai/requests/speech_to_text_transcription_data.py +2 -2
  25. sarvamai/speech_to_text/client.py +29 -2
  26. sarvamai/speech_to_text/raw_client.py +81 -56
  27. sarvamai/speech_to_text_job/client.py +60 -15
  28. sarvamai/speech_to_text_job/raw_client.py +120 -120
  29. sarvamai/speech_to_text_streaming/__init__.py +10 -38
  30. sarvamai/speech_to_text_streaming/client.py +32 -6
  31. sarvamai/speech_to_text_streaming/raw_client.py +32 -6
  32. sarvamai/speech_to_text_streaming/types/__init__.py +8 -36
  33. sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_mode.py +7 -0
  34. sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_model.py +5 -0
  35. sarvamai/speech_to_text_translate_job/raw_client.py +120 -120
  36. sarvamai/speech_to_text_translate_streaming/__init__.py +5 -36
  37. sarvamai/speech_to_text_translate_streaming/types/__init__.py +3 -36
  38. sarvamai/text/raw_client.py +60 -60
  39. sarvamai/text_to_speech/client.py +100 -16
  40. sarvamai/text_to_speech/raw_client.py +120 -36
  41. sarvamai/text_to_speech_streaming/__init__.py +2 -29
  42. sarvamai/text_to_speech_streaming/client.py +19 -6
  43. sarvamai/text_to_speech_streaming/raw_client.py +19 -6
  44. sarvamai/text_to_speech_streaming/types/__init__.py +3 -31
  45. sarvamai/text_to_speech_streaming/types/text_to_speech_streaming_model.py +5 -0
  46. sarvamai/types/__init__.py +102 -222
  47. sarvamai/types/chat_completion_request_message.py +2 -6
  48. sarvamai/types/configure_connection.py +4 -0
  49. sarvamai/types/configure_connection_data.py +40 -11
  50. sarvamai/types/configure_connection_data_model.py +5 -0
  51. sarvamai/types/configure_connection_data_speaker.py +35 -1
  52. sarvamai/types/error_response_data.py +1 -1
  53. sarvamai/types/file_signed_url_details.py +1 -1
  54. sarvamai/types/mode.py +7 -0
  55. sarvamai/types/speech_to_text_job_parameters.py +10 -1
  56. sarvamai/types/speech_to_text_model.py +3 -1
  57. sarvamai/types/speech_to_text_transcription_data.py +2 -2
  58. sarvamai/types/speech_to_text_translate_model.py +1 -1
  59. sarvamai/types/text_to_speech_model.py +1 -1
  60. sarvamai/types/text_to_speech_speaker.py +35 -1
  61. {sarvamai-0.1.23a3.dist-info → sarvamai-0.1.23a4.dist-info}/METADATA +1 -2
  62. {sarvamai-0.1.23a3.dist-info → sarvamai-0.1.23a4.dist-info}/RECORD +63 -63
  63. sarvamai/core/http_sse/__init__.py +0 -42
  64. sarvamai/core/http_sse/_api.py +0 -112
  65. sarvamai/core/http_sse/_decoders.py +0 -61
  66. sarvamai/core/http_sse/_exceptions.py +0 -7
  67. sarvamai/core/http_sse/_models.py +0 -17
  68. {sarvamai-0.1.23a3.dist-info → sarvamai-0.1.23a4.dist-info}/WHEEL +0 -0
@@ -11,6 +11,7 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
11
11
  from ..core.request_options import RequestOptions
12
12
  from .raw_client import AsyncRawTextToSpeechStreamingClient, RawTextToSpeechStreamingClient
13
13
  from .socket_client import AsyncTextToSpeechStreamingSocketClient, TextToSpeechStreamingSocketClient
14
+ from .types.text_to_speech_streaming_model import TextToSpeechStreamingModel
14
15
  from .types.text_to_speech_streaming_send_completion_event import TextToSpeechStreamingSendCompletionEvent
15
16
 
16
17
  try:
@@ -38,7 +39,7 @@ class TextToSpeechStreamingClient:
38
39
  def connect(
39
40
  self,
40
41
  *,
41
- model: typing.Optional[typing.Literal["bulbul:v2"]] = None,
42
+ model: typing.Optional[TextToSpeechStreamingModel] = None,
42
43
  send_completion_event: typing.Optional[TextToSpeechStreamingSendCompletionEvent] = None,
43
44
  api_subscription_key: typing.Optional[str] = None,
44
45
  request_options: typing.Optional[RequestOptions] = None,
@@ -50,10 +51,16 @@ class TextToSpeechStreamingClient:
50
51
  The Try It playground may not provide the best experience for streaming audio.
51
52
  For optimal streaming performance, please use the SDK or implement your own WebSocket client.
52
53
 
54
+ **Model-Specific Notes:**
55
+ - **bulbul:v2:** Supports pitch, loudness, pace (0.3-3.0). Default sample rate: 22050 Hz.
56
+ - **bulbul:v3-beta:** Does NOT support pitch/loudness. Pace range: 0.5-2.0. Supports temperature parameter. Default sample rate: 24000 Hz. Preprocessing is always enabled.
57
+
53
58
  Parameters
54
59
  ----------
55
- model : typing.Optional[typing.Literal["bulbul:v2"]]
56
- Text to speech model to use
60
+ model : typing.Optional[TextToSpeechStreamingModel]
61
+ Text to speech model to use.
62
+ - **bulbul:v2** (default): Standard TTS model with pitch/loudness support
63
+ - **bulbul:v3-beta**: Advanced model with temperature control (no pitch/loudness)
57
64
 
58
65
  send_completion_event : typing.Optional[TextToSpeechStreamingSendCompletionEvent]
59
66
  Enable completion event notifications when TTS generation finishes. When set to true, an event message will be sent when the final audio chunk has been generated.
@@ -117,7 +124,7 @@ class AsyncTextToSpeechStreamingClient:
117
124
  async def connect(
118
125
  self,
119
126
  *,
120
- model: typing.Optional[typing.Literal["bulbul:v2"]] = None,
127
+ model: typing.Optional[TextToSpeechStreamingModel] = None,
121
128
  send_completion_event: typing.Optional[TextToSpeechStreamingSendCompletionEvent] = None,
122
129
  api_subscription_key: typing.Optional[str] = None,
123
130
  request_options: typing.Optional[RequestOptions] = None,
@@ -129,10 +136,16 @@ class AsyncTextToSpeechStreamingClient:
129
136
  The Try It playground may not provide the best experience for streaming audio.
130
137
  For optimal streaming performance, please use the SDK or implement your own WebSocket client.
131
138
 
139
+ **Model-Specific Notes:**
140
+ - **bulbul:v2:** Supports pitch, loudness, pace (0.3-3.0). Default sample rate: 22050 Hz.
141
+ - **bulbul:v3-beta:** Does NOT support pitch/loudness. Pace range: 0.5-2.0. Supports temperature parameter. Default sample rate: 24000 Hz. Preprocessing is always enabled.
142
+
132
143
  Parameters
133
144
  ----------
134
- model : typing.Optional[typing.Literal["bulbul:v2"]]
135
- Text to speech model to use
145
+ model : typing.Optional[TextToSpeechStreamingModel]
146
+ Text to speech model to use.
147
+ - **bulbul:v2** (default): Standard TTS model with pitch/loudness support
148
+ - **bulbul:v3-beta**: Advanced model with temperature control (no pitch/loudness)
136
149
 
137
150
  send_completion_event : typing.Optional[TextToSpeechStreamingSendCompletionEvent]
138
151
  Enable completion event notifications when TTS generation finishes. When set to true, an event message will be sent when the final audio chunk has been generated.
@@ -10,6 +10,7 @@ from ..core.api_error import ApiError
10
10
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
11
11
  from ..core.request_options import RequestOptions
12
12
  from .socket_client import AsyncTextToSpeechStreamingSocketClient, TextToSpeechStreamingSocketClient
13
+ from .types.text_to_speech_streaming_model import TextToSpeechStreamingModel
13
14
  from .types.text_to_speech_streaming_send_completion_event import TextToSpeechStreamingSendCompletionEvent
14
15
 
15
16
  try:
@@ -26,7 +27,7 @@ class RawTextToSpeechStreamingClient:
26
27
  def connect(
27
28
  self,
28
29
  *,
29
- model: typing.Optional[typing.Literal["bulbul:v2"]] = None,
30
+ model: typing.Optional[TextToSpeechStreamingModel] = None,
30
31
  send_completion_event: typing.Optional[TextToSpeechStreamingSendCompletionEvent] = None,
31
32
  api_subscription_key: typing.Optional[str] = None,
32
33
  request_options: typing.Optional[RequestOptions] = None,
@@ -38,10 +39,16 @@ class RawTextToSpeechStreamingClient:
38
39
  The Try It playground may not provide the best experience for streaming audio.
39
40
  For optimal streaming performance, please use the SDK or implement your own WebSocket client.
40
41
 
42
+ **Model-Specific Notes:**
43
+ - **bulbul:v2:** Supports pitch, loudness, pace (0.3-3.0). Default sample rate: 22050 Hz.
44
+ - **bulbul:v3-beta:** Does NOT support pitch/loudness. Pace range: 0.5-2.0. Supports temperature parameter. Default sample rate: 24000 Hz. Preprocessing is always enabled.
45
+
41
46
  Parameters
42
47
  ----------
43
- model : typing.Optional[typing.Literal["bulbul:v2"]]
44
- Text to speech model to use
48
+ model : typing.Optional[TextToSpeechStreamingModel]
49
+ Text to speech model to use.
50
+ - **bulbul:v2** (default): Standard TTS model with pitch/loudness support
51
+ - **bulbul:v3-beta**: Advanced model with temperature control (no pitch/loudness)
45
52
 
46
53
  send_completion_event : typing.Optional[TextToSpeechStreamingSendCompletionEvent]
47
54
  Enable completion event notifications when TTS generation finishes. When set to true, an event message will be sent when the final audio chunk has been generated.
@@ -94,7 +101,7 @@ class AsyncRawTextToSpeechStreamingClient:
94
101
  async def connect(
95
102
  self,
96
103
  *,
97
- model: typing.Optional[typing.Literal["bulbul:v2"]] = None,
104
+ model: typing.Optional[TextToSpeechStreamingModel] = None,
98
105
  send_completion_event: typing.Optional[TextToSpeechStreamingSendCompletionEvent] = None,
99
106
  api_subscription_key: typing.Optional[str] = None,
100
107
  request_options: typing.Optional[RequestOptions] = None,
@@ -106,10 +113,16 @@ class AsyncRawTextToSpeechStreamingClient:
106
113
  The Try It playground may not provide the best experience for streaming audio.
107
114
  For optimal streaming performance, please use the SDK or implement your own WebSocket client.
108
115
 
116
+ **Model-Specific Notes:**
117
+ - **bulbul:v2:** Supports pitch, loudness, pace (0.3-3.0). Default sample rate: 22050 Hz.
118
+ - **bulbul:v3-beta:** Does NOT support pitch/loudness. Pace range: 0.5-2.0. Supports temperature parameter. Default sample rate: 24000 Hz. Preprocessing is always enabled.
119
+
109
120
  Parameters
110
121
  ----------
111
- model : typing.Optional[typing.Literal["bulbul:v2"]]
112
- Text to speech model to use
122
+ model : typing.Optional[TextToSpeechStreamingModel]
123
+ Text to speech model to use.
124
+ - **bulbul:v2** (default): Standard TTS model with pitch/loudness support
125
+ - **bulbul:v3-beta**: Advanced model with temperature control (no pitch/loudness)
113
126
 
114
127
  send_completion_event : typing.Optional[TextToSpeechStreamingSendCompletionEvent]
115
128
  Enable completion event notifications when TTS generation finishes. When set to true, an event message will be sent when the final audio chunk has been generated.
@@ -2,35 +2,7 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- import typing
6
- from importlib import import_module
5
+ from .text_to_speech_streaming_model import TextToSpeechStreamingModel
6
+ from .text_to_speech_streaming_send_completion_event import TextToSpeechStreamingSendCompletionEvent
7
7
 
8
- if typing.TYPE_CHECKING:
9
- from .text_to_speech_streaming_send_completion_event import TextToSpeechStreamingSendCompletionEvent
10
- _dynamic_imports: typing.Dict[str, str] = {
11
- "TextToSpeechStreamingSendCompletionEvent": ".text_to_speech_streaming_send_completion_event"
12
- }
13
-
14
-
15
- def __getattr__(attr_name: str) -> typing.Any:
16
- module_name = _dynamic_imports.get(attr_name)
17
- if module_name is None:
18
- raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
19
- try:
20
- module = import_module(module_name, __package__)
21
- if module_name == f".{attr_name}":
22
- return module
23
- else:
24
- return getattr(module, attr_name)
25
- except ImportError as e:
26
- raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
27
- except AttributeError as e:
28
- raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
29
-
30
-
31
- def __dir__():
32
- lazy_attrs = list(_dynamic_imports.keys())
33
- return sorted(lazy_attrs)
34
-
35
-
36
- __all__ = ["TextToSpeechStreamingSendCompletionEvent"]
8
+ __all__ = ["TextToSpeechStreamingModel", "TextToSpeechStreamingSendCompletionEvent"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TextToSpeechStreamingModel = typing.Union[typing.Literal["bulbul:v2", "bulbul:v3-beta"], typing.Any]
@@ -2,228 +2,106 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- import typing
6
- from importlib import import_module
7
-
8
- if typing.TYPE_CHECKING:
9
- from .audio_data import AudioData
10
- from .audio_message import AudioMessage
11
- from .audio_output import AudioOutput
12
- from .audio_output_data import AudioOutputData
13
- from .base_job_parameters import BaseJobParameters
14
- from .bulk_job_callback import BulkJobCallback
15
- from .bulk_job_init_response_v_1 import BulkJobInitResponseV1
16
- from .chat_completion_request_assistant_message import ChatCompletionRequestAssistantMessage
17
- from .chat_completion_request_message import (
18
- ChatCompletionRequestMessage,
19
- ChatCompletionRequestMessage_Assistant,
20
- ChatCompletionRequestMessage_System,
21
- ChatCompletionRequestMessage_User,
22
- )
23
- from .chat_completion_request_system_message import ChatCompletionRequestSystemMessage
24
- from .chat_completion_request_user_message import ChatCompletionRequestUserMessage
25
- from .chat_completion_response_message import ChatCompletionResponseMessage
26
- from .choice import Choice
27
- from .completion_event_flag import CompletionEventFlag
28
- from .completion_usage import CompletionUsage
29
- from .config_message import ConfigMessage
30
- from .configure_connection import ConfigureConnection
31
- from .configure_connection_data import ConfigureConnectionData
32
- from .configure_connection_data_output_audio_bitrate import ConfigureConnectionDataOutputAudioBitrate
33
- from .configure_connection_data_output_audio_codec import ConfigureConnectionDataOutputAudioCodec
34
- from .configure_connection_data_speaker import ConfigureConnectionDataSpeaker
35
- from .configure_connection_data_target_language_code import ConfigureConnectionDataTargetLanguageCode
36
- from .connection_sample_rate import ConnectionSampleRate
37
- from .create_chat_completion_response import CreateChatCompletionResponse
38
- from .diarized_entry import DiarizedEntry
39
- from .diarized_transcript import DiarizedTranscript
40
- from .error_code import ErrorCode
41
- from .error_data import ErrorData
42
- from .error_details import ErrorDetails
43
- from .error_message import ErrorMessage
44
- from .error_response import ErrorResponse
45
- from .error_response_data import ErrorResponseData
46
- from .event_response import EventResponse
47
- from .event_response_data import EventResponseData
48
- from .events_data import EventsData
49
- from .events_data_signal_type import EventsDataSignalType
50
- from .file_signed_url_details import FileSignedUrlDetails
51
- from .files_download_response import FilesDownloadResponse
52
- from .files_request import FilesRequest
53
- from .files_upload_response import FilesUploadResponse
54
- from .finish_reason import FinishReason
55
- from .flush_signal import FlushSignal
56
- from .input_audio_codec import InputAudioCodec
57
- from .job_state import JobState
58
- from .job_status_v_1_response import JobStatusV1Response
59
- from .language_identification_response import LanguageIdentificationResponse
60
- from .numerals_format import NumeralsFormat
61
- from .ping_signal import PingSignal
62
- from .reasoning_effort import ReasoningEffort
63
- from .response_type import ResponseType
64
- from .role import Role
65
- from .sarvam_model_ids import SarvamModelIds
66
- from .send_text import SendText
67
- from .send_text_data import SendTextData
68
- from .speech_sample_rate import SpeechSampleRate
69
- from .speech_to_text_job_parameters import SpeechToTextJobParameters
70
- from .speech_to_text_language import SpeechToTextLanguage
71
- from .speech_to_text_model import SpeechToTextModel
72
- from .speech_to_text_response import SpeechToTextResponse
73
- from .speech_to_text_response_data import SpeechToTextResponseData
74
- from .speech_to_text_streaming_response import SpeechToTextStreamingResponse
75
- from .speech_to_text_transcription_data import SpeechToTextTranscriptionData
76
- from .speech_to_text_translate_job_parameters import SpeechToTextTranslateJobParameters
77
- from .speech_to_text_translate_language import SpeechToTextTranslateLanguage
78
- from .speech_to_text_translate_model import SpeechToTextTranslateModel
79
- from .speech_to_text_translate_response import SpeechToTextTranslateResponse
80
- from .speech_to_text_translate_response_data import SpeechToTextTranslateResponseData
81
- from .speech_to_text_translate_streaming_response import SpeechToTextTranslateStreamingResponse
82
- from .speech_to_text_translate_transcription_data import SpeechToTextTranslateTranscriptionData
83
- from .spoken_form_numerals_format import SpokenFormNumeralsFormat
84
- from .stop_configuration import StopConfiguration
85
- from .storage_container_type import StorageContainerType
86
- from .stt_flush_signal import SttFlushSignal
87
- from .task_detail_v_1 import TaskDetailV1
88
- from .task_file_details import TaskFileDetails
89
- from .task_state import TaskState
90
- from .text_to_speech_language import TextToSpeechLanguage
91
- from .text_to_speech_model import TextToSpeechModel
92
- from .text_to_speech_output_audio_codec import TextToSpeechOutputAudioCodec
93
- from .text_to_speech_response import TextToSpeechResponse
94
- from .text_to_speech_speaker import TextToSpeechSpeaker
95
- from .timestamps_model import TimestampsModel
96
- from .transcription_metrics import TranscriptionMetrics
97
- from .translate_mode import TranslateMode
98
- from .translate_model import TranslateModel
99
- from .translate_source_language import TranslateSourceLanguage
100
- from .translate_speaker_gender import TranslateSpeakerGender
101
- from .translate_target_language import TranslateTargetLanguage
102
- from .translation_response import TranslationResponse
103
- from .translatiterate_target_language import TranslatiterateTargetLanguage
104
- from .transliterate_mode import TransliterateMode
105
- from .transliterate_source_language import TransliterateSourceLanguage
106
- from .transliteration_response import TransliterationResponse
107
- _dynamic_imports: typing.Dict[str, str] = {
108
- "AudioData": ".audio_data",
109
- "AudioMessage": ".audio_message",
110
- "AudioOutput": ".audio_output",
111
- "AudioOutputData": ".audio_output_data",
112
- "BaseJobParameters": ".base_job_parameters",
113
- "BulkJobCallback": ".bulk_job_callback",
114
- "BulkJobInitResponseV1": ".bulk_job_init_response_v_1",
115
- "ChatCompletionRequestAssistantMessage": ".chat_completion_request_assistant_message",
116
- "ChatCompletionRequestMessage": ".chat_completion_request_message",
117
- "ChatCompletionRequestMessage_Assistant": ".chat_completion_request_message",
118
- "ChatCompletionRequestMessage_System": ".chat_completion_request_message",
119
- "ChatCompletionRequestMessage_User": ".chat_completion_request_message",
120
- "ChatCompletionRequestSystemMessage": ".chat_completion_request_system_message",
121
- "ChatCompletionRequestUserMessage": ".chat_completion_request_user_message",
122
- "ChatCompletionResponseMessage": ".chat_completion_response_message",
123
- "Choice": ".choice",
124
- "CompletionEventFlag": ".completion_event_flag",
125
- "CompletionUsage": ".completion_usage",
126
- "ConfigMessage": ".config_message",
127
- "ConfigureConnection": ".configure_connection",
128
- "ConfigureConnectionData": ".configure_connection_data",
129
- "ConfigureConnectionDataOutputAudioBitrate": ".configure_connection_data_output_audio_bitrate",
130
- "ConfigureConnectionDataOutputAudioCodec": ".configure_connection_data_output_audio_codec",
131
- "ConfigureConnectionDataSpeaker": ".configure_connection_data_speaker",
132
- "ConfigureConnectionDataTargetLanguageCode": ".configure_connection_data_target_language_code",
133
- "ConnectionSampleRate": ".connection_sample_rate",
134
- "CreateChatCompletionResponse": ".create_chat_completion_response",
135
- "DiarizedEntry": ".diarized_entry",
136
- "DiarizedTranscript": ".diarized_transcript",
137
- "ErrorCode": ".error_code",
138
- "ErrorData": ".error_data",
139
- "ErrorDetails": ".error_details",
140
- "ErrorMessage": ".error_message",
141
- "ErrorResponse": ".error_response",
142
- "ErrorResponseData": ".error_response_data",
143
- "EventResponse": ".event_response",
144
- "EventResponseData": ".event_response_data",
145
- "EventsData": ".events_data",
146
- "EventsDataSignalType": ".events_data_signal_type",
147
- "FileSignedUrlDetails": ".file_signed_url_details",
148
- "FilesDownloadResponse": ".files_download_response",
149
- "FilesRequest": ".files_request",
150
- "FilesUploadResponse": ".files_upload_response",
151
- "FinishReason": ".finish_reason",
152
- "FlushSignal": ".flush_signal",
153
- "InputAudioCodec": ".input_audio_codec",
154
- "JobState": ".job_state",
155
- "JobStatusV1Response": ".job_status_v_1_response",
156
- "LanguageIdentificationResponse": ".language_identification_response",
157
- "NumeralsFormat": ".numerals_format",
158
- "PingSignal": ".ping_signal",
159
- "ReasoningEffort": ".reasoning_effort",
160
- "ResponseType": ".response_type",
161
- "Role": ".role",
162
- "SarvamModelIds": ".sarvam_model_ids",
163
- "SendText": ".send_text",
164
- "SendTextData": ".send_text_data",
165
- "SpeechSampleRate": ".speech_sample_rate",
166
- "SpeechToTextJobParameters": ".speech_to_text_job_parameters",
167
- "SpeechToTextLanguage": ".speech_to_text_language",
168
- "SpeechToTextModel": ".speech_to_text_model",
169
- "SpeechToTextResponse": ".speech_to_text_response",
170
- "SpeechToTextResponseData": ".speech_to_text_response_data",
171
- "SpeechToTextStreamingResponse": ".speech_to_text_streaming_response",
172
- "SpeechToTextTranscriptionData": ".speech_to_text_transcription_data",
173
- "SpeechToTextTranslateJobParameters": ".speech_to_text_translate_job_parameters",
174
- "SpeechToTextTranslateLanguage": ".speech_to_text_translate_language",
175
- "SpeechToTextTranslateModel": ".speech_to_text_translate_model",
176
- "SpeechToTextTranslateResponse": ".speech_to_text_translate_response",
177
- "SpeechToTextTranslateResponseData": ".speech_to_text_translate_response_data",
178
- "SpeechToTextTranslateStreamingResponse": ".speech_to_text_translate_streaming_response",
179
- "SpeechToTextTranslateTranscriptionData": ".speech_to_text_translate_transcription_data",
180
- "SpokenFormNumeralsFormat": ".spoken_form_numerals_format",
181
- "StopConfiguration": ".stop_configuration",
182
- "StorageContainerType": ".storage_container_type",
183
- "SttFlushSignal": ".stt_flush_signal",
184
- "TaskDetailV1": ".task_detail_v_1",
185
- "TaskFileDetails": ".task_file_details",
186
- "TaskState": ".task_state",
187
- "TextToSpeechLanguage": ".text_to_speech_language",
188
- "TextToSpeechModel": ".text_to_speech_model",
189
- "TextToSpeechOutputAudioCodec": ".text_to_speech_output_audio_codec",
190
- "TextToSpeechResponse": ".text_to_speech_response",
191
- "TextToSpeechSpeaker": ".text_to_speech_speaker",
192
- "TimestampsModel": ".timestamps_model",
193
- "TranscriptionMetrics": ".transcription_metrics",
194
- "TranslateMode": ".translate_mode",
195
- "TranslateModel": ".translate_model",
196
- "TranslateSourceLanguage": ".translate_source_language",
197
- "TranslateSpeakerGender": ".translate_speaker_gender",
198
- "TranslateTargetLanguage": ".translate_target_language",
199
- "TranslationResponse": ".translation_response",
200
- "TranslatiterateTargetLanguage": ".translatiterate_target_language",
201
- "TransliterateMode": ".transliterate_mode",
202
- "TransliterateSourceLanguage": ".transliterate_source_language",
203
- "TransliterationResponse": ".transliteration_response",
204
- }
205
-
206
-
207
- def __getattr__(attr_name: str) -> typing.Any:
208
- module_name = _dynamic_imports.get(attr_name)
209
- if module_name is None:
210
- raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
211
- try:
212
- module = import_module(module_name, __package__)
213
- if module_name == f".{attr_name}":
214
- return module
215
- else:
216
- return getattr(module, attr_name)
217
- except ImportError as e:
218
- raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
219
- except AttributeError as e:
220
- raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
221
-
222
-
223
- def __dir__():
224
- lazy_attrs = list(_dynamic_imports.keys())
225
- return sorted(lazy_attrs)
226
-
5
+ from .audio_data import AudioData
6
+ from .audio_message import AudioMessage
7
+ from .audio_output import AudioOutput
8
+ from .audio_output_data import AudioOutputData
9
+ from .base_job_parameters import BaseJobParameters
10
+ from .bulk_job_callback import BulkJobCallback
11
+ from .bulk_job_init_response_v_1 import BulkJobInitResponseV1
12
+ from .chat_completion_request_assistant_message import ChatCompletionRequestAssistantMessage
13
+ from .chat_completion_request_message import (
14
+ ChatCompletionRequestMessage,
15
+ ChatCompletionRequestMessage_Assistant,
16
+ ChatCompletionRequestMessage_System,
17
+ ChatCompletionRequestMessage_User,
18
+ )
19
+ from .chat_completion_request_system_message import ChatCompletionRequestSystemMessage
20
+ from .chat_completion_request_user_message import ChatCompletionRequestUserMessage
21
+ from .chat_completion_response_message import ChatCompletionResponseMessage
22
+ from .choice import Choice
23
+ from .completion_event_flag import CompletionEventFlag
24
+ from .completion_usage import CompletionUsage
25
+ from .config_message import ConfigMessage
26
+ from .configure_connection import ConfigureConnection
27
+ from .configure_connection_data import ConfigureConnectionData
28
+ from .configure_connection_data_model import ConfigureConnectionDataModel
29
+ from .configure_connection_data_output_audio_bitrate import ConfigureConnectionDataOutputAudioBitrate
30
+ from .configure_connection_data_output_audio_codec import ConfigureConnectionDataOutputAudioCodec
31
+ from .configure_connection_data_speaker import ConfigureConnectionDataSpeaker
32
+ from .configure_connection_data_target_language_code import ConfigureConnectionDataTargetLanguageCode
33
+ from .connection_sample_rate import ConnectionSampleRate
34
+ from .create_chat_completion_response import CreateChatCompletionResponse
35
+ from .diarized_entry import DiarizedEntry
36
+ from .diarized_transcript import DiarizedTranscript
37
+ from .error_code import ErrorCode
38
+ from .error_data import ErrorData
39
+ from .error_details import ErrorDetails
40
+ from .error_message import ErrorMessage
41
+ from .error_response import ErrorResponse
42
+ from .error_response_data import ErrorResponseData
43
+ from .event_response import EventResponse
44
+ from .event_response_data import EventResponseData
45
+ from .events_data import EventsData
46
+ from .events_data_signal_type import EventsDataSignalType
47
+ from .file_signed_url_details import FileSignedUrlDetails
48
+ from .files_download_response import FilesDownloadResponse
49
+ from .files_request import FilesRequest
50
+ from .files_upload_response import FilesUploadResponse
51
+ from .finish_reason import FinishReason
52
+ from .flush_signal import FlushSignal
53
+ from .input_audio_codec import InputAudioCodec
54
+ from .job_state import JobState
55
+ from .job_status_v_1_response import JobStatusV1Response
56
+ from .language_identification_response import LanguageIdentificationResponse
57
+ from .mode import Mode
58
+ from .numerals_format import NumeralsFormat
59
+ from .ping_signal import PingSignal
60
+ from .reasoning_effort import ReasoningEffort
61
+ from .response_type import ResponseType
62
+ from .role import Role
63
+ from .sarvam_model_ids import SarvamModelIds
64
+ from .send_text import SendText
65
+ from .send_text_data import SendTextData
66
+ from .speech_sample_rate import SpeechSampleRate
67
+ from .speech_to_text_job_parameters import SpeechToTextJobParameters
68
+ from .speech_to_text_language import SpeechToTextLanguage
69
+ from .speech_to_text_model import SpeechToTextModel
70
+ from .speech_to_text_response import SpeechToTextResponse
71
+ from .speech_to_text_response_data import SpeechToTextResponseData
72
+ from .speech_to_text_streaming_response import SpeechToTextStreamingResponse
73
+ from .speech_to_text_transcription_data import SpeechToTextTranscriptionData
74
+ from .speech_to_text_translate_job_parameters import SpeechToTextTranslateJobParameters
75
+ from .speech_to_text_translate_language import SpeechToTextTranslateLanguage
76
+ from .speech_to_text_translate_model import SpeechToTextTranslateModel
77
+ from .speech_to_text_translate_response import SpeechToTextTranslateResponse
78
+ from .speech_to_text_translate_response_data import SpeechToTextTranslateResponseData
79
+ from .speech_to_text_translate_streaming_response import SpeechToTextTranslateStreamingResponse
80
+ from .speech_to_text_translate_transcription_data import SpeechToTextTranslateTranscriptionData
81
+ from .spoken_form_numerals_format import SpokenFormNumeralsFormat
82
+ from .stop_configuration import StopConfiguration
83
+ from .storage_container_type import StorageContainerType
84
+ from .stt_flush_signal import SttFlushSignal
85
+ from .task_detail_v_1 import TaskDetailV1
86
+ from .task_file_details import TaskFileDetails
87
+ from .task_state import TaskState
88
+ from .text_to_speech_language import TextToSpeechLanguage
89
+ from .text_to_speech_model import TextToSpeechModel
90
+ from .text_to_speech_output_audio_codec import TextToSpeechOutputAudioCodec
91
+ from .text_to_speech_response import TextToSpeechResponse
92
+ from .text_to_speech_speaker import TextToSpeechSpeaker
93
+ from .timestamps_model import TimestampsModel
94
+ from .transcription_metrics import TranscriptionMetrics
95
+ from .translate_mode import TranslateMode
96
+ from .translate_model import TranslateModel
97
+ from .translate_source_language import TranslateSourceLanguage
98
+ from .translate_speaker_gender import TranslateSpeakerGender
99
+ from .translate_target_language import TranslateTargetLanguage
100
+ from .translation_response import TranslationResponse
101
+ from .translatiterate_target_language import TranslatiterateTargetLanguage
102
+ from .transliterate_mode import TransliterateMode
103
+ from .transliterate_source_language import TransliterateSourceLanguage
104
+ from .transliteration_response import TransliterationResponse
227
105
 
228
106
  __all__ = [
229
107
  "AudioData",
@@ -247,6 +125,7 @@ __all__ = [
247
125
  "ConfigMessage",
248
126
  "ConfigureConnection",
249
127
  "ConfigureConnectionData",
128
+ "ConfigureConnectionDataModel",
250
129
  "ConfigureConnectionDataOutputAudioBitrate",
251
130
  "ConfigureConnectionDataOutputAudioCodec",
252
131
  "ConfigureConnectionDataSpeaker",
@@ -275,6 +154,7 @@ __all__ = [
275
154
  "JobState",
276
155
  "JobStatusV1Response",
277
156
  "LanguageIdentificationResponse",
157
+ "Mode",
278
158
  "NumeralsFormat",
279
159
  "PingSignal",
280
160
  "ReasoningEffort",
@@ -5,7 +5,6 @@ from __future__ import annotations
5
5
  import typing
6
6
 
7
7
  import pydantic
8
- import typing_extensions
9
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
10
9
 
11
10
 
@@ -51,9 +50,6 @@ class ChatCompletionRequestMessage_User(UniversalBaseModel):
51
50
  extra = pydantic.Extra.allow
52
51
 
53
52
 
54
- ChatCompletionRequestMessage = typing_extensions.Annotated[
55
- typing.Union[
56
- ChatCompletionRequestMessage_Assistant, ChatCompletionRequestMessage_System, ChatCompletionRequestMessage_User
57
- ],
58
- pydantic.Field(discriminator="role"),
53
+ ChatCompletionRequestMessage = typing.Union[
54
+ ChatCompletionRequestMessage_Assistant, ChatCompletionRequestMessage_System, ChatCompletionRequestMessage_User
59
55
  ]
@@ -13,6 +13,10 @@ class ConfigureConnection(UniversalBaseModel):
13
13
  This initializes TTS parameters and can be updated at any time during the WebSocket lifecycle
14
14
  by sending a new config message. When a config update is sent, any text currently in the buffer
15
15
  will be automatically flushed and processed before applying the new configuration.
16
+
17
+ **Model-Specific Notes:**
18
+ - **bulbul:v2:** Supports pitch, loudness, pace (0.3-3.0). Default sample rate: 22050 Hz.
19
+ - **bulbul:v3-beta:** Does NOT support pitch/loudness. Pace range: 0.5-2.0. Supports temperature. Default sample rate: 24000 Hz.
16
20
  """
17
21
 
18
22
  type: typing.Literal["config"] = "config"