|
import asyncio |
|
|
|
from openai import AsyncOpenAI |
|
from openai.helpers import LocalAudioPlayer |
|
|
|
openai = AsyncOpenAI() |
|
|
|
input = """Yeah, yeah, ya got Big Apple Insurance, whaddaya need? Let's make this quick, I got places to be.\n\nIf ya gotta file a claim, press 1—lemme guess, someone cut ya off? Figures.\n\nWanna check the status? Press 2, I know, I know, hurry it up, right?\n\nIf ya just wanna hold, press 3—hey, your call, but don't say I didn't warn ya.\n\nNeed a real person? Press 4, and I'll get ya through—just don't start yellin' at 'em, they're doin' their best.\n\nAlright, let's move it along, time is money, buddy!""" |
|
|
|
instructions = """Voice: Gruff, fast-talking, and a little worn-out, like a New York cabbie who's seen it all but still keeps things moving.\n\nTone: Slightly exasperated but still functional, with a mix of sarcasm and no-nonsense efficiency.\n\nDialect: Strong New York accent, with dropped \"r\"s, sharp consonants, and classic phrases like whaddaya and lemme guess.\n\nPronunciation: Quick and clipped, with a rhythm that mimics the natural hustle of a busy city conversation.\n\nFeatures: Uses informal, straight-to-the-point language, throws in some dry humor, and keeps the energy just on the edge of impatience but still helpful.""" |
|
|
|
async def main() -> None: |
|
|
|
async with openai.audio.speech.with_streaming_response.create( |
|
model="gpt-4o-mini-tts", |
|
voice="echo", |
|
input=input, |
|
instructions=instructions, |
|
response_format="pcm", |
|
) as response: |
|
await LocalAudioPlayer().play(response) |
|
|
|
if __name__ == "__main__": |
|
asyncio.run(main()) |