Speech generation

Turn text into audio with a shared SpeechModel API.

Every speech provider conforms to SpeechModel and works with generateSpeech.

let result = try await generateSpeech(
  model: OpenAISpeechModel("gpt-4o-mini-tts"),
  text: "The quick brown fox jumped over the lazy dog.",
  voice: "alloy",
  outputFormat: "mp3"
)

try result.audio.write(to: URL(fileURLWithPath: "/tmp/hello.mp3"))
print(result.mediaType)

The shared options are voice, instructions, speed, outputFormat, providerOptions, and maxRetries. Voice IDs and supported formats come from the provider.

let result = try await generateSpeech(
  model: SarvamSpeechModel(targetLanguage: "hi-IN"),
  text: "नमस्ते, आप कैसे हैं?",
  voice: "anushka",
  speed: 1.1
)

Models

ProviderModel typeDefault or example modelKey
OpenAIOpenAISpeechModelgpt-4o-mini-ttsOPENAI_API_KEY
ElevenLabsElevenLabsSpeechModeleleven_v3ELEVENLABS_API_KEY
LMNTLMNTSpeechModelblizzardLMNT_API_KEY
HumeHumeSpeechModelVoice-selected; no model parameterHUME_API_KEY
DeepgramDeepgramSpeechModelaura-2-thalia-enDEEPGRAM_API_KEY
SarvamSarvamSpeechModelbulbul:v3SARVAM_API_KEY

On this page