sarvamai 0.1.22a3__tar.gz → 0.1.22a4__tar.gz

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 (233) hide show
  1. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/PKG-INFO +1 -1
  2. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/pyproject.toml +1 -1
  3. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/__init__.py +0 -6
  4. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/client_wrapper.py +2 -2
  5. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_transcription_data.py +0 -6
  6. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_translate_transcription_data.py +0 -6
  7. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_job/job.py +100 -2
  8. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_job/raw_client.py +14 -10
  9. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/__init__.py +0 -2
  10. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/client.py +0 -31
  11. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/raw_client.py +0 -31
  12. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/__init__.py +0 -2
  13. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_job/job.py +100 -2
  14. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_job/raw_client.py +14 -10
  15. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/__init__.py +0 -2
  16. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/client.py +0 -31
  17. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/raw_client.py +0 -31
  18. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/types/__init__.py +0 -4
  19. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/__init__.py +0 -2
  20. sarvamai-0.1.22a4/src/sarvamai/types/completion_event_flag.py +5 -0
  21. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_transcription_data.py +0 -6
  22. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_transcription_data.py +0 -6
  23. sarvamai-0.1.22a3/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_stream_ongoing_speech_results.py +0 -5
  24. sarvamai-0.1.22a3/src/sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_stream_ongoing_speech_results.py +0 -5
  25. sarvamai-0.1.22a3/src/sarvamai/types/completion_event_flag.py +0 -3
  26. sarvamai-0.1.22a3/src/sarvamai/types/response_speech_state.py +0 -7
  27. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/README.md +0 -0
  28. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/chat/__init__.py +0 -0
  29. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/chat/client.py +0 -0
  30. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/chat/raw_client.py +0 -0
  31. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/client.py +0 -0
  32. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/__init__.py +0 -0
  33. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/api_error.py +0 -0
  34. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/datetime_utils.py +0 -0
  35. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/events.py +0 -0
  36. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/file.py +0 -0
  37. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/force_multipart.py +0 -0
  38. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/http_client.py +0 -0
  39. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/http_response.py +0 -0
  40. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/jsonable_encoder.py +0 -0
  41. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/pydantic_utilities.py +0 -0
  42. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/query_encoder.py +0 -0
  43. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/remove_none_from_dict.py +0 -0
  44. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/request_options.py +0 -0
  45. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/core/serialization.py +0 -0
  46. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/environment.py +0 -0
  47. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/__init__.py +0 -0
  48. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/bad_request_error.py +0 -0
  49. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/forbidden_error.py +0 -0
  50. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/internal_server_error.py +0 -0
  51. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/service_unavailable_error.py +0 -0
  52. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/too_many_requests_error.py +0 -0
  53. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/errors/unprocessable_entity_error.py +0 -0
  54. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/play.py +0 -0
  55. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/py.typed +0 -0
  56. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/__init__.py +0 -0
  57. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/audio_data.py +0 -0
  58. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/audio_message.py +0 -0
  59. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/audio_output.py +0 -0
  60. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/audio_output_data.py +0 -0
  61. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/base_job_parameters.py +0 -0
  62. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/bulk_job_callback.py +0 -0
  63. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/bulk_job_init_response_v_1.py +0 -0
  64. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/chat_completion_request_assistant_message.py +0 -0
  65. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/chat_completion_request_message.py +0 -0
  66. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/chat_completion_request_system_message.py +0 -0
  67. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/chat_completion_request_user_message.py +0 -0
  68. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/chat_completion_response_message.py +0 -0
  69. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/choice.py +0 -0
  70. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/completion_usage.py +0 -0
  71. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/config_message.py +0 -0
  72. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/configure_connection.py +0 -0
  73. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/configure_connection_data.py +0 -0
  74. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/create_chat_completion_response.py +0 -0
  75. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/diarized_entry.py +0 -0
  76. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/diarized_transcript.py +0 -0
  77. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/error_data.py +0 -0
  78. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/error_details.py +0 -0
  79. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/error_message.py +0 -0
  80. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/error_response.py +0 -0
  81. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/error_response_data.py +0 -0
  82. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/event_response.py +0 -0
  83. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/event_response_data.py +0 -0
  84. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/events_data.py +0 -0
  85. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/file_signed_url_details.py +0 -0
  86. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/files_download_response.py +0 -0
  87. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/files_request.py +0 -0
  88. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/files_upload_response.py +0 -0
  89. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/flush_signal.py +0 -0
  90. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/job_status_v_1_response.py +0 -0
  91. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/language_identification_response.py +0 -0
  92. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/ping_signal.py +0 -0
  93. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/send_text.py +0 -0
  94. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/send_text_data.py +0 -0
  95. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_job_parameters.py +0 -0
  96. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_response.py +0 -0
  97. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_response_data.py +0 -0
  98. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_streaming_response.py +0 -0
  99. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_translate_job_parameters.py +0 -0
  100. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_translate_response.py +0 -0
  101. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_translate_response_data.py +0 -0
  102. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/speech_to_text_translate_streaming_response.py +0 -0
  103. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/stop_configuration.py +0 -0
  104. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/stt_flush_signal.py +0 -0
  105. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/task_detail_v_1.py +0 -0
  106. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/task_file_details.py +0 -0
  107. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/text_to_speech_response.py +0 -0
  108. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/timestamps_model.py +0 -0
  109. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/transcription_metrics.py +0 -0
  110. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/translation_response.py +0 -0
  111. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/requests/transliteration_response.py +0 -0
  112. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text/__init__.py +0 -0
  113. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text/client.py +0 -0
  114. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text/raw_client.py +0 -0
  115. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_job/__init__.py +0 -0
  116. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_job/client.py +0 -0
  117. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/socket_client.py +0 -0
  118. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_flush_signal.py +0 -0
  119. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_high_vad_sensitivity.py +0 -0
  120. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_input_audio_codec.py +0 -0
  121. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_language_code.py +0 -0
  122. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_streaming/types/speech_to_text_streaming_vad_signals.py +0 -0
  123. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_job/__init__.py +0 -0
  124. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_job/client.py +0 -0
  125. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/socket_client.py +0 -0
  126. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_flush_signal.py +0 -0
  127. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_high_vad_sensitivity.py +0 -0
  128. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_input_audio_codec.py +0 -0
  129. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/speech_to_text_translate_streaming/types/speech_to_text_translate_streaming_vad_signals.py +0 -0
  130. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text/__init__.py +0 -0
  131. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text/client.py +0 -0
  132. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text/raw_client.py +0 -0
  133. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech/__init__.py +0 -0
  134. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech/client.py +0 -0
  135. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech/raw_client.py +0 -0
  136. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/__init__.py +0 -0
  137. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/client.py +0 -0
  138. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/raw_client.py +0 -0
  139. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/socket_client.py +0 -0
  140. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/types/__init__.py +0 -0
  141. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/text_to_speech_streaming/types/text_to_speech_streaming_send_completion_event.py +0 -0
  142. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/audio_data.py +0 -0
  143. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/audio_data_input_audio_codec.py +0 -0
  144. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/audio_message.py +0 -0
  145. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/audio_output.py +0 -0
  146. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/audio_output_data.py +0 -0
  147. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/base_job_parameters.py +0 -0
  148. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/bulk_job_callback.py +0 -0
  149. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/bulk_job_init_response_v_1.py +0 -0
  150. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/chat_completion_request_assistant_message.py +0 -0
  151. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/chat_completion_request_message.py +0 -0
  152. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/chat_completion_request_system_message.py +0 -0
  153. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/chat_completion_request_user_message.py +0 -0
  154. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/chat_completion_response_message.py +0 -0
  155. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/choice.py +0 -0
  156. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/completion_usage.py +0 -0
  157. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/config_message.py +0 -0
  158. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection.py +0 -0
  159. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection_data.py +0 -0
  160. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection_data_output_audio_bitrate.py +0 -0
  161. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection_data_output_audio_codec.py +0 -0
  162. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection_data_speaker.py +0 -0
  163. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/configure_connection_data_target_language_code.py +0 -0
  164. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/connection_sample_rate.py +0 -0
  165. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/create_chat_completion_response.py +0 -0
  166. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/diarized_entry.py +0 -0
  167. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/diarized_transcript.py +0 -0
  168. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_code.py +0 -0
  169. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_data.py +0 -0
  170. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_details.py +0 -0
  171. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_message.py +0 -0
  172. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_response.py +0 -0
  173. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/error_response_data.py +0 -0
  174. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/event_response.py +0 -0
  175. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/event_response_data.py +0 -0
  176. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/events_data.py +0 -0
  177. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/events_data_signal_type.py +0 -0
  178. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/file_signed_url_details.py +0 -0
  179. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/files_download_response.py +0 -0
  180. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/files_request.py +0 -0
  181. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/files_upload_response.py +0 -0
  182. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/finish_reason.py +0 -0
  183. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/flush_signal.py +0 -0
  184. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/input_audio_codec.py +0 -0
  185. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/job_state.py +0 -0
  186. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/job_status_v_1_response.py +0 -0
  187. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/language_identification_response.py +0 -0
  188. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/numerals_format.py +0 -0
  189. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/ping_signal.py +0 -0
  190. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/reasoning_effort.py +0 -0
  191. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/response_type.py +0 -0
  192. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/role.py +0 -0
  193. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/sarvam_model_ids.py +0 -0
  194. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/send_text.py +0 -0
  195. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/send_text_data.py +0 -0
  196. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_sample_rate.py +0 -0
  197. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_job_parameters.py +0 -0
  198. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_language.py +0 -0
  199. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_model.py +0 -0
  200. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_response.py +0 -0
  201. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_response_data.py +0 -0
  202. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_streaming_response.py +0 -0
  203. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_job_parameters.py +0 -0
  204. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_language.py +0 -0
  205. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_model.py +0 -0
  206. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_response.py +0 -0
  207. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_response_data.py +0 -0
  208. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/speech_to_text_translate_streaming_response.py +0 -0
  209. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/spoken_form_numerals_format.py +0 -0
  210. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/stop_configuration.py +0 -0
  211. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/storage_container_type.py +0 -0
  212. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/stt_flush_signal.py +0 -0
  213. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/task_detail_v_1.py +0 -0
  214. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/task_file_details.py +0 -0
  215. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/task_state.py +0 -0
  216. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/text_to_speech_language.py +0 -0
  217. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/text_to_speech_model.py +0 -0
  218. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/text_to_speech_output_audio_codec.py +0 -0
  219. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/text_to_speech_response.py +0 -0
  220. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/text_to_speech_speaker.py +0 -0
  221. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/timestamps_model.py +0 -0
  222. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/transcription_metrics.py +0 -0
  223. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translate_mode.py +0 -0
  224. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translate_model.py +0 -0
  225. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translate_source_language.py +0 -0
  226. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translate_speaker_gender.py +0 -0
  227. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translate_target_language.py +0 -0
  228. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translation_response.py +0 -0
  229. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/translatiterate_target_language.py +0 -0
  230. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/transliterate_mode.py +0 -0
  231. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/transliterate_source_language.py +0 -0
  232. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/types/transliteration_response.py +0 -0
  233. {sarvamai-0.1.22a3 → sarvamai-0.1.22a4}/src/sarvamai/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sarvamai
