Streaming

Our legacy Gen2 streaming model is deprecated. We recommend using our latest Falcon 2 model instead.

Murf TTS API supports real-time streaming capabilities, allowing developers to generate and play text-to-speech (TTS) audio dynamically as it is being generated in real-time, reducing the time-to-first-byte. This ensures minimal latency, making it ideal for conversational AI, real-time applications, and voice-enabled assistants.

New: Pass model = falcon-2 to use our Falcon 2 model in text-to-speech streaming endpoints, designed for ultra-low latency (~100 ms).

In addition to HTTP streaming endpoint, Murf TTS supports Websocket streaming which enables bidirectional streaming for real-time audio generation.

Quickstart

Streaming enables returning raw audio bytes (e.g., MP3 data) directly over HTTP using chunked transfer encoding. This allows clients to process or play audio incrementally as it is generated. This section focuses on how streaming works for requests made to the Text to Speech API.

1

Getting Started

Generate an API key here. Store the key in a secure location, as you’ll need it to authenticate your requests. You can optionally save the key as an environment variable in your terminal.

2

Initiating a Streaming Request

Install the Python SDK and PyAudio

pyaudio depends on PortAudio, you may need to install it first.

PyAudio depends on PortAudio, a cross-platform audio I/O library. You may need to install PortAudio separately if it’s not already on your system.

brew install portaudio

Once you have installed PortAudio, you can install the required Python packages using the following command:

pip install murf pyaudio

Make the API Call with Real-Time Playback

Once you have the SDK and PyAudio installed, and the API key set as an environment variable, you are ready to make your first streaming API call with real-time audio playback.

import pyaudio
from murf import Murf, MurfRegion
client = Murf(
api_key="YOUR_API_KEY", # Not required if you have set the MURF_API_KEY environment variable
region=MurfRegion.GLOBAL
)
# For lower latency, specify a region closer to your users
# client = Murf(region=MurfRegion.IN) # Example: India region
# Audio format settings (must match your API output)
SAMPLE_RATE = 24000
CHANNELS = 1
FORMAT = pyaudio.paInt16
def play_streaming_audio():
# Get the streaming audio generator
audio_stream = client.text_to_speech.stream(
text="Hi, How are you doing today?",
voice_id="Gordon",
model="falcon-2",
locale="en-US",
sample_rate=SAMPLE_RATE,
format="PCM"
)
# Setup audio stream for playback
pa = pyaudio.PyAudio()
stream = pa.open(format=FORMAT, channels=CHANNELS, rate=SAMPLE_RATE, output=True)
try:
print("Starting audio playback...")
for chunk in audio_stream:
if chunk: # Check if chunk has data
stream.write(chunk)
except Exception as e:
print(f"Error during streaming: {e}")
finally:
stream.stop_stream()
stream.close()
pa.terminate()
print("Audio streaming and playback complete!")
if __name__ == "__main__":
play_streaming_audio()

Falcon 2 Supported Voices

