Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -3,14 +3,7 @@ from kokoro import KPipeline
|
|
3 |
import soundfile as sf
|
4 |
import io
|
5 |
import os
|
6 |
-
|
7 |
-
|
8 |
-
# Install espeak-ng if not installed
|
9 |
-
# if not os.system("which espeak-ng"):
|
10 |
-
# st.text("espeak-ng already installed.")
|
11 |
-
# else:
|
12 |
-
# os.system("apt-get -qq -y install espeak-ng")
|
13 |
-
# st.text("Installing espeak-ng...")
|
14 |
|
15 |
# Streamlit App UI Setup
|
16 |
st.title("Text-to-Speech with Kokoro")
|
@@ -84,6 +77,25 @@ speed = st.slider("Speed", min_value=0.5, max_value=2.0, value=1.0, step=0.1)
|
|
84 |
# Initialize the TTS pipeline with user-selected language
|
85 |
pipeline = KPipeline(lang_code=lang_code)
|
86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
# Generate Audio function
|
88 |
def generate_audio(text, lang_code, voice, speed):
|
89 |
generator = pipeline(text, voice=voice, speed=speed, split_pattern=r'\n+')
|
@@ -96,14 +108,6 @@ def generate_audio(text, lang_code, voice, speed):
|
|
96 |
buffer.seek(0)
|
97 |
return buffer
|
98 |
|
99 |
-
# Translate text to English using TextBlob
|
100 |
-
def translate_to_english(text, lang_code):
|
101 |
-
if lang_code != 'a': # Only translate if it's not already English
|
102 |
-
blob = TextBlob(text)
|
103 |
-
translated_text = blob.translate(to='en')
|
104 |
-
return str(translated_text)
|
105 |
-
return text
|
106 |
-
|
107 |
# Generate and display the audio file
|
108 |
if st.button('Generate Audio'):
|
109 |
st.write("Generating speech...")
|
@@ -120,7 +124,7 @@ if st.button('Generate Audio'):
|
|
120 |
mime="audio/wav"
|
121 |
)
|
122 |
|
123 |
-
# Translate the input text to English
|
124 |
translated_text = translate_to_english(input_text, lang_code)
|
125 |
|
126 |
# Generate audio for the translated English text
|
|
|
3 |
import soundfile as sf
|
4 |
import io
|
5 |
import os
|
6 |
+
import requests # Used to send requests to LibreTranslate API
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
# Streamlit App UI Setup
|
9 |
st.title("Text-to-Speech with Kokoro")
|
|
|
77 |
# Initialize the TTS pipeline with user-selected language
|
78 |
pipeline = KPipeline(lang_code=lang_code)
|
79 |
|
80 |
+
# LibreTranslate API URL (public API endpoint)
|
81 |
+
LIBRETRANSLATE_URL = "https://libretranslate.de/translate"
|
82 |
+
|
83 |
+
# Translate text to English using LibreTranslate
|
84 |
+
def translate_to_english(text, lang_code):
|
85 |
+
# Send a POST request to LibreTranslate API
|
86 |
+
response = requests.post(LIBRETRANSLATE_URL, data={
|
87 |
+
'q': text,
|
88 |
+
'source': lang_code,
|
89 |
+
'target': 'en'
|
90 |
+
})
|
91 |
+
|
92 |
+
# Check for a successful response
|
93 |
+
if response.status_code == 200:
|
94 |
+
return response.json()['translatedText']
|
95 |
+
else:
|
96 |
+
st.error(f"Translation failed. Status Code: {response.status_code}")
|
97 |
+
return text # Return the original text in case of failure
|
98 |
+
|
99 |
# Generate Audio function
|
100 |
def generate_audio(text, lang_code, voice, speed):
|
101 |
generator = pipeline(text, voice=voice, speed=speed, split_pattern=r'\n+')
|
|
|
108 |
buffer.seek(0)
|
109 |
return buffer
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
# Generate and display the audio file
|
112 |
if st.button('Generate Audio'):
|
113 |
st.write("Generating speech...")
|
|
|
124 |
mime="audio/wav"
|
125 |
)
|
126 |
|
127 |
+
# Translate the input text to English using LibreTranslate
|
128 |
translated_text = translate_to_english(input_text, lang_code)
|
129 |
|
130 |
# Generate audio for the translated English text
|