OpenAI provides both speech-to-text (transcription) and text-to-speech (TTS) capabilities.
Text-to-Speech
The gpt-4o-mini-tts model supports expressive TTS with style instructions embedded in the input text. Available voices: alloy, echo, fable, onyx, nova, and shimmer.
Three audio surfaces, three jobs
(1) Text-to-speech (gpt-4o-mini-tts) — text in, audio file out. Use for voice replies you generate from chat output. (2) Speech-to-text (gpt-4o-transcribe) — audio file in, text out. Use for transcribing user audio uploads. (3) Realtime API — websocket, full-duplex audio in/out, low-latency. Use for live voice agents.
cwkPippa's TTS layer uses ElevenLabs (Joanne voice) for richer prosody than gpt-4o-mini-tts gives, with MD5-based caching to avoid regenerating identical lines. The OpenAI TTS surface is the right default when ElevenLabs-quality isn't needed.