3
- Version: 0.1.22a3
3
+ Version: 0.1.22a4
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -3,7 +3,7 @@ name = "sarvamai"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "sarvamai"
6
- version = "0.1.22a3"
6
+ version = "0.1.22a4"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -56,7 +56,6 @@ from .types import (
56
56
  NumeralsFormat,
57
57
  PingSignal,
58
58
  ReasoningEffort,
59
- ResponseSpeechState,
60
59
  ResponseType,
61
60
  Role,
62
61
  SarvamModelIds,
@@ -190,14 +189,12 @@ from .speech_to_text_streaming import (
190
189
  SpeechToTextStreamingHighVadSensitivity,
191
190
  SpeechToTextStreamingInputAudioCodec,
192
191
  SpeechToTextStreamingLanguageCode,
193
- SpeechToTextStreamingStreamOngoingSpeechResults,
194
192
  SpeechToTextStreamingVadSignals,
195
193
  )
196
194
  from .speech_to_text_translate_streaming import (
197
195
  SpeechToTextTranslateStreamingFlushSignal,
198
196
  SpeechToTextTranslateStreamingHighVadSensitivity,
199
197
  SpeechToTextTranslateStreamingInputAudioCodec,
200
- SpeechToTextTranslateStreamingStreamOngoingSpeechResults,
201
198
  SpeechToTextTranslateStreamingVadSignals,
202
199
  )
203
200
  from .text_to_speech_streaming import TextToSpeechStreamingSendCompletionEvent
@@ -300,7 +297,6 @@ __all__ = [
300
297
  "PingSignal",
301
298
  "PingSignalParams",
302
299
  "ReasoningEffort",
303
- "ResponseSpeechState",
304
300
  "ResponseType",
305
301
  "Role",
306
302
  "SarvamAI",
@@ -326,7 +322,6 @@ __all__ = [
326
322
  "SpeechToTextStreamingLanguageCode",
327
323
  "SpeechToTextStreamingResponse",
328
324
  "SpeechToTextStreamingResponseParams",
329
- "SpeechToTextStreamingStreamOngoingSpeechResults",
330
325
  "SpeechToTextStreamingVadSignals",
331
326
  "SpeechToTextTranscriptionData",
332
327
  "SpeechToTextTranscriptionDataParams",
@@ -343,7 +338,6 @@ __all__ = [
343
338
  "SpeechToTextTranslateStreamingInputAudioCodec",
344
339
  "SpeechToTextTranslateStreamingResponse",
345
340
  "SpeechToTextTranslateStreamingResponseParams",
346
- "SpeechToTextTranslateStreamingStreamOngoingSpeechResults",
347
341
  "SpeechToTextTranslateStreamingVadSignals",
348
342
  "SpeechToTextTranslateTranscriptionData",
349
343
  "SpeechToTextTranslateTranscriptionDataParams",
@@ -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.22a3",
26
+ "User-Agent": "sarvamai/0.1.22a4",
27
27
  "X-Fern-Language": "Python",
28
28
  "X-Fern-SDK-Name": "sarvamai",
29
- "X-Fern-SDK-Version": "0.1.22a3",
29
+ "X-Fern-SDK-Version": "0.1.22a4",
30
30
  **(self.get_custom_headers() or {}),
31
31
  }
32
32
  headers["api-subscription-key"] = self.api_subscription_key
@@ -3,7 +3,6 @@
3
3
  import typing
4
4
 
5
5
  import typing_extensions
6
- from ..types.response_speech_state import ResponseSpeechState
7
6
  from .transcription_metrics import TranscriptionMetricsParams
8
7
 
9
8
 
@@ -33,9 +32,4 @@ class SpeechToTextTranscriptionDataParams(typing_extensions.TypedDict):
33
32
  BCP-47 code of detected language
34
33
  """
35
34
 
36
- response_speech_state: typing_extensions.NotRequired[ResponseSpeechState]
37
- """
38
- Current state of speech detection and processing
39
- """
40
-
41
35
  metrics: TranscriptionMetricsParams
@@ -1,7 +1,6 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing_extensions
4
- from ..types.response_speech_state import ResponseSpeechState
5
4
  from .transcription_metrics import TranscriptionMetricsParams
6
5
 
7
6
 
@@ -21,9 +20,4 @@ class SpeechToTextTranslateTranscriptionDataParams(typing_extensions.TypedDict):
21
20
  BCP-47 code of detected source language (null when language detection is in progress)
22
21
  """
23
22
 
24
- response_speech_state: typing_extensions.NotRequired[ResponseSpeechState]
25
- """
26
- Current state of speech detection and processing
27
- """
28
-
29
23
  metrics: TranscriptionMetricsParams
@@ -146,9 +146,58 @@ class AsyncSpeechToTextJob:
146
146
  "output_file": detail.outputs[0].file_name,
147
147
  }
148
148
  for detail in (job_status.job_details or [])
149
- if detail.inputs and detail.outputs
149
+ if detail.inputs and detail.outputs and detail.state == "Success"
150
150
  ]
151
151
 
152
+ async def get_file_results(
153
+ self,
154
+ ) -> typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]]:
155
+ """
156
+ Get detailed results for each file in the batch job.
157
+
158
+ Returns
159
+ -------
160
+ Dict[str, List[Dict[str, Any]]]
161
+ Dictionary with 'successful' and 'failed' keys, each containing a list of file details.
162
+ Each file detail includes:
163
+ - 'file_name': Name of the input file
164
+ - 'status': Status of processing ('Success' or 'Failed')
165
+ - 'error_message': Error message if failed (None if successful)
166
+ - 'output_file': Name of output file if successful (None if failed)
167
+ """
168
+ job_status = await self.get_status()
169
+ results: typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]] = {
170
+ "successful": [],
171
+ "failed": [],
172
+ }
173
+
174
+ for detail in job_status.job_details or []:
175
+ # Check for empty lists explicitly
176
+ if not detail.inputs or len(detail.inputs) == 0:
177
+ continue
178
+
179
+ try:
180
+ file_info = {
181
+ "file_name": detail.inputs[0].file_name,
182
+ "status": detail.state,
183
+ "error_message": detail.error_message,
184
+ "output_file": (
185
+ detail.outputs[0].file_name
186
+ if detail.outputs and len(detail.outputs) > 0
187
+ else None
188
+ ),
189
+ }
190
+
191
+ if detail.state == "Success":
192
+ results["successful"].append(file_info)
193
+ else:
194
+ results["failed"].append(file_info)
195
+ except (IndexError, AttributeError):
196
+ # Skip malformed job details
197
+ continue
198
+
199
+ return results
200
+
152
201
  async def download_outputs(self, output_dir: str) -> bool:
