Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
import os
|
|
|
2 |
from flask import Flask, request, jsonify, send_file, send_from_directory
|
3 |
import google.generativeai as genai
|
4 |
from gtts import gTTS, lang
|
@@ -78,16 +79,27 @@ def translate_audio():
|
|
78 |
response = model.generate_content(prompt)
|
79 |
translated_text = response.text.strip()
|
80 |
|
81 |
-
# Generate TTS
|
82 |
if target_language in KOKORO_LANGUAGES:
|
83 |
lang_code = KOKORO_LANGUAGES[target_language]
|
84 |
pipeline = KPipeline(lang_code=lang_code)
|
85 |
generator = pipeline(translated_text, voice="af_heart", speed=1)
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
_, temp_output_path = tempfile.mkstemp(suffix=".wav")
|
89 |
sf.write(temp_output_path, audio_data, 24000)
|
|
|
|
|
90 |
else:
|
|
|
91 |
lang_code = next((k for k, v in GTTS_LANGUAGES.items() if v == target_language), 'en')
|
92 |
tts = gTTS(translated_text, lang=lang_code)
|
93 |
_, temp_output_path = tempfile.mkstemp(suffix=".mp3")
|
@@ -116,4 +128,4 @@ def download_file(filename):
|
|
116 |
return jsonify({'error': 'File not found'}), 404
|
117 |
|
118 |
if __name__ == '__main__':
|
119 |
-
app.run(host=
|
|
|
1 |
import os
|
2 |
+
import numpy as np
|
3 |
from flask import Flask, request, jsonify, send_file, send_from_directory
|
4 |
import google.generativeai as genai
|
5 |
from gtts import gTTS, lang
|
|
|
79 |
response = model.generate_content(prompt)
|
80 |
translated_text = response.text.strip()
|
81 |
|
82 |
+
# Generate TTS (corrected version)
|
83 |
if target_language in KOKORO_LANGUAGES:
|
84 |
lang_code = KOKORO_LANGUAGES[target_language]
|
85 |
pipeline = KPipeline(lang_code=lang_code)
|
86 |
generator = pipeline(translated_text, voice="af_heart", speed=1)
|
87 |
+
|
88 |
+
# Collect all audio segments
|
89 |
+
audio_segments = []
|
90 |
+
for _, _, audio in generator:
|
91 |
+
if audio is not None: # Explicit None check
|
92 |
+
audio_segments.append(audio)
|
93 |
+
|
94 |
+
if audio_segments:
|
95 |
+
# Concatenate audio tensors
|
96 |
+
audio_data = np.concatenate(audio_segments)
|
97 |
_, temp_output_path = tempfile.mkstemp(suffix=".wav")
|
98 |
sf.write(temp_output_path, audio_data, 24000)
|
99 |
+
else:
|
100 |
+
raise ValueError("No audio generated by Kokoro")
|
101 |
else:
|
102 |
+
# Fallback to gTTS
|
103 |
lang_code = next((k for k, v in GTTS_LANGUAGES.items() if v == target_language), 'en')
|
104 |
tts = gTTS(translated_text, lang=lang_code)
|
105 |
_, temp_output_path = tempfile.mkstemp(suffix=".mp3")
|
|
|
128 |
return jsonify({'error': 'File not found'}), 404
|
129 |
|
130 |
if __name__ == '__main__':
|
131 |
+
app.run(host='0.0.0.0', port=5000, debug=True)
|