Spaces:
Sleeping
Sleeping
Upload 2 files
Browse files- app.py +25 -0
- requirements.txt +3 -0
app.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st # Импортируем библиотеку Streamlit для создания веб-приложения
|
| 2 |
+
from gtts import gTTS # Импортируем Google Text-to-Speech для преобразования текста в речь
|
| 3 |
+
from io import BytesIO # Импортируем BytesIO для работы с аудио-данными в памяти
|
| 4 |
+
|
| 5 |
+
# Функция для преобразования текста в речь на русском языке
|
| 6 |
+
def say_text(text, lang='ru'):
|
| 7 |
+
tts = gTTS(text=text, lang=lang, slow=False) # Создаём объект gTTS с текстом и языком
|
| 8 |
+
fp = BytesIO() # Используем BytesIO как буфер для аудиофайла
|
| 9 |
+
tts.write_to_fp(fp) # Записываем аудио в буфер
|
| 10 |
+
fp.seek(0) # Перемещаем указатель в начало файла
|
| 11 |
+
return fp.getvalue() # Возвращаем аудиоданные в виде байтов
|
| 12 |
+
|
| 13 |
+
st.title('Текст в речь на русском языке') # Заголовок веб-приложения
|
| 14 |
+
|
| 15 |
+
text = st.text_area("Введите текст") # Поле для ввода текста пользователем
|
| 16 |
+
|
| 17 |
+
# Кнопка для запуска процесса преобразования текста в речь
|
| 18 |
+
if st.button('Произнести'):
|
| 19 |
+
if text: # Проверяем, что текст был введён
|
| 20 |
+
speech_audio = say_text(text) # Преобразуем текст в аудио
|
| 21 |
+
st.audio(speech_audio, format='audio/mp3', start_time=0) # Воспроизводим аудио в веб-приложении
|
| 22 |
+
st.snow()
|
| 23 |
+
else: # Если текст не был введён, выводим сообщение
|
| 24 |
+
st.write("Пожалуйста, введите текст.") # Просим пользователя ввести текст
|
| 25 |
+
st.error("Oups")
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
st
|
| 2 |
+
gTTS
|
| 3 |
+
BytesIO
|