153
202
  """
154
203
  Download output files to the specified directory.
@@ -387,9 +436,58 @@ class SpeechToTextJob:
387
436
  "output_file": detail.outputs[0].file_name,
388
437
  }
389
438
  for detail in (job_status.job_details or [])
390
- if detail.inputs and detail.outputs
439
+ if detail.inputs and detail.outputs and detail.state == "Success"
391
440
  ]
392
441
 
442
+ def get_file_results(
443
+ self,
444
+ ) -> typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]]:
445
+ """
446
+ Get detailed results for each file in the batch job.
447
+
448
+ Returns
449
+ -------
450
+ Dict[str, List[Dict[str, Any]]]
451
+ Dictionary with 'successful' and 'failed' keys, each containing a list of file details.
452
+ Each file detail includes:
453
+ - 'file_name': Name of the input file
454
+ - 'status': Status of processing ('Success' or 'Failed')
455
+ - 'error_message': Error message if failed (None if successful)
456
+ - 'output_file': Name of output file if successful (None if failed)
457
+ """
458
+ job_status = self.get_status()
459
+ results: typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]] = {
460
+ "successful": [],
461
+ "failed": [],
462
+ }
463
+
464
+ for detail in job_status.job_details or []:
465
+ # Check for empty lists explicitly
466
+ if not detail.inputs or len(detail.inputs) == 0:
467
+ continue
468
+
469
+ try:
470
+ file_info = {
471
+ "file_name": detail.inputs[0].file_name,
472
+ "status": detail.state,
473
+ "error_message": detail.error_message,
474
+ "output_file": (
475
+ detail.outputs[0].file_name
476
+ if detail.outputs and len(detail.outputs) > 0
477
+ else None
478
+ ),
479
+ }
480
+
481
+ if detail.state == "Success":
482
+ results["successful"].append(file_info)
483
+ else:
484
+ results["failed"].append(file_info)
485
+ except (IndexError, AttributeError):
486
+ # Skip malformed job details
487
+ continue
488
+
489
+ return results
490
+
393
491
  def download_outputs(self, output_dir: str) -> bool:
394
492
  """
