# Install dependencies !pip install gTTS python-docx !apt-get install -y ffmpeg # Imports from gtts import gTTS from IPython.display import Audio, display, HTML, clear_output import os from google.colab import files import tempfile import docx import ipywidgets as widgets # Global state lines = [] current_speed = 1.0 # Function to extract text from docx def get_text_from_docx(file_path): doc = docx.Document(file_path) text = [] for paragraph in doc.paragraphs: text.append(paragraph.text) return '\n'.join(text) # Function to create and play TTS audio def speak_urdu(text, speed=1.0): tts = gTTS(text=text, lang='ur') with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_file: tts.save(tmp_file.name) audio_path = tmp_file.name # Adjust speed using ffmpeg speed_str = str(speed) adjusted_audio = audio_path.replace(".mp3", "_fast.mp3") os.system(f"ffmpeg -i {audio_path} -filter:a \"atempo={speed_str}\" -vn {adjusted_audio} -y -loglevel quiet") # Play the audio display(Audio(adjusted_audio, autoplay=True)) # Upload .docx file using Colab method uploaded = files.upload() filename = next(iter(uploaded)) # Process the uploaded .docx file with tempfile.NamedTemporaryFile(delete=False, suffix=".docx") as tmp_file: tmp_file.write(uploaded[filename]) tmp_file_path = tmp_file.name text = get_text_from_docx(tmp_file_path) lines = [line.strip() for line in text.split('\n') if line.strip()] print("✅ File uploaded and processed successfully!") # Speed slider speed_slider = widgets.FloatSlider( value=1.0, min=0.5, max=1.5, step=0.1, description='Speed:', continuous_update=False ) def on_speed_change(change): global current_speed current_speed = change['new'] speed_slider.observe(on_speed_change, names='value') display(speed_slider) # Function to read the text aloud def display_line(line, idx): styled_line = f"