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)