File size: 3,682 Bytes
89e32fe d88ec6f 84675d1 89e32fe d88ec6f 89e32fe d88ec6f 89e32fe d88ec6f e8b325c d88ec6f 89e32fe d88ec6f 2be0d21 89e32fe d88ec6f 89e32fe d88ec6f 89e32fe d88ec6f 89e32fe d88ec6f 89e32fe d88ec6f 89e32fe d88ec6f |
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
import streamlit as st
from transformers import pipeline
from gtts import gTTS
import tempfile
import os
from googletrans import Translator
# Initialize Hugging Face text-generation model pipeline (you can choose a different model like GPT-2, GPT-3, etc.)
generator = pipeline("text-generation", model="gpt2")
# Initialize Translator for language detection and translation
translator = Translator()
# Function for text generation
def generate_text(user_input):
try:
# Generate response using the GPT-2 model
response = generator(user_input, max_length=150, num_return_sequences=1)
return response[0]['generated_text']
except Exception as e:
return f"Error generating text: {e}"
# Function for text-to-speech with language support
def text_to_speech(text, lang):
try:
tts = gTTS(text=text, lang=lang)
# Create a temporary file to store the audio
temp_audio = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
tts.save(temp_audio.name)
return temp_audio.name
except Exception as e:
return f"Error generating speech: {e}"
# Streamlit Page Configuration
st.set_page_config(page_title="GPT-2 Chatbot with Text-to-Speech (Multi-language)", layout="wide")
# Sidebar navigation
menu = st.sidebar.radio("Navigation", ["Chatbot", "About"])
# Language options
languages = {
"English": "en",
"Spanish": "es",
"French": "fr",
"German": "de",
"Italian": "it",
"Portuguese": "pt",
"Dutch": "nl",
"Russian": "ru",
"Chinese": "zh",
"Japanese": "ja",
"Hindi": "hi"
}
# Chatbot Interface
if menu == "Chatbot":
st.title("GPT-2 Chatbot with Multi-language Support")
st.write("Welcome to the GPT-2 powered chatbot with multiple language support. Ask any question, and I will generate a response.")
# Language selection
lang_choice = st.selectbox("Select Language for Chatbot", list(languages.keys()))
lang_code = languages[lang_choice]
# Text input for the user
user_input = st.text_input(f"Ask your question in {lang_choice}:", "")
if st.button("Generate Response"):
if user_input:
# Translate user input to English (or the language of the model)
translated_input = translator.translate(user_input, src=lang_code, dest="en").text
# Generate response from GPT-2 model
generated_text = generate_text(translated_input)
# Translate the response back to the selected language
translated_response = translator.translate(generated_text, src="en", dest=lang_code).text
st.write(f"### Response in {lang_choice}:")
st.write(translated_response)
# Convert response to speech in selected language
audio_path = text_to_speech(translated_response, lang_code)
st.audio(audio_path, format="audio/mp3")
else:
st.warning("Please enter a question.")
# About Section
elif menu == "About":
st.title("About")
st.write("""
This is a simple web application powered by GPT-2 (Hugging Face Transformers) and Google Text-to-Speech (gTTS).
**Features:**
- Ask a question in your preferred language, and GPT-2 will generate a response.
- The response will be translated back to your language and also converted to speech.
**How it works:**
- GPT-2 model generates text based on your input in any language.
- The text is then translated to English, processed by GPT-2, and translated back to your preferred language.
- The response is converted to speech using the `gTTS` library in the selected language.
""") |