# 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)