🚀 Version 1.0 is live! Start with the quickstart guide or explore our examples.
AI agents can convert text to speech using OpenAI’s TTS capabilities
import os from openai import AsyncOpenAI from pydantic import Field from timbal import Agent from timbal.state import get_run_context from timbal.types.file import File async def tts( text: str = Field( ..., description="The text to convert to speech.", ), ) -> File: client = AsyncOpenAI(api_key=os.getenv("OPENAI_API_KEY")) kwargs = { "input": text, 'model': 'tts-1', 'voice': 'alloy' } response = await client.audio.speech.create(**kwargs) return File.validate( response.content, {"extension": ".mp3"} ) async def post_hook(): """Post hook to extract and return the audio file.""" span = get_run_context().current_span() span.output = await tts(text=span.output.content[0].text) span.output.to_disk("audio.mp3") agent = Agent( name="VoiceAgent", model="openai/gpt-4.1-mini", post_hook=post_hook ) # Agent will generate audio files await agent( prompt="What is the capital of France?" ).collect()