sarvamai 0.1.20a2__py3-none-any.whl → 0.1.20a3__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.
sarvamai/__init__.py CHANGED
@@ -189,14 +189,12 @@ from .speech_to_text_streaming import (
189
189
  SpeechToTextStreamingHighVadSensitivity,
190
190
  SpeechToTextStreamingInputAudioCodec,
191
191
  SpeechToTextStreamingLanguageCode,
192
- SpeechToTextStreamingModel,
193
192
  SpeechToTextStreamingVadSignals,
194
193
  )
195
194
  from .speech_to_text_translate_streaming import (
196
195
  SpeechToTextTranslateStreamingFlushSignal,
197
196
  SpeechToTextTranslateStreamingHighVadSensitivity,
198
197
  SpeechToTextTranslateStreamingInputAudioCodec,
199
- SpeechToTextTranslateStreamingModel,
200
198
  SpeechToTextTranslateStreamingVadSignals,
201
199
  )
202
200
  from .text_to_speech_streaming import TextToSpeechStreamingSendCompletionEvent
@@ -322,7 +320,6 @@ __all__ = [
322
320
  "SpeechToTextStreamingHighVadSensitivity",
323
321
  "SpeechToTextStreamingInputAudioCodec",
324
322
  "SpeechToTextStreamingLanguageCode",
325
- "SpeechToTextStreamingModel",
326
323
  "SpeechToTextStreamingResponse",
327
324
  "SpeechToTextStreamingResponseParams",
328
325
  "SpeechToTextStreamingVadSignals",
@@ -339,7 +336,6 @@ __all__ = [
339
336
  "SpeechToTextTranslateStreamingFlushSignal",
340
337
  "SpeechToTextTranslateStreamingHighVadSensitivity",
341
338
  "SpeechToTextTranslateStreamingInputAudioCodec",
342
- "SpeechToTextTranslateStreamingModel",
343
339
  "SpeechToTextTranslateStreamingResponse",
344
340
  "SpeechToTextTranslateStreamingResponseParams",
345
341
  "SpeechToTextTranslateStreamingVadSignals",
@@ -23,10 +23,10 @@ class BaseClientWrapper:
23
23
 
24
24
  def get_headers(self) -> typing.Dict[str, str]:
25
25
  headers: typing.Dict[str, str] = {
26
- "User-Agent": "sarvamai/0.1.20a2",
26
+ "User-Agent": "sarvamai/0.1.20a3",
27
27
  "X-Fern-Language": "Python",
28
28
  "X-Fern-SDK-Name": "sarvamai",
29
- "X-Fern-SDK-Version": "0.1.20a2",
29
+ "X-Fern-SDK-Version": "0.1.20a3",
30
30
  **(self.get_custom_headers() or {}),
31
31
  }
32
32
  headers["api-subscription-key"] = self.api_subscription_key
sarvamai/play.py CHANGED
@@ -13,19 +13,52 @@ def is_installed(lib_name: str) -> bool:
13
13
 
14
14
 
15
15
  def play(
16
- audio: TextToSpeechResponse,
17
- notebook: bool = False,
18
- use_ffmpeg: bool = True
16
+ audio: TextToSpeechResponse, notebook: bool = False, use_ffmpeg: bool = True
19
17
  ) -> None:
20
- af_str = "".join(audio.audios)
21
- af_bytes = base64.b64decode(af_str)
18
+ # Iterate through all audio chunks and concatenate them properly
19
+ combined_audio_data = b""
20
+
21
+ for i, audio_chunk in enumerate(audio.audios):
22
+ # Decode each base64 chunk to get raw WAV data
23
+ chunk_data = base64.b64decode(audio_chunk)
24
+
25
+ if i == 0:
26
+ # For the first chunk, keep the entire WAV file
27
+ combined_audio_data = chunk_data
28
+ else:
29
+ # For subsequent chunks, find the data chunk and append only audio data
30
+ data_pos = chunk_data.find(b"data")
31
+ if data_pos != -1:
32
+ # Skip the 'data' header (8 bytes: 'data' + size)
33
+ audio_data_start = data_pos + 8
34
+ combined_audio_data += chunk_data[audio_data_start:]
35
+
36
+ # Update the WAV header with the correct total file size
37
+ if len(audio.audios) > 1:
38
+ # Update the RIFF chunk size (bytes 4-7)
39
+ total_size = len(combined_audio_data) - 8
40
+ combined_audio_data = (
41
+ combined_audio_data[:4]
42
+ + total_size.to_bytes(4, "little")
43
+ + combined_audio_data[8:]
44
+ )
45
+
46
+ # Update the data chunk size (find data chunk and update its size)
47
+ data_pos = combined_audio_data.find(b"data")
48
+ if data_pos != -1:
49
+ data_size = len(combined_audio_data) - data_pos - 8
50
+ combined_audio_data = (
51
+ combined_audio_data[: data_pos + 4]
52
+ + data_size.to_bytes(4, "little")
53
+ + combined_audio_data[data_pos + 8 :]
54
+ )
55
+
56
+ af_bytes = combined_audio_data
22
57
  if notebook:
23
58
  try:
24
59
  from IPython.display import Audio, display # type: ignore
25
60
  except ModuleNotFoundError:
26
- message = (
27
- "`pip install ipython` required when `notebook=False` "
28
- )
61
+ message = "`pip install ipython` required when `notebook=False` "
29
62
  raise ValueError(message)
30
63
 
31
64
  display(Audio(af_bytes, rate=22050, autoplay=True))
@@ -65,8 +98,43 @@ def play(
65
98
 
66
99
  def save(audio: TextToSpeechResponse, filename: str) -> None:
67
100
  if isinstance(audio.audios, list):
68
- combined_audio = "".join(audio.audios)
69
- b64_file = base64.b64decode(combined_audio)
101
+ # Iterate through all audio chunks and concatenate them properly
102
+ combined_audio_data = b""
103
+
104
+ for i, audio_chunk in enumerate(audio.audios):
105
+ # Decode each base64 chunk to get raw WAV data
106
+ chunk_data = base64.b64decode(audio_chunk)
107
+
108
+ if i == 0:
109
+ # For the first chunk, keep the entire WAV file
110
+ combined_audio_data = chunk_data
111
+ else:
112
+ # For subsequent chunks, find the data chunk and append only audio data
113
+ data_pos = chunk_data.find(b"data")
114
+ if data_pos != -1:
115
+ # Skip the 'data' header (8 bytes: 'data' + size)
116
+ audio_data_start = data_pos + 8
117
+ combined_audio_data += chunk_data[audio_data_start:]
118
+
119
+ # Update the WAV header with the correct total file size
120
+ if len(audio.audios) > 1:
121
+ # Update the RIFF chunk size (bytes 4-7)
122
+ total_size = len(combined_audio_data) - 8
123
+ combined_audio_data = (
124
+ combined_audio_data[:4]
125
+ + total_size.to_bytes(4, "little")
126
+ + combined_audio_data[8:]
127
+ )
128
+
129
+ # Update the data chunk size (find data chunk and update its size)
130
+ data_pos = combined_audio_data.find(b"data")
131
+ if data_pos != -1:
132
+ data_size = len(combined_audio_data) - data_pos - 8
133
+ combined_audio_data = (
134
+ combined_audio_data[: data_pos + 4]
135
+ + data_size.to_bytes(4, "little")
136
+ + combined_audio_data[data_pos + 8 :]
137
+ )
70
138
 
71
139
  with open(filename, "wb") as f:
72
- f.write(b64_file)
140
+ f.write(combined_audio_data)
@@ -13,3 +13,8 @@ class AudioOutputDataParams(typing_extensions.TypedDict):
13
13
  """
14
14
  Base64-encoded audio data ready for playback or download
15
15
  """
16
+
17
+ request_id: typing_extensions.NotRequired[str]
18
+ """
19
+ Unique identifier for the request
20
+ """
@@ -16,3 +16,8 @@ class ErrorResponseDataParams(typing_extensions.TypedDict):
16
16
  """
17
17
  Additional error details and context information
18
18
  """
19
+
20
+ request_id: typing_extensions.NotRequired[str]
21
+ """
22
+ Unique identifier for the request
23
+ """
@@ -7,7 +7,6 @@ from .types import (
7
7
  SpeechToTextStreamingHighVadSensitivity,
8
8
  SpeechToTextStreamingInputAudioCodec,
9
9
  SpeechToTextStreamingLanguageCode,
10
- SpeechToTextStreamingModel,
11
10
  SpeechToTextStreamingVadSignals,
12
11
  )
13
12
 
@@ -16,6 +15,5 @@ __all__ = [
16
15
  "SpeechToTextStreamingHighVadSensitivity",
17
16
  "SpeechToTextStreamingInputAudioCodec",
18
17
  "SpeechToTextStreamingLanguageCode",
19
- "SpeechToTextStreamingModel",
20
18
  "SpeechToTextStreamingVadSignals",
21
19
  ]
@@ -15,7 +15,6 @@ from .types.speech_to_text_streaming_flush_signal import SpeechToTextStreamingFl
15
15
  from .types.speech_to_text_streaming_high_vad_sensitivity import SpeechToTextStreamingHighVadSensitivity
16
16
  from .types.speech_to_text_streaming_input_audio_codec import SpeechToTextStreamingInputAudioCodec
17
17
  from .types.speech_to_text_streaming_language_code import SpeechToTextStreamingLanguageCode
18
- from .types.speech_to_text_streaming_model import SpeechToTextStreamingModel
19
18
  from .types.speech_to_text_streaming_vad_signals import SpeechToTextStreamingVadSignals
20
19
 
21
20
  try:
@@ -44,7 +43,7 @@ class SpeechToTextStreamingClient:
44
43
  self,
45
44
  *,
46
45
  language_code: SpeechToTextStreamingLanguageCode,
47
- model: typing.Optional[SpeechToTextStreamingModel] = None,
46
+ model: typing.Optional[typing.Literal["saarika:v2.5"]] = None,
48
47
  input_audio_codec: typing.Optional[SpeechToTextStreamingInputAudioCodec] = None,
49
48
  sample_rate: typing.Optional[str] = None,
50
49
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
@@ -61,7 +60,7 @@ class SpeechToTextStreamingClient:
61
60
  language_code : SpeechToTextStreamingLanguageCode
62
61
  Language code for speech recognition
63
62
 
64
- model : typing.Optional[SpeechToTextStreamingModel]
63
+ model : typing.Optional[typing.Literal["saarika:v2.5"]]
65
64
  Speech to text model to use
66
65
 
67
66
  input_audio_codec : typing.Optional[SpeechToTextStreamingInputAudioCodec]
@@ -149,7 +148,7 @@ class AsyncSpeechToTextStreamingClient:
149
148
  self,
150
149
  *,
151
150
  language_code: SpeechToTextStreamingLanguageCode,
152
- model: typing.Optional[SpeechToTextStreamingModel] = None,
151
+ model: typing.Optional[typing.Literal["saarika:v2.5"]] = None,
153
152
  input_audio_codec: typing.Optional[SpeechToTextStreamingInputAudioCodec] = None,
154
153
  sample_rate: typing.Optional[str] = None,
155
154
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
@@ -166,7 +165,7 @@ class AsyncSpeechToTextStreamingClient:
166
165
  language_code : SpeechToTextStreamingLanguageCode
167
166
  Language code for speech recognition
168
167
 
169
- model : typing.Optional[SpeechToTextStreamingModel]
168
+ model : typing.Optional[typing.Literal["saarika:v2.5"]]
170
169
  Speech to text model to use
171
170
 
172
171
  input_audio_codec : typing.Optional[SpeechToTextStreamingInputAudioCodec]
@@ -14,7 +14,6 @@ from .types.speech_to_text_streaming_flush_signal import SpeechToTextStreamingFl
14
14
  from .types.speech_to_text_streaming_high_vad_sensitivity import SpeechToTextStreamingHighVadSensitivity
15
15
  from .types.speech_to_text_streaming_input_audio_codec import SpeechToTextStreamingInputAudioCodec
16
16
  from .types.speech_to_text_streaming_language_code import SpeechToTextStreamingLanguageCode
17
- from .types.speech_to_text_streaming_model import SpeechToTextStreamingModel
18
17
  from .types.speech_to_text_streaming_vad_signals import SpeechToTextStreamingVadSignals
19
18
 
20
19
  try:
@@ -32,7 +31,7 @@ class RawSpeechToTextStreamingClient:
32
31
  self,
33
32
  *,
34
33
  language_code: SpeechToTextStreamingLanguageCode,
35
- model: typing.Optional[SpeechToTextStreamingModel] = None,
34
+ model: typing.Optional[typing.Literal["saarika:v2.5"]] = None,
36
35
  input_audio_codec: typing.Optional[SpeechToTextStreamingInputAudioCodec] = None,
37
36
  sample_rate: typing.Optional[str] = None,
38
37
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
@@ -49,7 +48,7 @@ class RawSpeechToTextStreamingClient:
49
48
  language_code : SpeechToTextStreamingLanguageCode
50
49
  Language code for speech recognition
51
50
 
52
- model : typing.Optional[SpeechToTextStreamingModel]
51
+ model : typing.Optional[typing.Literal["saarika:v2.5"]]
53
52
  Speech to text model to use
54
53
 
55
54
  input_audio_codec : typing.Optional[SpeechToTextStreamingInputAudioCodec]
@@ -126,7 +125,7 @@ class AsyncRawSpeechToTextStreamingClient:
126
125
  self,
127
126
  *,
128
127
  language_code: SpeechToTextStreamingLanguageCode,
129
- model: typing.Optional[SpeechToTextStreamingModel] = None,
128
+ model: typing.Optional[typing.Literal["saarika:v2.5"]] = None,
130
129
  input_audio_codec: typing.Optional[SpeechToTextStreamingInputAudioCodec] = None,
131
130
  sample_rate: typing.Optional[str] = None,
132
131
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
@@ -143,7 +142,7 @@ class AsyncRawSpeechToTextStreamingClient:
143
142
  language_code : SpeechToTextStreamingLanguageCode
144
143
  Language code for speech recognition
145
144
 
146
- model : typing.Optional[SpeechToTextStreamingModel]
145
+ model : typing.Optional[typing.Literal["saarika:v2.5"]]
147
146
  Speech to text model to use
148
147
 
149
148
  input_audio_codec : typing.Optional[SpeechToTextStreamingInputAudioCodec]
@@ -6,7 +6,6 @@ from .speech_to_text_streaming_flush_signal import SpeechToTextStreamingFlushSig
6
6
  from .speech_to_text_streaming_high_vad_sensitivity import SpeechToTextStreamingHighVadSensitivity
7
7
  from .speech_to_text_streaming_input_audio_codec import SpeechToTextStreamingInputAudioCodec
8
8
  from .speech_to_text_streaming_language_code import SpeechToTextStreamingLanguageCode
9
- from .speech_to_text_streaming_model import SpeechToTextStreamingModel
10
9
  from .speech_to_text_streaming_vad_signals import SpeechToTextStreamingVadSignals
11
10
 
12
11
  __all__ = [
@@ -14,6 +13,5 @@ __all__ = [
14
13
  "SpeechToTextStreamingHighVadSensitivity",
15
14
  "SpeechToTextStreamingInputAudioCodec",
16
15
  "SpeechToTextStreamingLanguageCode",
17
- "SpeechToTextStreamingModel",
18
16
  "SpeechToTextStreamingVadSignals",
19
17
  ]
@@ -6,7 +6,6 @@ from .types import (
6
6
  SpeechToTextTranslateStreamingFlushSignal,
7
7
  SpeechToTextTranslateStreamingHighVadSensitivity,
8
8
  SpeechToTextTranslateStreamingInputAudioCodec,
9
- SpeechToTextTranslateStreamingModel,
10
9
  SpeechToTextTranslateStreamingVadSignals,
11
10
  )
12
11
 
@@ -14,6 +13,5 @@ __all__ = [
14
13
  "SpeechToTextTranslateStreamingFlushSignal",
15
14
  "SpeechToTextTranslateStreamingHighVadSensitivity",
16
15
  "SpeechToTextTranslateStreamingInputAudioCodec",
17
- "SpeechToTextTranslateStreamingModel",
18
16
  "SpeechToTextTranslateStreamingVadSignals",
19
17
  ]
@@ -16,7 +16,6 @@ from .types.speech_to_text_translate_streaming_high_vad_sensitivity import (
16
16
  SpeechToTextTranslateStreamingHighVadSensitivity,
17
17
  )
18
18
  from .types.speech_to_text_translate_streaming_input_audio_codec import SpeechToTextTranslateStreamingInputAudioCodec
19
- from .types.speech_to_text_translate_streaming_model import SpeechToTextTranslateStreamingModel
20
19
  from .types.speech_to_text_translate_streaming_vad_signals import SpeechToTextTranslateStreamingVadSignals
21
20
 
22
21
  try:
@@ -44,7 +43,7 @@ class SpeechToTextTranslateStreamingClient:
44
43
  def connect(
45
44
  self,
46
45
  *,
47
- model: typing.Optional[SpeechToTextTranslateStreamingModel] = None,
46
+ model: typing.Optional[typing.Literal["saaras:v2.5"]] = None,
48
47
  input_audio_codec: typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec] = None,
49
48
  sample_rate: typing.Optional[str] = None,
50
49
  high_vad_sensitivity: typing.Optional[SpeechToTextTranslateStreamingHighVadSensitivity] = None,
@@ -58,7 +57,7 @@ class SpeechToTextTranslateStreamingClient:
58
57
 
59
58
  Parameters
60
59
  ----------
61
- model : typing.Optional[SpeechToTextTranslateStreamingModel]
60
+ model : typing.Optional[typing.Literal["saaras:v2.5"]]
62
61
  Speech to text model to use (defaults to "saaras:v2.5" if not specified)
63
62
 
64
63
  input_audio_codec : typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec]
@@ -143,7 +142,7 @@ class AsyncSpeechToTextTranslateStreamingClient:
143
142
  async def connect(
144
143
  self,
145
144
  *,
146
- model: typing.Optional[SpeechToTextTranslateStreamingModel] = None,
145
+ model: typing.Optional[typing.Literal["saaras:v2.5"]] = None,
147
146
  input_audio_codec: typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec] = None,
148
147
  sample_rate: typing.Optional[str] = None,
149
148
  high_vad_sensitivity: typing.Optional[SpeechToTextTranslateStreamingHighVadSensitivity] = None,
@@ -157,7 +156,7 @@ class AsyncSpeechToTextTranslateStreamingClient:
157
156
 
158
157
  Parameters
159
158
  ----------
160
- model : typing.Optional[SpeechToTextTranslateStreamingModel]
159
+ model : typing.Optional[typing.Literal["saaras:v2.5"]]
161
160
  Speech to text model to use (defaults to "saaras:v2.5" if not specified)
162
161
 
163
162
  input_audio_codec : typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec]
@@ -15,7 +15,6 @@ from .types.speech_to_text_translate_streaming_high_vad_sensitivity import (
15
15
  SpeechToTextTranslateStreamingHighVadSensitivity,
16
16
  )
17
17
  from .types.speech_to_text_translate_streaming_input_audio_codec import SpeechToTextTranslateStreamingInputAudioCodec
18
- from .types.speech_to_text_translate_streaming_model import SpeechToTextTranslateStreamingModel
19
18
  from .types.speech_to_text_translate_streaming_vad_signals import SpeechToTextTranslateStreamingVadSignals
20
19
 
21
20
  try:
@@ -32,7 +31,7 @@ class RawSpeechToTextTranslateStreamingClient:
32
31
  def connect(
33
32
  self,
34
33
  *,
35
- model: typing.Optional[SpeechToTextTranslateStreamingModel] = None,
34
+ model: typing.Optional[typing.Literal["saaras:v2.5"]] = None,
36
35
  input_audio_codec: typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec] = None,
37
36
  sample_rate: typing.Optional[str] = None,
38
37
  high_vad_sensitivity: typing.Optional[SpeechToTextTranslateStreamingHighVadSensitivity] = None,
@@ -46,7 +45,7 @@ class RawSpeechToTextTranslateStreamingClient:
46
45
 
47
46
  Parameters
48
47
  ----------
49
- model : typing.Optional[SpeechToTextTranslateStreamingModel]
48
+ model : typing.Optional[typing.Literal["saaras:v2.5"]]
50
49
  Speech to text model to use (defaults to "saaras:v2.5" if not specified)
51
50
 
52
51
  input_audio_codec : typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec]
@@ -120,7 +119,7 @@ class AsyncRawSpeechToTextTranslateStreamingClient:
120
119
  async def connect(
121
120
  self,
122
121
  *,
123
- model: typing.Optional[SpeechToTextTranslateStreamingModel] = None,
122
+ model: typing.Optional[typing.Literal["saaras:v2.5"]] = None,
124
123
  input_audio_codec: typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec] = None,
125
124
  sample_rate: typing.Optional[str] = None,
126
125
  high_vad_sensitivity: typing.Optional[SpeechToTextTranslateStreamingHighVadSensitivity] = None,
@@ -134,7 +133,7 @@ class AsyncRawSpeechToTextTranslateStreamingClient:
134
133
 
135
134
  Parameters
136
135
  ----------
137
- model : typing.Optional[SpeechToTextTranslateStreamingModel]
136
+ model : typing.Optional[typing.Literal["saaras:v2.5"]]
138
137
  Speech to text model to use (defaults to "saaras:v2.5" if not specified)
139
138
 
140
139
  input_audio_codec : typing.Optional[SpeechToTextTranslateStreamingInputAudioCodec]
@@ -5,13 +5,11 @@
5
5
  from .speech_to_text_translate_streaming_flush_signal import SpeechToTextTranslateStreamingFlushSignal
6
6
  from .speech_to_text_translate_streaming_high_vad_sensitivity import SpeechToTextTranslateStreamingHighVadSensitivity
7
7
  from .speech_to_text_translate_streaming_input_audio_codec import SpeechToTextTranslateStreamingInputAudioCodec
8
- from .speech_to_text_translate_streaming_model import SpeechToTextTranslateStreamingModel
9
8
  from .speech_to_text_translate_streaming_vad_signals import SpeechToTextTranslateStreamingVadSignals
10
9
 
11
10
  __all__ = [
12
11
  "SpeechToTextTranslateStreamingFlushSignal",
13
12
  "SpeechToTextTranslateStreamingHighVadSensitivity",
14
13
  "SpeechToTextTranslateStreamingInputAudioCodec",
15
- "SpeechToTextTranslateStreamingModel",
16
14
  "SpeechToTextTranslateStreamingVadSignals",
17
15
  ]
@@ -17,6 +17,11 @@ class AudioOutputData(UniversalBaseModel):
17
17
  Base64-encoded audio data ready for playback or download
18
18
  """
19
19
 
20
+ request_id: typing.Optional[str] = pydantic.Field(default=None)
21
+ """
22
+ Unique identifier for the request
23
+ """
24
+
20
25
  if IS_PYDANTIC_V2:
21
26
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
27
  else:
@@ -18,6 +18,11 @@ class ErrorResponseData(UniversalBaseModel):
18
18
  Additional error details and context information
19
19
  """
20
20
 
21
+ request_id: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ Unique identifier for the request
24
+ """
25
+
21
26
  if IS_PYDANTIC_V2:
22
27
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
28
  else:
@@ -2,6 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- SpeechToTextModel = typing.Union[
6
- typing.Literal["saarika:v1", "saarika:v2", "saarika:v2.5", "saarika:flash"], typing.Any
7
- ]
5
+ SpeechToTextModel = typing.Literal["saarika:v2.5"]
@@ -2,6 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- SpeechToTextTranslateModel = typing.Union[
6
- typing.Literal["saaras:v1", "saaras:v2", "saaras:v2.5", "saaras:flash"], typing.Any
7
- ]
5
+ SpeechToTextTranslateModel = typing.Literal["saaras:v2.5"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sarvamai
3
- Version: 0.1.20a2
3
+ Version: 0.1.20a3
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,11 +1,11 @@
1
- sarvamai/__init__.py,sha256=-HM4Xf9WWwFScK90X45K7GH1AHZL6w7UcIRVE7VULvo,11649
1
+ sarvamai/__init__.py,sha256=vI_MiA00kkNnsVNJmIFkf1o_-vLIp8SeNy4xdzjQ_wY,11499
2
2
  sarvamai/chat/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
3
3
  sarvamai/chat/client.py,sha256=xOSj83Gr6Q7eY2qUeATiuXYQqBqWqSCQlIEopK5fKus,11022
4
4
  sarvamai/chat/raw_client.py,sha256=A2kRuZcVWlJhyYCD7YKgqNkZEp3cYa1731KhRkhirU0,17885
5
5
  sarvamai/client.py,sha256=J30X_os1lPf8Wml0KDFEf6p8VGHhgF_lf3nw1T2D3qo,8207
6
6
  sarvamai/core/__init__.py,sha256=YE2CtXeASe1RAbaI39twKWYKCuT4tW5is9HWHhJjR_g,1653
7
7
  sarvamai/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
8
- sarvamai/core/client_wrapper.py,sha256=D7eRGB34pQjfZyeNkYsXDVv57r6OJy_CdPbbrpCFVng,2570
8
+ sarvamai/core/client_wrapper.py,sha256=ZSinVWwLcEoiBinSQsL_LCNa37D6WzIjGqnNN450h8I,2570
9
9
  sarvamai/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
10
10
  sarvamai/core/events.py,sha256=HvKBdSoYcFetk7cgNXb7FxuY-FtY8NtUhZIN7mGVx8U,1159
11
11
  sarvamai/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
@@ -26,13 +26,13 @@ sarvamai/errors/internal_server_error.py,sha256=t1-kpoDC2biEuoE-Ne8v1kuQswvsIEwt
26
26
  sarvamai/errors/service_unavailable_error.py,sha256=MIoOqruDBRDJtJJFK45O4_Xwjcwh4diwKbpHlqNQ-ZI,346
27
27
  sarvamai/errors/too_many_requests_error.py,sha256=Dl-_pfpboXJh-OtSbRaPQOB-UXvpVOElRDgjxbi4j7w,343
28
28
  sarvamai/errors/unprocessable_entity_error.py,sha256=JqxtzIhvjkpQDqbT9Q-go1n-gyv9PsYqq0ng_ZYyBMo,347
29
- sarvamai/play.py,sha256=4fh86zy8g8IPU2O8yPBY7QxXQOivv_nWQvPQsOa1arw,2183
29
+ sarvamai/play.py,sha256=FKsQ5nRq-nF8iVVwJIWb5i-1TCWku_vq989wBXOE6Yg,5190
30
30
  sarvamai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  sarvamai/requests/__init__.py,sha256=jL9z3hA1vtYkoCLOIlBUOmiE31WEyDtSC81jRhC6X8g,5865
32
32
  sarvamai/requests/audio_data.py,sha256=weVNgM3zaHim3a17qvXD5ayyhaJ8MnzWJWATOjRuhvM,1116
33
33
  sarvamai/requests/audio_message.py,sha256=ZBeogjGE6YFXXM-0g8zq9SoizDk21reR0YXSB-0fMjg,214
34
34
  sarvamai/requests/audio_output.py,sha256=BnoX345rwoWgaMaj24u_19-SjmPV0xt7vlFEEDKRw20,280
35
- sarvamai/requests/audio_output_data.py,sha256=v5s67mI1RNO20-C39lRXWpHgV13yOPXML1VrZHke9sY,349
35
+ sarvamai/requests/audio_output_data.py,sha256=6-pmWDr9U99xDB2Khw8r3W0Mt4oRo1jPEvHWqeeOR6s,455
36
36
  sarvamai/requests/base_job_parameters.py,sha256=5-DGqoCcIt5PM_-LO8hzuTqnuW5arxpEzimAmL9rLKM,161
37
37
  sarvamai/requests/bulk_job_callback.py,sha256=6MvZSY0l2lch9skJzy8qBpuZ9KJoLv3ZL7SYP2rNlUI,345
38
38
  sarvamai/requests/bulk_job_init_response_v_1.py,sha256=prWUzJ5x3pdOdInKqeVahKWYL5uvwf7gOlecgZU2qfE,524
@@ -53,7 +53,7 @@ sarvamai/requests/error_data.py,sha256=u87qHVagiqyyowBgMDAPPLlZzr0Z5GXlOU7VIUzfQ
53
53
  sarvamai/requests/error_details.py,sha256=By7cYfitQynAM1D5_3yFc22zXQJEceNgkhoyGWmg4zw,529
54
54
  sarvamai/requests/error_message.py,sha256=-J21pfEJghsms4pNe55O_9qkODNd-BKLMt96AOztYUs,257
55
55
  sarvamai/requests/error_response.py,sha256=A8j12JQ7JJkUcnt26k2M9uwXXkwyT-LNqG3BO3U8NIk,288
56
- sarvamai/requests/error_response_data.py,sha256=l9tGTykaKZ8pKxdw9RKitpW49kKcs4aGibH7rKG2v7w,461
56
+ sarvamai/requests/error_response_data.py,sha256=t-kD8EQAV8ZKB_S4r3BnNrWTJijsiK6mazX2m77KxkQ,567
57
57
  sarvamai/requests/event_response.py,sha256=Mk5lXlcmFmn50-99TWqLoLMuDl9pVT9B9JcOGaAZVZM,446
58
58
  sarvamai/requests/event_response_data.py,sha256=2IzBUllUSrbxU6-JS-CgdnImT6NT3Q7yh81tmn2g_7A,508
59
59
  sarvamai/requests/events_data.py,sha256=DgwSqyeFzL36i1z72mxKGP1qGjs27GpO1h9fL-ziWqo,728
@@ -93,30 +93,28 @@ sarvamai/speech_to_text_job/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23
93
93
  sarvamai/speech_to_text_job/client.py,sha256=WSGBJxYcNxl77Zd1X6VVWjg4zshqecXf6WCyhfLXVlI,18007
94
94
  sarvamai/speech_to_text_job/job.py,sha256=K8HOmwrYd6l82-MZfWDBmNkZeeERyg9YOihnFfvl-Js,15021
95
95
  sarvamai/speech_to_text_job/raw_client.py,sha256=OZTPzMhAn-ckE_xKzfZ9QLsEX5EZVOJS0Pf-PBa19jM,48200
96
- sarvamai/speech_to_text_streaming/__init__.py,sha256=l7yGZbLTVWVq63Y1mt_WuX2oyPiXDyc0E-BIonyPYP0,601
97
- sarvamai/speech_to_text_streaming/client.py,sha256=PqQfzgALEE8p-rpudmsGWR_lMlKy5SsCelQFqUpyzA8,11237
98
- sarvamai/speech_to_text_streaming/raw_client.py,sha256=Xzq4MSL7isxBa6JFqzd7U4knPNzauGiTVKNsXXaKsW4,10418
96
+ sarvamai/speech_to_text_streaming/__init__.py,sha256=-7nN6AJFryjSvGHVbajYEt-vni6kNDfJUiZJFNl_ao4,535
97
+ sarvamai/speech_to_text_streaming/client.py,sha256=s-0rKrNN5Phk7xR2WOGNoG6zSA00dd_3zBXEfVFdNqk,11176
98
+ sarvamai/speech_to_text_streaming/raw_client.py,sha256=Oe9dz6hBTRkdfIDUGHuDhuCqJooCGdM_hxc9Z2DFfqs,10357
99
99
  sarvamai/speech_to_text_streaming/socket_client.py,sha256=P6qXRN0s3UFAp6CP5lkqrW2KPK9me70ZVfWquxLB4wI,7538
100
- sarvamai/speech_to_text_streaming/types/__init__.py,sha256=6DNWJo4YFCAEqTC3hqEGBJwnDTaj48o0v_3vlVfdOAI,860
100
+ sarvamai/speech_to_text_streaming/types/__init__.py,sha256=_G5TSTthsnjGmwdV4fpsybjEWMMTNkh-kWXZjgK5X48,755
101
101
  sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_flush_signal.py,sha256=dDJOBlzAjhuiSVqW2RHHY1f6xy0DU_Yoo9UV8-7MjnA,173
102
102
  sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_high_vad_sensitivity.py,sha256=OwPwffa8TkLPGMnOTn5S7d-HmV8QmN3B7fHz8I1-VT8,180
103
103
  sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_input_audio_codec.py,sha256=yfINVbnoiAvhDskwVkpnFv10Q9SzU104oRJR-n__ugc,584
104
104
  sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_language_code.py,sha256=LxgEifmgWTCFZn9U-f-TWKxRPng3a2J26Zt526QrA0Y,267
105
- sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_model.py,sha256=b6F4ymgz4got6KVDqrweYvkET8itze63wUwWyjqDlO4,180
106
105
  sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_vad_signals.py,sha256=8wiFOB7WDMbYCcMTYgNFJaIjEytYeXpJLwr_O_mH0TI,172
107
106
  sarvamai/speech_to_text_translate_job/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
108
107
  sarvamai/speech_to_text_translate_job/client.py,sha256=xu8kYtCESDB7LzL8YKBUq5qhTPMIl3_H3XD2L_7y4UU,18969
109
108
  sarvamai/speech_to_text_translate_job/job.py,sha256=DU4k3eB28V8N16M_QEchakVng4IOul6_Qrdn3FumgHA,15208
110
109
  sarvamai/speech_to_text_translate_job/raw_client.py,sha256=dAitbu2B9afPK6iT9zNjUJnE5BIr5-lrAlwrfwFxdkU,49507
111
- sarvamai/speech_to_text_translate_streaming/__init__.py,sha256=_DvueqU3i0P_nIaCgPyfO0-I2dPkNZpamKpyB4nXPhU,611
112
- sarvamai/speech_to_text_translate_streaming/client.py,sha256=h7glgfA6bO5acuzz6yAZsdL0FyOj4Tq2HoSqG0FHZK0,11223
113
- sarvamai/speech_to_text_translate_streaming/raw_client.py,sha256=ArNbRV21MRZEmO6VDknYQDTdqfhK7h1lF8S_ucj5eM8,10332
110
+ sarvamai/speech_to_text_translate_streaming/__init__.py,sha256=s6HPwrkABpkhDSsd_t6pVRiWfY4MfVE0lVj9b4V_fx4,527
111
+ sarvamai/speech_to_text_translate_streaming/client.py,sha256=p8iZeb5cM8QfHIp_1Z36CLJLnkgn81wKCItLdy0-Mbc,11103
112
+ sarvamai/speech_to_text_translate_streaming/raw_client.py,sha256=N7BqiHl5nHIdR-fEq9B4l99aJL1UQ2CQpU6nHxM698M,10212
114
113
  sarvamai/speech_to_text_translate_streaming/socket_client.py,sha256=ipEPSj5eHAyDpuEXfaP7JJL1rXJXGEo-IB888ReAFKs,8901
115
- sarvamai/speech_to_text_translate_streaming/types/__init__.py,sha256=__-K5UkFN9kA_-6kw6ApPt616nPsu8L2GS5CiJILb28,873
114
+ sarvamai/speech_to_text_translate_streaming/types/__init__.py,sha256=nsKmvwkhcPekF9kcStDhTDilALFf2jT-wfCn25KVe7U,740
116
115
  sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_flush_signal.py,sha256=jkjvCGJ1pFKi3AOTkwMW-lo18WGgrgAhMpoe5P0AMzA,182
117
116
  sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_high_vad_sensitivity.py,sha256=r6MvTlkM0VEpb4dpnMHtINOZ-gYc22o0Fx_Xce2rjvo,189
118
117
  sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_input_audio_codec.py,sha256=IwO6IF9BQU5MpGWs7m-w0dV8yp__7s4y3L4hHDErBWM,593
119
- sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_model.py,sha256=6B8VxkpJG_pNprCSctseDtJb_ULVdKrPaeENkQ6Jvjg,187
120
118
  sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_vad_signals.py,sha256=EV3xd9qyKMnMvA9rO-qFDDIac4b84roBu7n-maaPxG8,181
121
119
  sarvamai/text/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
122
120
  sarvamai/text/client.py,sha256=2kA0Gxfi-r52zMQdqRRD811014alzlHB_FANkp3Kn_c,30595
@@ -135,7 +133,7 @@ sarvamai/types/audio_data.py,sha256=g-sQcFXiV0uFAsUJ_TjM3OSnPoCUmNkMORRJHOl152k,
135
133
  sarvamai/types/audio_data_input_audio_codec.py,sha256=Xb3UEr2wTniW0z8ND4iV051YHhgFazIFOd7q7UGH3nY,572
136
134
  sarvamai/types/audio_message.py,sha256=sB4EgkWkWJzipYXobkmM9AYZTTZtCpg_ySKssUeznUE,560
137
135
  sarvamai/types/audio_output.py,sha256=Eq-YUZa1mSDwt7bax2c4Vv2gBlyM_JBJWzHhTAhFSko,621
138
- sarvamai/types/audio_output_data.py,sha256=Og-yoeYzL--9G0-HATRe_M_XkKP6uLWuc1Qxbjte8LI,745
136
+ sarvamai/types/audio_output_data.py,sha256=WMT8W_48uhosfvLOmyyfnCxPKMlgPFDfi3tjjgW8jFY,868
139
137
  sarvamai/types/base_job_parameters.py,sha256=x-6SDzT2JxsGNUNuMskw8drWj6UwqgCaeo33XrlgKvo,509
140
138
  sarvamai/types/bulk_job_callback.py,sha256=mEpKCadWIqZhXlaJztnAhGmydln_6ykvEotFGEQ0RtI,739
141
139
  sarvamai/types/bulk_job_init_response_v_1.py,sha256=iYr_jSp443R1IoQdlLtDK6f78z2x-47feBnhUXCdWBU,894
@@ -163,7 +161,7 @@ sarvamai/types/error_data.py,sha256=gdlrdKLkfgGoe-znCCfWTikKlf07iZy1l4lgPyZTPwE,
163
161
  sarvamai/types/error_details.py,sha256=Faggc5PWERfCN2d9E5JzsEMNq9XSnoPTEdgi0lL8ea0,935
164
162
  sarvamai/types/error_message.py,sha256=i_vDykKyMlkWLhJCpMAeYI1NzRDFsW2CTU4-mzdBAfE,622
165
163
  sarvamai/types/error_response.py,sha256=3m17Aj3GY_-mSY2lH-GkbuiyewTm-wNL9UQ1exLvXyQ,629
166
- sarvamai/types/error_response_data.py,sha256=hncN_zmPg8kqSHjNciYLn2QeNqzqHxKiZDlKOvjKdwA,838
164
+ sarvamai/types/error_response_data.py,sha256=3OzlX46boFwfUVh6nBZRzRbf_Z3EcY4CBqT9MWk9fPw,961
167
165
  sarvamai/types/event_response.py,sha256=95pQQ8NApQ0jCRO4045vvW_GfnEkuecgptXmCMeR5fE,811
168
166
  sarvamai/types/event_response_data.py,sha256=tbyMxPhcC3MRWtgxKWF1VC1g_jmW5S0x0mUMARVbrmw,919
169
167
  sarvamai/types/events_data.py,sha256=9Gt9CuKF9Y9LmidxAxqTaE2SJgRhEIV_5Nk7X_S-HgU,1146
@@ -189,14 +187,14 @@ sarvamai/types/send_text_data.py,sha256=H8yfcvd4gvyN34RrZ9i4qQvieednNBhL7i7isX4a
189
187
  sarvamai/types/speech_sample_rate.py,sha256=Hfi79KL2Y1W7OIvvrfWnt7EUvmU5i7bxYvXivrY_aUA,88
190
188
  sarvamai/types/speech_to_text_job_parameters.py,sha256=J2DL2Q-Wzjk7vbPklbVWwn05uDfupCtQ97O32ttJa68,1438
191
189
  sarvamai/types/speech_to_text_language.py,sha256=cq8FBOX0DfYB3v8jgNteQtHeJcqWqzKWJVyYGwwo_w0,279
192
- sarvamai/types/speech_to_text_model.py,sha256=cYANeE-1Kjdpju97bLdQa8GuGqMBn0hVK4McFVqUGT0,208
190
+ sarvamai/types/speech_to_text_model.py,sha256=DSnGHPpIT-OyRv1bpy1xqEoLw90MTKyDgc9JIPe-ycI,131
193
191
  sarvamai/types/speech_to_text_response.py,sha256=iWRGEJeHUFIOxeEhoCQu68njeA6lcqXbT2czV-O8Wx0,1438
194
192
  sarvamai/types/speech_to_text_response_data.py,sha256=gbxZTBSjbN3ZIa10K6tWPYtymcpnQTFIaUnXkOmsmD4,322
195
193
  sarvamai/types/speech_to_text_streaming_response.py,sha256=z6tVAHbVK9lC3w3lac__LEUfO8AAzEilkeGlaLskTtc,687
196
194
  sarvamai/types/speech_to_text_transcription_data.py,sha256=EqwPAPSi98PwARaTj-ufzFUSHyN-NPoPla5vi_KERrU,1297
197
195
  sarvamai/types/speech_to_text_translate_job_parameters.py,sha256=fvfcyzIyT0DtcRYePDvglHH-wAhGbsi3H5G4i5nuWT8,1409
198
196
  sarvamai/types/speech_to_text_translate_language.py,sha256=yikNM-roIumVG-eqBWss93wLGudZdLPwd0i3VcXH5zo,263
199
- sarvamai/types/speech_to_text_translate_model.py,sha256=hxKnhnelhH5Ah8QO5SymTJMnDw_WWAhGDJnutoNk3qw,213
197
+ sarvamai/types/speech_to_text_translate_model.py,sha256=CVSz6gJBY82GhhEuWSdzRLJW9XTsAgweRnKd1tN6mXo,139
200
198
  sarvamai/types/speech_to_text_translate_response.py,sha256=Z5Na7IQW2ok3TP21xd-jKkwioplEKfonNIMhoJQKkVw,1278
201
199
  sarvamai/types/speech_to_text_translate_response_data.py,sha256=_NlLVp7oQU3em_4E47QVbIP9nromPE07Z9HtMpY1lrU,359
202
200
  sarvamai/types/speech_to_text_translate_streaming_response.py,sha256=J6h3AGdAJxpODFs30bR-e6OaWKa__oVhwv_TrbPSO98,724
@@ -226,6 +224,6 @@ sarvamai/types/transliterate_mode.py,sha256=1jSEMlGcoLkWuk12TgoOpSgwifa4rThGKZ1h
226
224
  sarvamai/types/transliterate_source_language.py,sha256=bSY9wJszF0sg-Cgg6F-YcWC8ly1mIlj9rqa15-jBtx8,283
227
225
  sarvamai/types/transliteration_response.py,sha256=yt-lzTbDeJ_ZL4I8kQa6oESxA9ebeJJY7LfFHpdEsmM,815
228
226
  sarvamai/version.py,sha256=Qkp3Ee9YH-O9RTix90e0i7iNrFAGN-QDt2AFwGA4n8k,75
229
- sarvamai-0.1.20a2.dist-info/METADATA,sha256=rkzd5nbL4TTzCYJKm6IxRabaXKiC0Z39Z_xC87ekRi8,26753
230
- sarvamai-0.1.20a2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
231
- sarvamai-0.1.20a2.dist-info/RECORD,,
227
+ sarvamai-0.1.20a3.dist-info/METADATA,sha256=m3M5A9uBZCGLv8cidbPuqOpJOyOgna77JiJAzq6eGR0,26753
228
+ sarvamai-0.1.20a3.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
229
+ sarvamai-0.1.20a3.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- SpeechToTextStreamingModel = typing.Union[typing.Literal["saarika:v2.5", "saarika:v2"], typing.Any]
@@ -1,5 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- SpeechToTextTranslateStreamingModel = typing.Union[typing.Literal["saaras:v2.5", "saaras:v2"], typing.Any]