395
493
  Download output files to the specified directory.
@@ -39,7 +39,7 @@ class RawSpeechToTextJobClient:
39
39
  request_options: typing.Optional[RequestOptions] = None,
40
40
  ) -> HttpResponse[BulkJobInitResponseV1]:
41
41
  """
42
- Get a job uuid, and storage folder details for speech to text bulk job v1
42
+ Create a new speech to text bulk job and receive a job UUID and storage folder details for processing multiple audio files
43
43
 
44
44
  Parameters
45
45
  ----------
@@ -160,7 +160,9 @@ class RawSpeechToTextJobClient:
160
160
  self, job_id: str, *, request_options: typing.Optional[RequestOptions] = None
161
161
  ) -> HttpResponse[JobStatusV1Response]:
162
162
  """
163
- Get the status of a speech to text bulk job V1
163
+ Retrieve the current status and details of a speech to text bulk job, including progress and file-level information.
164
+
165
+ **Rate Limiting Best Practice:** To prevent rate limit errors and ensure optimal server performance, we recommend implementing a minimum 5-millisecond delay between consecutive status polling requests. This helps maintain system stability while still providing timely status updates.
164
166
 
165
167
  Parameters
166
168
  ----------
@@ -270,7 +272,7 @@ class RawSpeechToTextJobClient:
270
272
  request_options: typing.Optional[RequestOptions] = None,