Voice IDSupported LocalesVoice Styles
Aliciaen-US (English - US & Canada)Conversation
Alinaen-US (English - US & Canada)Conversation
Amaraen-US (English - US & Canada)Conversational
Angelaen-US (English - US & Canada)Promo
Arianaen-US (English - US & Canada)Conversation
Caleben-US (English - US & Canada)Conversation
Charlesen-US (English - US & Canada)Conversation
Cooperen-US (English - US & Canada)Conversation
Daisyen-US (English - US & Canada)Conversation
Danielen-US (English - US & Canada)Conversation
Edmunden-US (English - US & Canada)Conversation
Ezekielen-US (English - US & Canada)Conversational
Gordonen-US (English - US & Canada)Conversational
Granten-US (English - US & Canada)Conversational
Jaydenen-US (English - US & Canada)Conversation
Josieen-US (English - US & Canada)Conversation
Judithen-US (English - US & Canada)Conversational
Lunaen-US (English - US & Canada)Conversation
Madisonen-US (English - US & Canada)Conversational
Matthewen-US (English - US & Canada)Conversation
Mavericken-US (English - US & Canada)Conversation
Michelleen-US (English - US & Canada)Conversation
Milesen-US (English - US & Canada)AIAgent, Customer Support Agent
Mollyen-US (English - US & Canada)Conversation
Natalieen-US (English - US & Canada)Conversation
Ronnieen-US (English - US & Canada)Conversation
Wayneen-US (English - US & Canada)Conversation
Willen-US (English - US & Canada)Conversation
Abiramien-US (English - US & Canada), hi-IN (Hindi - India)Conversational
Alexisen-US (English - US & Canada), fr-CA (French - Canada)Conversational
Bertieen-US (English - US & Canada), en-UK (English - UK)Conversational
Blazejen-US (English - US & Canada), pl-PL (Polish - Poland)Conversational
Carlosen-US (English - US & Canada), es-MX (Spanish - Mexico)Conversational
Carmenen-US (English - US & Canada), es-ES (Spanish - Spain)Conversational
Dirken-US (English - US & Canada), nl-NL (Dutch - Netherlands)Conversation
Diyaen-US (English - US & Canada), gu-IN (Gujarati - India), mr-IN (Marathi - India), vi-VN (Vietnamese - Vietnam)Conversational
Elviraen-US (English - US & Canada)Conversation
Giuliaen-US (English - US & Canada)Conversational
Heidien-US (English - US & Canada), en-UK (English - UK)Conversational
Heitoren-US (English - US & Canada), pt-BR (Portuguese - Brazil)Conversational
Isadoraen-US (English - US & Canada), pt-BR (Portuguese - Brazil)Conversation
Joshuaen-US (English - US & Canada), en-UK (English - UK)Conversational
Laraen-US (English - US & Canada), de-DE (German - Germany)Conversational
Merelen-US (English - US & Canada), nl-NL (Dutch - Netherlands)Conversational
Nimishaen-US (English - US & Canada), ml-IN (Malayalam - India)Conversational
Ralfen-US (English - US & Canada), de-DE (German - Germany)Conversational
Voice IDSupported LocalesVoice Styles
Benedicten-UK (English - UK)Conversational
Bertieen-UK (English - UK), en-US (English - US & Canada)Conversational
Freddieen-UK (English - UK)Conversational
Hazelen-UK (English - UK)Conversational
Heidien-UK (English - UK), en-US (English - US & Canada)Conversational
Hugoen-UK (English - UK)Conversational
Joshuaen-UK (English - UK), en-US (English - US & Canada)Conversational
Julieten-UK (English - UK)Conversational
Lydiaen-UK (English - UK)Conversational
Masonen-UK (English - UK)Conversational
Pearlen-UK (English - UK)Conversational
Rubyen-UK (English - UK)Conversational
Sharonen-UK (English - UK)Conversational
Theoen-UK (English - UK)Narration
Voice IDSupported LocalesVoice Styles
Abhinaven-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India), mr-IN (Marathi - India)Conversational
Anishaen-IN (English - India), as-IN (Assamese - India), bn-IN (Bangla - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversation
Anushaen-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Nikhilen-IN (English - India), hi-IN (Hindi - India)Conversational
Poojaen-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), ta-IN (Tamil - India), te-IN (Telugu - India), vi-VN (Vietnamese - Vietnam)Conversational
Priyaen-IN (English - India), hi-IN (Hindi - India)Conversational
Samaren-IN (English - India), as-IN (Assamese - India), hi-IN (Hindi - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Hardiken-IN (English - India), gu-IN (Gujarati - India), hi-IN (Hindi - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Voice IDSupported LocalesVoice Styles
Harperen-AU (English - Australia)Conversational
Ivyen-AU (English - Australia)Conversational
Jimmen-AU (English - Australia)Conversational
Leytonen-AU (English - Australia)Conversational
Sophiaen-AU (English - Australia)Narration
Voice IDSupported LocalesVoice Styles
Adéliefr-FR (French - France)Conversational
Axelfr-FR (French - France)Conversational
Guillaumefr-FR (French - France)Conversational
Justinefr-FR (French - France)Conversational
Voice IDSupported LocalesVoice Styles
Alexisfr-CA (French - Canada), en-US (English - US & Canada)Conversational
Clémentfr-CA (French - Canada)Conversational
Voice IDSupported LocalesVoice Styles
Björnde-DE (German - Germany), vi-VN (Vietnamese - Vietnam)Conversational
Ernade-DE (German - Germany)Conversational
Larade-DE (German - Germany), en-US (English - US & Canada)Conversational
Ralfde-DE (German - Germany), en-US (English - US & Canada)Conversational
Voice IDSupported LocalesVoice Styles
Carloses-MX (Spanish - Mexico), en-US (English - US & Canada)Conversational
Luisaes-MX (Spanish - Mexico)Conversational
Valeriaes-MX (Spanish - Mexico)Conversational
Voice IDSupported LocalesVoice Styles
Carmenes-ES (Spanish - Spain), en-US (English - US & Canada)Conversational
Javieres-ES (Spanish - Spain)Conversational
Voice IDSupported LocalesVoice Styles
Angeloit-IT (Italian - Italy)Conversational
Gretait-IT (Italian - Italy)Conversational
Verait-IT (Italian - Italy)Conversational
Vincenzoit-IT (Italian - Italy)Conversational
Voice IDSupported LocalesVoice Styles
Beníciopt-BR (Portuguese - Brazil)Conversational
Eloapt-BR (Portuguese - Brazil)Conversational
Gustavopt-BR (Portuguese - Brazil)Conversational
Heitorpt-BR (Portuguese - Brazil), en-US (English - US & Canada)Conversational
Isadorapt-BR (Portuguese - Brazil), en-US (English - US & Canada)Conversational
Silviopt-BR (Portuguese - Brazil)Conversational
Yagopt-BR (Portuguese - Brazil)Conversational
Voice IDSupported LocalesVoice Styles
Jiaozh-CN (Mandarin - China), vi-VN (Vietnamese - Vietnam)Conversational
Taozh-CN (Mandarin - China)Conversational
Weizh-CN (Mandarin - China)Conversational
Yuxanzh-CN (Mandarin - China)Conversational
Voice IDSupported LocalesVoice Styles
Dirknl-NL (Dutch - Netherlands), en-US (English - US & Canada)Conversational
Famkenl-NL (Dutch - Netherlands)Conversational
Merelnl-NL (Dutch - Netherlands), en-US (English - US & Canada)Conversational
Voice IDSupported LocalesVoice Styles
Ayushihi-IN (Hindi - India)Conversation
Poojahi-IN (Hindi - India), en-IN (English - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), ta-IN (Tamil - India), te-IN (Telugu - India), vi-VN (Vietnamese - Vietnam)Conversational
Karthikeyanhi-IN (Hindi - India), ta-IN (Tamil - India)Conversation
Abhinavhi-IN (Hindi - India), en-IN (English - India), kn-IN (Kannada - India), mr-IN (Marathi - India)Conversational
Amanhi-IN (Hindi - India)Conversational
Karanhi-IN (Hindi - India), kn-IN (Kannada - India)Conversational
Khyatihi-IN (Hindi - India)Conversational
Namritahi-IN (Hindi - India), kn-IN (Kannada - India), tr-TR (Turkish - Turkey)Conversational
Shwetahi-IN (Hindi - India)Conversational
Sunainahi-IN (Hindi - India), kn-IN (Kannada - India)Conversational
Aaravhi-IN (Hindi - India)Conversation
Abhikhi-IN (Hindi - India)Conversation
Abiramihi-IN (Hindi - India), en-US (English - US & Canada)Conversation
Aliahi-IN (Hindi - India)Conversational
Anishahi-IN (Hindi - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Anushahi-IN (Hindi - India), en-IN (English - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Arnabhi-IN (Hindi - India)Conversation
Arohihi-IN (Hindi - India)Conversational
Eashwarhi-IN (Hindi - India)Conversation
Hardikhi-IN (Hindi - India), en-IN (English - India), gu-IN (Gujarati - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Ishahi-IN (Hindi - India)Conversational
Ishanihi-IN (Hindi - India)Conversation
Madhavanhi-IN (Hindi - India), ml-IN (Malayalam - India)Conversational
Nikhilhi-IN (Hindi - India), en-IN (English - India)Conversational
Priyahi-IN (Hindi - India), en-IN (English - India)Conversational
Samarhi-IN (Hindi - India), as-IN (Assamese - India), en-IN (English - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Sarveshhi-IN (Hindi - India)Conversation
Vaibhavhi-IN (Hindi - India), mr-IN (Marathi - India)Conversational
Voice IDSupported LocalesVoice Styles
Jangmiko-KR (Korean - South Korea)Conversational
Jong-suko-KR (Korean - South Korea)Conversational
Seokko-KR (Korean - South Korea)Conversational
Voice IDSupported LocalesVoice Styles
Karthikeyanta-IN (Tamil - India), hi-IN (Hindi - India)Conversational
Anishata-IN (Tamil - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), te-IN (Telugu - India)Conversational
Poojata-IN (Tamil - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), te-IN (Telugu - India), vi-VN (Vietnamese - Vietnam)Conversational
Samarta-IN (Tamil - India), as-IN (Assamese - India), en-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), te-IN (Telugu - India)Conversational
Voice IDSupported LocalesVoice Styles
Blazejpl-PL (Polish - Poland), en-US (English - US & Canada)Conversational
Jacekpl-PL (Polish - Poland)Conversational
Kasiapl-PL (Polish - Poland)Conversational
Voice IDSupported LocalesVoice Styles
Debaratibn-IN (Bangla - India)Conversational
Subhankarbn-IN (Bangla - India), mr-IN (Marathi - India)Conversational
Anishabn-IN (Bangla - India), as-IN (Assamese - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Voice IDSupported LocalesVoice Styles
Denkija-JP (Japanese - Japan)Conversational
Kenjija-JP (Japanese - Japan)Conversational
Kimija-JP (Japanese - Japan)Conversational
Voice IDSupported LocalesVoice Styles
Diyagu-IN (Gujarati - India), en-US (English - US & Canada), mr-IN (Marathi - India), vi-VN (Vietnamese - Vietnam)Conversational
Hardikgu-IN (Gujarati - India), en-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Voice IDSupported LocalesVoice Styles
Harshithakn-IN (Kannada - India)Conversational
Abhinavkn-IN (Kannada - India), en-IN (English - India), hi-IN (Hindi - India), mr-IN (Marathi - India)Conversational
Anishakn-IN (Kannada - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Anushakn-IN (Kannada - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), te-IN (Telugu - India)Conversational
Hardikkn-IN (Kannada - India), en-IN (English - India), gu-IN (Gujarati - India), hi-IN (Hindi - India), te-IN (Telugu - India)Conversational
Harpreetkn-IN (Kannada - India), mr-IN (Marathi - India), pa-IN (Punjabi - India)Conversational
Karankn-IN (Kannada - India), hi-IN (Hindi - India)Conversational
Namritakn-IN (Kannada - India), hi-IN (Hindi - India), tr-TR (Turkish - Turkey)Conversational
Poojakn-IN (Kannada - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), ta-IN (Tamil - India), te-IN (Telugu - India), vi-VN (Vietnamese - Vietnam)Conversational
Prajaktakn-IN (Kannada - India), mr-IN (Marathi - India), te-IN (Telugu - India)Conversational
Prathameshkn-IN (Kannada - India), mr-IN (Marathi - India), te-IN (Telugu - India)Conversational
Samarkn-IN (Kannada - India), as-IN (Assamese - India), en-IN (English - India), hi-IN (Hindi - India), mr-IN (Marathi - India), or-IN (Odia - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Sunainakn-IN (Kannada - India), hi-IN (Hindi - India)Conversational
Voice IDSupported LocalesVoice Styles
Madhavanml-IN (Malayalam - India), hi-IN (Hindi - India)Conversational
Nimishaml-IN (Malayalam - India), en-US (English - US & Canada)Conversational
Voice IDSupported LocalesVoice Styles
Prajaktamr-IN (Marathi - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Prathameshmr-IN (Marathi - India), kn-IN (Kannada - India), te-IN (Telugu - India)Conversational
Vaibhavmr-IN (Marathi - India), hi-IN (Hindi - India)Conversational
Abhinavmr-IN (Marathi - India), en-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India)Conversational
Anishamr-IN (Marathi - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Diyamr-IN (Marathi - India), en-US (English - US & Canada), gu-IN (Gujarati - India), vi-VN (Vietnamese - Vietnam)Conversational
Harpreetmr-IN (Marathi - India), kn-IN (Kannada - India), pa-IN (Punjabi - India)Conversational
Samarmr-IN (Marathi - India), as-IN (Assamese - India), en-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India), or-IN (Odia - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Subhankarmr-IN (Marathi - India), bn-IN (Bangla - India)Conversational
Voice IDSupported LocalesVoice Styles
Harmanpa-IN (Punjabi - India)Conversational
Harpreetpa-IN (Punjabi - India), kn-IN (Kannada - India), mr-IN (Marathi - India)Conversational
Anishapa-IN (Punjabi - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), ta-IN (Tamil - India), te-IN (Telugu - India)Conversational
Voice IDSupported LocalesVoice Styles
Anishate-IN (Telugu - India), as-IN (Assamese - India), bn-IN (Bangla - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), pa-IN (Punjabi - India), ta-IN (Tamil - India)Conversational
Anushate-IN (Telugu - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India)Conversational
Hardikte-IN (Telugu - India), en-IN (English - India), gu-IN (Gujarati - India), hi-IN (Hindi - India), kn-IN (Kannada - India)Conversational
Poojate-IN (Telugu - India), en-IN (English - India), hi-IN (Hindi - India), hi-LATN (Hinglish - India), kn-IN (Kannada - India), ta-IN (Tamil - India), vi-VN (Vietnamese - Vietnam)Conversational
Prajaktate-IN (Telugu - India), kn-IN (Kannada - India), mr-IN (Marathi - India)Conversational
Prathameshte-IN (Telugu - India), kn-IN (Kannada - India), mr-IN (Marathi - India)Conversational
Samarte-IN (Telugu - India), as-IN (Assamese - India), en-IN (English - India), hi-IN (Hindi - India), kn-IN (Kannada - India), mr-IN (Marathi - India), or-IN (Odia - India), ta-IN (Tamil - India)Conversational

Endpoint & Concurrency Overview

Endpoint baseConcurrency cap
https://global.api.murf.ai/v1/speech/stream5 (if nearest server is US-East) / 2 (all other regions)
https://<region>.api.murf.ai/v1/speech/stream (see regions below)5 for US-East / 2 for all other regions

The Global Router automatically picks the nearest region automatically.The concurrency limit is 5 for the US-East region and 2 for all other regions. To get higher concurrency, use the US-East endpoint directly or contact us to increase limits for regional endpoints.

Available Regions

Use the region closest to your users for the lowest latency.

Region (City/Area)Endpoint
Global (Routes to the nearest server)https://global.api.murf.ai/v1/speech/stream
US-Easthttps://us-east.api.murf.ai/v1/speech/stream
US-Westhttps://us-west.api.murf.ai/v1/speech/stream
Indiahttps://in.api.murf.ai/v1/speech/stream
Canadahttps://ca.api.murf.ai/v1/speech/stream
South Koreahttps://kr.api.murf.ai/v1/speech/stream
UAEhttps://me.api.murf.ai/v1/speech/stream
Japanhttps://jp.api.murf.ai/v1/speech/stream
Australiahttps://au.api.murf.ai/v1/speech/stream
EU (Central)https://eu-central.api.murf.ai/v1/speech/stream
UKhttps://uk.api.murf.ai/v1/speech/stream
South America (São Paulo)https://sa-east.api.murf.ai/v1/speech/stream

FAQs

Falcon 2 is our fastest streaming model (~100 ms latency) optimized for real-time interactions.

Use Falcon 2 when your top priority is ultra-low latency. Typical fits include: - Conversational agents & live support where snappy turn-taking matters. - Real-time apps (IVR, gaming, tutoring, assistive tech) that stream audio as users speak. - Interruptible/barge-in experiences and interactive demos or prototyping.

Include model = falcon-2 in your request (HTTP or WebSocket). If omitted, the default streaming model is used.

In streaming mode, you can control the voice, style, pitch, speed, and locale in both Gen2 and Falcon 2 models. The Gen2 model also supports pause tags.

  • We support MP3, FLAC, WAV, ALAW, ULAW, OGG, and PCM. - If you need to transmit audio as text, you can Base64-encode any of these.