Update audio_processing.py
Browse files- audio_processing.py +19 -22
audio_processing.py
CHANGED
@@ -2,37 +2,34 @@
|
|
2 |
import asyncio
|
3 |
import os
|
4 |
import tempfile
|
5 |
-
|
6 |
-
from openai import OpenAI
|
7 |
|
8 |
# Lấy API key từ biến môi trường
|
9 |
-
|
10 |
-
|
11 |
-
# Khởi tạo client OpenAI
|
12 |
-
openai_client = OpenAI(api_key=OPENAI_API_KEY)
|
13 |
|
14 |
def text_to_speech(text, voice, language):
|
15 |
"""
|
16 |
-
Chuyển đổi văn bản thành giọng nói bằng
|
17 |
"""
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio_file:
|
26 |
-
for chunk in response.iter_bytes(chunk_size=4096):
|
27 |
-
temp_audio_file.write(chunk)
|
28 |
-
|
29 |
-
return temp_audio_file.name
|
30 |
-
except Exception as e:
|
31 |
-
return f"Lỗi khi chuyển đổi văn bản thành giọng nói: {str(e)}"
|
32 |
|
33 |
async def async_text_to_speech(text, voice, language):
|
34 |
"""
|
35 |
Chuyển đổi văn bản thành giọng nói (bất đồng bộ).
|
36 |
"""
|
37 |
loop = asyncio.get_event_loop()
|
38 |
-
return await loop.run_in_executor(None, text_to_speech, text, voice, language)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
import asyncio
|
3 |
import os
|
4 |
import tempfile
|
5 |
+
import edge_tts
|
|
|
6 |
|
7 |
# Lấy API key từ biến môi trường
|
8 |
+
EDGE_TTS_API_KEY = os.environ.get("EDGE_TTS_API_KEY", None) # Không cần API key cho edge-tts
|
|
|
|
|
|
|
9 |
|
10 |
def text_to_speech(text, voice, language):
|
11 |
"""
|
12 |
+
Chuyển đổi văn bản thành giọng nói bằng edge-tts.
|
13 |
"""
|
14 |
+
output_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
|
15 |
+
|
16 |
+
tts = edge_tts.Communicate(text, voice)
|
17 |
+
tts.save(output_file.name).get()
|
18 |
+
|
19 |
+
return output_file.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
async def async_text_to_speech(text, voice, language):
|
22 |
"""
|
23 |
Chuyển đổi văn bản thành giọng nói (bất đồng bộ).
|
24 |
"""
|
25 |
loop = asyncio.get_event_loop()
|
26 |
+
return await loop.run_in_executor(None, text_to_speech, text, voice, language)
|
27 |
+
|
28 |
+
if __name__ == "__main__":
|
29 |
+
# Ví dụ sử dụng
|
30 |
+
text = "Chào mừng bạn đến với công nghệ AI!"
|
31 |
+
voice = "en-US-JennyNeural" # Vôices available can be found at https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support
|
32 |
+
language = "en-US"
|
33 |
+
|
34 |
+
output_file = async_text_to_speech(text, voice, language)
|
35 |
+
print(f"Tệp âm thanh đã được lưu tại: {output_file}")
|