271
273
  ) -> HttpResponse[JobStatusV1Response]:
272
274
  """
273
- Start a speech to text bulk job V1
275
+ Start processing a speech to text bulk job after all audio files have been uploaded
274
276
 
275
277
  Parameters
276
278
  ----------
@@ -381,7 +383,7 @@ class RawSpeechToTextJobClient:
381
383
  self, *, job_id: str, files: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
382
384
  ) -> HttpResponse[FilesUploadResponse]:
383
385
  """
384
- Start a speech to text bulk job V1
386
+ Generate presigned upload URLs for audio files that will be processed in a speech to text bulk job
385
387
 
386
388
  Parameters
387
389
  ----------
@@ -496,7 +498,7 @@ class RawSpeechToTextJobClient:
496
498
  self, *, job_id: str, files: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
497
499
  ) -> HttpResponse[FilesDownloadResponse]:
498
500
  """
499
- Start a speech to text bulk job V1
501
+ Generate presigned download URLs for the transcription output files of a completed speech to text bulk job
500
502
 
501
503
  Parameters
502
504
  ----------
@@ -620,7 +622,7 @@ class AsyncRawSpeechToTextJobClient:
620
622
  request_options: typing.Optional[RequestOptions] = None,
621
623
  ) -> AsyncHttpResponse[BulkJobInitResponseV1]:
622
624
  """
623
- Get a job uuid, and storage folder details for speech to text bulk job v1
625
+ Create a new speech to text bulk job and receive a job UUID and storage folder details for processing multiple audio files
624
626
 
625
627
  Parameters
626
628
  ----------
@@ -741,7 +743,9 @@ class AsyncRawSpeechToTextJobClient:
741
743
  self, job_id: str, *, request_options: typing.Optional[RequestOptions] = None
742
744
  ) -> AsyncHttpResponse[JobStatusV1Response]:
743
745
  """
744
- Get the status of a speech to text bulk job V1
746
+ Retrieve the current status and details of a speech to text bulk job, including progress and file-level information.
747
+
748
+ **Rate Limiting Best Practice:** To prevent rate limit errors and ensure optimal server performance, we recommend implementing a minimum 5-millisecond delay between consecutive status polling requests. This helps maintain system stability while still providing timely status updates.
745
749
 
746
750
  Parameters
747
751
  ----------
@@ -851,7 +855,7 @@ class AsyncRawSpeechToTextJobClient:
851
855
  request_options: typing.Optional[RequestOptions] = None,
852
856
  ) -> AsyncHttpResponse[JobStatusV1Response]:
853
857
  """
854
- Start a speech to text bulk job V1
858
+ Start processing a speech to text bulk job after all audio files have been uploaded
855
859
 
856
860
  Parameters
857
861
  ----------
@@ -962,7 +966,7 @@ class AsyncRawSpeechToTextJobClient:
962
966
  self, *, job_id: str, files: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
963
967
  ) -> AsyncHttpResponse[FilesUploadResponse]:
964
968
  """
965
- Start a speech to text bulk job V1
969
+ Generate presigned upload URLs for audio files that will be processed in a speech to text bulk job
966
970
 
967
971
  Parameters
968
972
  ----------
@@ -1077,7 +1081,7 @@ class AsyncRawSpeechToTextJobClient:
1077
1081
  self, *, job_id: str, files: typing.Sequence[str], request_options: typing.Optional[RequestOptions] = None
1078
1082
  ) -> AsyncHttpResponse[FilesDownloadResponse]:
1079
1083
  """
