File size: 2,131 Bytes
81b1a06 |
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
import streamlit as st
from gtts import gTTS
from io import BytesIO
st.markdown("""
<style>
.stApp {
background-color: #003366;
color: white;
}
.stButton>button {
color: black;
}
.title-text {
color: white;
}
.title-text {
color: white;
}
.text_area{
color: white;
}
.st.selectbox{
color: white;
}
.corner-gif {
position: fixed;
bottom: 10px;
right: 10px;
width: 100px;
height: auto;
z-index: 9999;
}
</style>
""",
unsafe_allow_html=True
)
st.markdown("""
<img class="corner-gif" src="https://i.gifer.com/PYn.gif">
""", unsafe_allow_html=True)
st.markdown('<h1 class="title-text">Текст в речь</h1>', unsafe_allow_html=True)
# Функция для преобразования текста в речь на выбранном языке
def say_text(text, lang='ru'):
tts = gTTS(text=text, lang=lang, slow=False)
fp = BytesIO()
tts.write_to_fp(fp)
fp.seek(0)
return fp.getvalue()
text = st.text_area("Введите текст")
# Выбор языка
language = st.selectbox('Выберите язык', ('Русский', 'Английский','Японский','Немецкий', 'Французский'))
# Сопоставление выбранного языка с кодом языка для gTTS
languages_map = {'Русский': 'ru', 'Английский': 'en','Японский':'ja','Немецкий':'de', 'Французский': 'fr'}
selected_language = languages_map[language]
# Кнопка для запуска процесса преобразования текста в речь
if st.button('Произнести'):
if text:
speech_audio = say_text(text, lang=selected_language) # Преобразуем текст в аудио на выбранном языке
st.audio(speech_audio, format='audio/mp3', start_time=0)
else:
st.error("Пожалуйста, введите текст.") |