Spaces:
Sleeping
Sleeping
Upload 3 files
Browse files- app.py +38 -0
- gtts_lang.csv +48 -0
- requirements.txt +3 -0
app.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from gtts import gTTS
|
| 2 |
+
import streamlit as st
|
| 3 |
+
import pandas as pd
|
| 4 |
+
|
| 5 |
+
# Load language data from CSV file
|
| 6 |
+
data = pd.read_csv("gtts_lang.csv")
|
| 7 |
+
|
| 8 |
+
st.title("Text to Speech")
|
| 9 |
+
text = st.text_area("Enter your text", placeholder="Enter your text here")
|
| 10 |
+
|
| 11 |
+
# Create a dropdown menu for language selection
|
| 12 |
+
language = st.selectbox("Select Language", data["Language"], index = 43)
|
| 13 |
+
|
| 14 |
+
# Create a dropdown menu for speed selection
|
| 15 |
+
speed = st.selectbox("Select Language", ["Fast", "Slow"], index=0)
|
| 16 |
+
|
| 17 |
+
if st.button("Convert"):
|
| 18 |
+
try:
|
| 19 |
+
# Determine if the speech should be slow
|
| 20 |
+
is_slow = False if speed == "Fast" else True
|
| 21 |
+
|
| 22 |
+
# Get the selected language code
|
| 23 |
+
lang = data[data["Language"] == language]["Lang"].values[0]
|
| 24 |
+
|
| 25 |
+
# Create a gTTS object with the provided text and language
|
| 26 |
+
tts = gTTS(text = text, lang = lang, slow = is_slow)
|
| 27 |
+
|
| 28 |
+
except Exception as e:
|
| 29 |
+
st.error("Dönüşüm hatası", e)
|
| 30 |
+
|
| 31 |
+
try:
|
| 32 |
+
tts.save("output.mp3")
|
| 33 |
+
# Provide a download button for the user to download the MP3 file
|
| 34 |
+
with open("output.mp3", "rb") as f:
|
| 35 |
+
download = st.download_button("Download", data=f, file_name="output.mp3", mime="audio/mpeg")
|
| 36 |
+
|
| 37 |
+
except Exception as e:
|
| 38 |
+
st.error("İndirme hatası", e)
|
gtts_lang.csv
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ID,Language,Lang
|
| 2 |
+
1,Afrikaans (Afrikaans),af
|
| 3 |
+
2,Albanian (Shqip),sq
|
| 4 |
+
3,Azerbaijani (Azərbaycanca),az
|
| 5 |
+
4,Basque (Euskara),eu
|
| 6 |
+
5,Belarusian (Беларуская),be
|
| 7 |
+
6,Bengali (বাংলা),bn
|
| 8 |
+
7,Bulgarian (Български),bg
|
| 9 |
+
8,Czech (Čeština),cs
|
| 10 |
+
9,Danish (Dansk),da
|
| 11 |
+
10,Emoji (Emoji),emoji
|
| 12 |
+
11,Estonian (Eesti),et
|
| 13 |
+
12,Finnish (Suomi),fi
|
| 14 |
+
13,Frisian (Frysk),fy
|
| 15 |
+
14,Georgian (ქართული),ka
|
| 16 |
+
15,Croatian (Hrvatski),hr
|
| 17 |
+
16,Hindi (हिन्दी),hi
|
| 18 |
+
17,English (English),en
|
| 19 |
+
18,Spanish (Español),es
|
| 20 |
+
19,French (Français),fr
|
| 21 |
+
20,German (Deutsch),de
|
| 22 |
+
21,Portuguese (Português),pt
|
| 23 |
+
22,Arabic (العربية),ar
|
| 24 |
+
23,Italian (Italiano),it
|
| 25 |
+
24,Chinese (中文),zh-CN
|
| 26 |
+
25,Chinese (中文),zh-TW
|
| 27 |
+
26,Norwegian (Norsk),no
|
| 28 |
+
27,Russian (Русский),ru
|
| 29 |
+
28,Japanese (日本語),ja
|
| 30 |
+
29,Korean (한국어),ko
|
| 31 |
+
30,Latvian (Latviešu),lv
|
| 32 |
+
31,Lithuanian (Lietuvių),lt
|
| 33 |
+
32,Luxembourgish (Lëtzebuergesch),lb
|
| 34 |
+
33,Macedonian (Македонски),mk
|
| 35 |
+
34,Malay (Bahasa Melayu),ms
|
| 36 |
+
35,Maltese (Malti),mt
|
| 37 |
+
36,Persian (فارسی),fa
|
| 38 |
+
37,Romanian (Română),ro
|
| 39 |
+
38,Serbian (Српски),sr
|
| 40 |
+
39,Slovak (Slovenčina),sk
|
| 41 |
+
40,Slovenian (Slovenščina),sl
|
| 42 |
+
41,Swahili (Kiswahili),sw
|
| 43 |
+
42,Swedish (Svenska),sv
|
| 44 |
+
43,Thai (ภาษาไทย),th
|
| 45 |
+
44,Turkish (Türkçe),tr
|
| 46 |
+
45,Ukrainian (Українська),uk
|
| 47 |
+
46,Vietnamese (Tiếng Việt),vi
|
| 48 |
+
47,Greek (Ελληνικά),el
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gtts==2.5.4
|
| 2 |
+
streamlit==1.36.0
|
| 3 |
+
pandas==2.2.3
|