1080
- Start a speech to text bulk job V1
1084
+ Generate presigned download URLs for the transcription output files of a completed speech to text bulk job
1081
1085
 
1082
1086
  Parameters
1083
1087
  ----------
@@ -7,7 +7,6 @@ from .types import (
7
7
  SpeechToTextStreamingHighVadSensitivity,
8
8
  SpeechToTextStreamingInputAudioCodec,
9
9
  SpeechToTextStreamingLanguageCode,
10
- SpeechToTextStreamingStreamOngoingSpeechResults,
11
10
  SpeechToTextStreamingVadSignals,
12
11
  )
13
12
 
@@ -16,6 +15,5 @@ __all__ = [
16
15
  "SpeechToTextStreamingHighVadSensitivity",
17
16
  "SpeechToTextStreamingInputAudioCodec",
18
17
  "SpeechToTextStreamingLanguageCode",
19
- "SpeechToTextStreamingStreamOngoingSpeechResults",
20
18
  "SpeechToTextStreamingVadSignals",
21
19
  ]
@@ -15,9 +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_stream_ongoing_speech_results import (
19
- SpeechToTextStreamingStreamOngoingSpeechResults,
20
- )
21
18
  from .types.speech_to_text_streaming_vad_signals import SpeechToTextStreamingVadSignals
22
19
 
23
20
  try:
@@ -52,8 +49,6 @@ class SpeechToTextStreamingClient:
52
49
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
53
50
  vad_signals: typing.Optional[SpeechToTextStreamingVadSignals] = None,
54
51
  flush_signal: typing.Optional[SpeechToTextStreamingFlushSignal] = None,
55
- stream_ongoing_speech_results: typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults] = None,
56
- streaming_ongoing_requests_frame_size: typing.Optional[str] = None,
57
52
  api_subscription_key: typing.Optional[str] = None,
58
53
  request_options: typing.Optional[RequestOptions] = None,
59
54
  ) -> typing.Iterator[SpeechToTextStreamingSocketClient]:
@@ -87,12 +82,6 @@ class SpeechToTextStreamingClient:
87
82
  flush_signal : typing.Optional[SpeechToTextStreamingFlushSignal]
88
83
  Signal to flush the audio buffer and finalize transcription
89
84
 
90
- stream_ongoing_speech_results : typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults]
91
- Enable streaming of ongoing speech results during active speech
92
-
93
- streaming_ongoing_requests_frame_size : typing.Optional[str]
94
- Frame size for streaming ongoing speech results (1-100)
95
-
96
85
  api_subscription_key : typing.Optional[str]
97
86
  API subscription key for authentication
98
87
 
@@ -119,12 +108,6 @@ class SpeechToTextStreamingClient:
119
108
  query_params = query_params.add("vad_signals", vad_signals)
120
109
  if flush_signal is not None:
121
110
  query_params = query_params.add("flush_signal", flush_signal)
122
- if stream_ongoing_speech_results is not None:
123
- query_params = query_params.add("stream_ongoing_speech_results", stream_ongoing_speech_results)
124
- if streaming_ongoing_requests_frame_size is not None:
125
- query_params = query_params.add(
126
- "streaming_ongoing_requests_frame_size", streaming_ongoing_requests_frame_size
127
- )
128
111
  ws_url = ws_url + f"?{query_params}"
129
112
  headers = self._raw_client._client_wrapper.get_headers()
130
113
  if api_subscription_key is not None:
@@ -175,8 +158,6 @@ class AsyncSpeechToTextStreamingClient:
175
158
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
176
159
  vad_signals: typing.Optional[SpeechToTextStreamingVadSignals] = None,
177
160
  flush_signal: typing.Optional[SpeechToTextStreamingFlushSignal] = None,
178
- stream_ongoing_speech_results: typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults] = None,
179
- streaming_ongoing_requests_frame_size: typing.Optional[str] = None,
180
161
  api_subscription_key: typing.Optional[str] = None,
181
162
  request_options: typing.Optional[RequestOptions] = None,
182
163
  ) -> typing.AsyncIterator[AsyncSpeechToTextStreamingSocketClient]:
@@ -210,12 +191,6 @@ class AsyncSpeechToTextStreamingClient:
210
191
  flush_signal : typing.Optional[SpeechToTextStreamingFlushSignal]
211
192
  Signal to flush the audio buffer and finalize transcription
212
193
 
213
- stream_ongoing_speech_results : typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults]
214
- Enable streaming of ongoing speech results during active speech
215
-
216
- streaming_ongoing_requests_frame_size : typing.Optional[str]
217
- Frame size for streaming ongoing speech results (1-100)
218
-
219
194
  api_subscription_key : typing.Optional[str]
220
195
  API subscription key for authentication
221
196
 
