File size: 1,951 Bytes
bb70dbf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st  # Импортируем библиотеку Streamlit для создания веб-приложения
from gtts import gTTS  # Импортируем Google Text-to-Speech для преобразования текста в речь
from io import BytesIO  # Импортируем BytesIO для работы с аудио-данными в памяти

# Функция для преобразования текста в речь на русском языке
def say_text(text, lang='ru'):
    tts = gTTS(text=text, lang=lang, slow=False)  # Создаём объект gTTS с текстом и языком
    fp = BytesIO()  # Используем BytesIO как буфер для аудиофайла
    tts.write_to_fp(fp)  # Записываем аудио в буфер
    fp.seek(0)  # Перемещаем указатель в начало файла
    return fp.getvalue()  # Возвращаем аудиоданные в виде байтов

st.title('Текст в речь на русском языке')  # Заголовок веб-приложения

text = st.text_area("Введите текст")  # Поле для ввода текста пользователем

# Кнопка для запуска процесса преобразования текста в речь
if st.button('Произнести'):
    if text:  # Проверяем, что текст был введён
        speech_audio = say_text(text)  # Преобразуем текст в аудио
        st.audio(speech_audio, format='audio/mp3', start_time=0)  # Воспроизводим аудио в веб-приложении
        st.snow()
    else:  # Если текст не был введён, выводим сообщение
        st.write("Пожалуйста, введите текст.")  # Просим пользователя ввести текст
        st.error("Oups")