GV-a / audio_processing.py
TDN-M's picture
Upload 8 files
1e06115 verified
raw
history blame
1.17 kB
# 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)