@@ -242,12 +217,6 @@ class AsyncSpeechToTextStreamingClient:
242
217
  query_params = query_params.add("vad_signals", vad_signals)
243
218
  if flush_signal is not None:
244
219
  query_params = query_params.add("flush_signal", flush_signal)
245
- if stream_ongoing_speech_results is not None:
246
- query_params = query_params.add("stream_ongoing_speech_results", stream_ongoing_speech_results)
247
- if streaming_ongoing_requests_frame_size is not None:
248
- query_params = query_params.add(
249
- "streaming_ongoing_requests_frame_size", streaming_ongoing_requests_frame_size
250
- )
251
220
  ws_url = ws_url + f"?{query_params}"
252
221
  headers = self._raw_client._client_wrapper.get_headers()
253
222
  if api_subscription_key is not None:
@@ -14,9 +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_stream_ongoing_speech_results import (
18
- SpeechToTextStreamingStreamOngoingSpeechResults,
19
- )
20
17
  from .types.speech_to_text_streaming_vad_signals import SpeechToTextStreamingVadSignals
21
18
 
22
19
  try:
@@ -40,8 +37,6 @@ class RawSpeechToTextStreamingClient:
40
37
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
41
38
  vad_signals: typing.Optional[SpeechToTextStreamingVadSignals] = None,
42
39
  flush_signal: typing.Optional[SpeechToTextStreamingFlushSignal] = None,
43
- stream_ongoing_speech_results: typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults] = None,
44
- streaming_ongoing_requests_frame_size: typing.Optional[str] = None,
45
40
  api_subscription_key: typing.Optional[str] = None,
46
41
  request_options: typing.Optional[RequestOptions] = None,
47
42
  ) -> typing.Iterator[SpeechToTextStreamingSocketClient]:
@@ -75,12 +70,6 @@ class RawSpeechToTextStreamingClient:
75
70
  flush_signal : typing.Optional[SpeechToTextStreamingFlushSignal]
76
71
  Signal to flush the audio buffer and finalize transcription
77
72
 
78
- stream_ongoing_speech_results : typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults]
79
- Enable streaming of ongoing speech results during active speech
80
-
81
- streaming_ongoing_requests_frame_size : typing.Optional[str]
82
- Frame size for streaming ongoing speech results (1-100)
83
-
84
73
  api_subscription_key : typing.Optional[str]
85
74
  API subscription key for authentication
86
75
 
@@ -107,12 +96,6 @@ class RawSpeechToTextStreamingClient:
107
96
  query_params = query_params.add("vad_signals", vad_signals)
108
97
  if flush_signal is not None:
109
98
  query_params = query_params.add("flush_signal", flush_signal)
110
- if stream_ongoing_speech_results is not None:
111
- query_params = query_params.add("stream_ongoing_speech_results", stream_ongoing_speech_results)
112
- if streaming_ongoing_requests_frame_size is not None:
113
- query_params = query_params.add(
114
- "streaming_ongoing_requests_frame_size", streaming_ongoing_requests_frame_size
115
- )
116
99
  ws_url = ws_url + f"?{query_params}"
117
100
  headers = self._client_wrapper.get_headers()
118
101
  if api_subscription_key is not None:
@@ -152,8 +135,6 @@ class AsyncRawSpeechToTextStreamingClient:
152
135
  high_vad_sensitivity: typing.Optional[SpeechToTextStreamingHighVadSensitivity] = None,
153
136
  vad_signals: typing.Optional[SpeechToTextStreamingVadSignals] = None,
154
137
  flush_signal: typing.Optional[SpeechToTextStreamingFlushSignal] = None,
155
- stream_ongoing_speech_results: typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults] = None,
156
- streaming_ongoing_requests_frame_size: typing.Optional[str] = None,
157
138
  api_subscription_key: typing.Optional[str] = None,
158
139
  request_options: typing.Optional[RequestOptions] = None,
159
140
  ) -> typing.AsyncIterator[AsyncSpeechToTextStreamingSocketClient]:
@@ -187,12 +168,6 @@ class AsyncRawSpeechToTextStreamingClient:
187
168
  flush_signal : typing.Optional[SpeechToTextStreamingFlushSignal]
188
169
  Signal to flush the audio buffer and finalize transcription
189
170
 
190
- stream_ongoing_speech_results : typing.Optional[SpeechToTextStreamingStreamOngoingSpeechResults]
191
- Enable streaming of ongoing speech results during active speech
192
-
193
- streaming_ongoing_requests_frame_size : typing.Optional[str]
194
- Frame size for streaming ongoing speech results (1-100)
195
-
196
171
  api_subscription_key : typing.Optional[str]
197
172
  API subscription key for authentication
198
173
 
@@ -219,12 +194,6 @@ class AsyncRawSpeechToTextStreamingClient:
219
194
  query_params = query_params.add("vad_signals", vad_signals)
220
195
  if flush_signal is not None:
221
196
  query_params = query_params.add("flush_signal", flush_signal)
