File size: 1,166 Bytes
1e06115 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# audio_processing.py
import asyncio
import os
import tempfile
from openai import OpenAI
# Lấy API key từ biến môi trường
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
# Khởi tạo client OpenAI
openai_client = OpenAI(api_key=OPENAI_API_KEY)
def text_to_speech(text, voice, language):
"""
Chuyển đổi văn bản thành giọng nói bằng OpenAI API.
"""
try:
response = openai_client.audio.speech.create(
model="tts-1",
voice=voice,
input=text
)
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio_file:
for chunk in response.iter_bytes(chunk_size=4096):
temp_audio_file.write(chunk)
return temp_audio_file.name
except Exception as e:
return f"Lỗi khi chuyển đổi văn bản thành giọng nói: {str(e)}"
async def async_text_to_speech(text, voice, language):
"""
Chuyển đổi văn bản thành giọng nói (bất đồng bộ).
"""
loop = asyncio.get_event_loop()
return await loop.run_in_executor(None, text_to_speech, text, voice, language) |