> For clean Markdown of any page, append `.md` to the page URL. > For a complete documentation index, see https://docs.sarvam.ai/llms.txt. > For full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server. # How to set the sample rate (audio quality) > Controls the audio quality and size of the generated output. The `speech_sample_rate` parameter controls the audio quality and size of the generated output. It is **optional**: if omitted, the default value is `24000 Hz` (premium quality). ### Supported values: | Sample Rate (Hz) | Audio Quality Description | Availability | | ---------------- | -------------------------------------- | --------------------------- | | 8000 | Basic telephony quality | All models & modes | | 16000 | Good quality voice | All models & modes | | 22050 | High-quality audio (default for v2) | All models & modes | | 24000 | Premium audio quality (default for v3) | All models & modes | | 32000 | Broadcast quality | **bulbul:v3 REST API only** | | 44100 | CD quality audio | **bulbul:v3 REST API only** | | 48000 | Professional/Studio quality | **bulbul:v3 REST API only** | > **Note** > > **Important:** Sample rates above 24000 Hz (32000, 44100, 48000) are only available with **bulbul:v3** via the **REST API**. They are not supported in streaming mode. ### Example Code #### Rest API ```python from sarvamai import SarvamAI from sarvamai.play import save # Initialize the REST client client = SarvamAI(api_subscription_key="YOUR_SARVAM_API_KEY") # Generate speech using REST audio = client.text_to_speech.convert( text="Welcome to Sarvam AI!", model="bulbul:v3", language_code="en-IN", speech_sample_rate=24000 # Set premium audio quality ) save(audio, "output1.wav") ``` #### Streaming API ```python import asyncio import base64 from sarvamai import AsyncSarvamAI, AudioOutput import websockets async def tts_stream(): client = AsyncSarvamAI(api_subscription_key="YOUR_SARVAM_API_KEY") async with client.text_to_speech_streaming.connect(model="bulbul:v3") as ws: await ws.configure( language_code="hi-IN", speaker="shubh", speech_sample_rate=24000 # Set premium audio quality ) print("Sent configuration") long_text = ( "भारत की संस्कृति विश्व की सबसे प्राचीन और समृद्ध संस्कृतियों में से एक है।" "यह विविधता, सहिष्णुता और परंपराओं का अद्भुत संगम है, " "जिसमें विभिन्न धर्म, भाषाएं, त्योहार, संगीत, नृत्य, वास्तुकला और जीवनशैली शामिल हैं।" ) await ws.convert(long_text) print("Sent text message") await ws.flush() print("Flushed buffer") chunk_count = 0 with open("output.mp3", "wb") as f: async for message in ws: if isinstance(message, AudioOutput): chunk_count += 1 audio_chunk = base64.b64decode(message.data.audio) f.write(audio_chunk) f.flush() print(f"All {chunk_count} chunks saved to output.mp3") print("Audio generation complete") if hasattr(ws, "_websocket") and not ws._websocket.closed: await ws._websocket.close() print("WebSocket connection closed.") if __name__ == "__main__": asyncio.run(tts_stream()) # --- Notebook/Colab usage --- # await tts_stream() ``` > Controls the audio quality and size of the generated output.