222
- if stream_ongoing_speech_results is not None:
223
- query_params = query_params.add("stream_ongoing_speech_results", stream_ongoing_speech_results)
224
- if streaming_ongoing_requests_frame_size is not None:
225
- query_params = query_params.add(
226
- "streaming_ongoing_requests_frame_size", streaming_ongoing_requests_frame_size
227
- )
228
197
  ws_url = ws_url + f"?{query_params}"
229
198
  headers = self._client_wrapper.get_headers()
230
199
  if api_subscription_key is not None:
@@ -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_stream_ongoing_speech_results import SpeechToTextStreamingStreamOngoingSpeechResults
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
- "SpeechToTextStreamingStreamOngoingSpeechResults",
18
16
  "SpeechToTextStreamingVadSignals",
19
17
  ]
@@ -150,9 +150,58 @@ class AsyncSpeechToTextTranslateJob:
150
150
  "output_file": detail.outputs[0].file_name,
151
151
  }
152
152
  for detail in (job_status.job_details or [])
153
- if detail.inputs and detail.outputs
153
+ if detail.inputs and detail.outputs and detail.state == "Success"
154
154
  ]
155
155
 
156
+ async def get_file_results(
157
+ self,
158
+ ) -> typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]]:
159
+ """
160
+ Get detailed results for each file in the batch job.
161
+
162
+ Returns
163
+ -------
164
+ Dict[str, List[Dict[str, Any]]]
165
+ Dictionary with 'successful' and 'failed' keys, each containing a list of file details.
166
+ Each file detail includes:
167
+ - 'file_name': Name of the input file
168
+ - 'status': Status of processing ('Success' or 'Failed')
169
+ - 'error_message': Error message if failed (None if successful)
170
+ - 'output_file': Name of output file if successful (None if failed)
171
+ """
172
+ job_status = await self.get_status()
173
+ results: typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]] = {
174
+ "successful": [],
175
+ "failed": [],
176
+ }
177
+
178
+ for detail in job_status.job_details or []:
179
+ # Check for empty lists explicitly
180
+ if not detail.inputs or len(detail.inputs) == 0:
181
+ continue
182
+
183
+ try:
184
+ file_info = {
185
+ "file_name": detail.inputs[0].file_name,
186
+ "status": detail.state,
187
+ "error_message": detail.error_message,
188
+ "output_file": (
189
+ detail.outputs[0].file_name
190
+ if detail.outputs and len(detail.outputs) > 0
191
+ else None
192
+ ),
193
+ }
194
+
195
+ if detail.state == "Success":
196
+ results["successful"].append(file_info)
197
+ else:
198
+ results["failed"].append(file_info)
199
+ except (IndexError, AttributeError):
200
+ # Skip malformed job details
201
+ continue
202
+
203
+ return results
204
+
156
205
  async def download_outputs(self, output_dir: str) -> bool:
157
206
  """
158
207
  Download output files to the specified directory.
@@ -395,9 +444,58 @@ class SpeechToTextTranslateJob:
395
444
  "output_file": detail.outputs[0].file_name,
396
445
  }
397
446
  for detail in (job_status.job_details or [])
398
- if detail.inputs and detail.outputs
447
+ if detail.inputs and detail.outputs and detail.state == "Success"
399
448
  ]
400
449
 
450
+ def get_file_results(
451
+ self,
452
+ ) -> typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]]:
453
+ """
454
+ Get detailed results for each file in the batch job.
455
+
456
+ Returns
457
+ -------
458
+ Dict[str, List[Dict[str, Any]]]
459
+ Dictionary with 'successful' and 'failed' keys, each containing a list of file details.
460
+ Each file detail includes:
461
+ - 'file_name': Name of the input file
462
+ - 'status': Status of processing ('Success' or 'Failed')
463
+ - 'error_message': Error message if failed (None if successful)
464
+ - 'output_file': Name of output file if successful (None if failed)
465
+ """
466
+ job_status = self.get_status()
467
+ results: typing.Dict[str, typing.List[typing.Dict[str, typing.Any]]] = {
468
+ "successful": [],
469
+ "failed": [],
470
+ }
471
+
472
+ for detail in job_status.job_details or []:
473
+ # Check for empty lists explicitly
474
+ if not detail.inputs or len(detail.inputs) == 0:
475
+ continue
476
+
477
+ try:
478
+ file_info = {
479
+ "file_name": detail.inputs[0].file_name,
480
+ "status": detail.state,
481
+ "error_message": detail.error_message,
482
+ "output_file": (
483
+ detail.outputs[0].file_name
484
+ if detail.outputs and len(detail.outputs) > 0
485
+ else None
486
+ ),
487
+ }
488
+
489
+ if detail.state == "Success":
490
+ results["successful"].append(file_info)
491
+ else:
492
+ results["failed"].append(file_info)
493
+ except (IndexError, AttributeError):
494
+ # Skip malformed job details
495
+ continue
496
+
497
+ return results
498
+
401
499
  def download_outputs(self, output_dir: str) -> bool:
402
500
  """
403
501
  Download output files to the specified directory.