pull/9/head
Shiven Mian 11 months ago
parent 0fa932cb06
commit bb8da14e8a

@ -3,16 +3,40 @@ Defines a function which takes text and returns a path to an audio file.
""" """
from openai import OpenAI from openai import OpenAI
import pydub
import pydub.playback
import tempfile
import os
from datetime import datetime
from io import BytesIO
client = OpenAI() client = OpenAI()
chunk_size = 1024
read_chunk_size = 4096
def tts(text, file_path): def tts(text):
response = client.with_streaming_response.audio.speech.create( temp_dir = tempfile.gettempdir()
model="tts-1", output_path = os.path.join(temp_dir, f"output_{datetime.now().strftime('%Y%m%d%H%M%S%f')}.mp3")
voice="alloy",
input=text,
)
response.stream_to_file(file_path) try:
with (
client.with_streaming_response.audio.speech.create(
model="tts-1",
voice="alloy",
input=text,
response_format='mp3',
speed=1.2)
) as response:
with open(output_path, 'wb') as f:
for chunk in response.iter_bytes(chunk_size):
f.write(chunk)
with open(output_path, 'rb') as f:
byte_chunk = f.read(read_chunk_size)
yield byte_chunk
seg = pydub.AudioSegment.from_mp3(output_path)
pydub.playback.play(seg)
finally:
os.remove(output_path)
Loading…
Cancel
Save