Posts

Building a Multilingual Text-to-Speech Tool with Python and gTTS

Image
Text-to-speech (TTS) technology has become increasingly important in our digital world, serving various purposes from accessibility improvements to content consumption on the go. Today, I'll walk you through a practical Python command-line tool that converts text files into speech in multiple languages using Google's Text-to-Speech (gTTS) service. Key Features Support for 15 languages including English, Spanish, French, German, and more Simple command-line interface Handles UTF-8 encoded text files Generates high-quality MP3 audio files Easy installation and setup Technical Implementation The tool is built with Python and uses several key components: gTTS Library : The core functionality relies on Google's Text-to-Speech service through the gTTS Python package, which handles the text-to-speech conversion and supports multiple languages. Command Line Interface : Built using Python's argparse module, providing a user-friendly interface

Schematy rozwiązywania równań różniczkowych [Polish]

Image
Zamieściłem tu schematy rozwiązywania równań różniczkowych. Do korzystania z nich wymagana jest znajomość rachunku różniczkowego i całkowego. Informacje ogólne Rzędy równań różniczkowych: I rzędu - zależność pomiędzy pochodną funkcji, samą funkcją i jej argumentem II rzędu - występuje także druga pochodna, np. \( x''=ax \) (wyższe rzędy) - ANALOGICZNIE Schematy Lista schematów: Równania różniczkowe zwyczajne Równania o zmiennych rozdzielonych równanie x'=p(t) równanie x'=p(t)x przypadek ogólny: x'=p(t)q(x) Równania różniczkowe liniowe I rzędu Jednorodne Niejednorodne II rzędu O stałych współczynnikach Jednorodne Niejednorodne

Vibrating string equation (without damping)

Image
Vibrating string without damping is represented by the following differential equation: $$ \begin{cases} \begin{array}{l@{\ }l@{\ }l} \frac{{{\partial ^2}u}}{{\partial {t^2}}} = {a^2}\frac{{{\partial ^2}u}}{{\partial {x^2}}} , & \hspace{0.25in} 0 \leqslant x \leqslant L , 0 \leqslant t \leqslant \infty , & \hspace{0.25in} \text{string equation} ; \\ u\left( {0,t} \right) = u\left( {L,t} \right) = 0 , & \hspace{0.25in} 0 \leqslant t \leqslant \infty , & \hspace{0.25in} \text{boundary conditions} ; \\ u\left( {x,0} \right) = f\left( x \right) , \frac{{\partial u}}{{\partial t}}\left( {x,0} \right) = 0 , & \hspace{0.25in} 0 \leqslant x \leqslant L , & \hspace{0.25in} \text{initial conditions}; \end{array} \end{cases} \tag{1} $$ Splitting the string equation into two coupled equations We need to transform the equation: $$ \frac{{{\partial ^2}u}}{{\partial {t^2}}} = {a^2}\frac{{{\partial ^2}u}}{{\parti

PyCharm - useful shortcuts

Image
Here are listed useful PyCharm shortcuts, which I use very often. If you have some other favourite shortcuts, please put it in a comment. Find action Ctrl + Shift + A - find action View Alt + 1 - toggle tool window Project Alt + 7 - toggle tool window Structure Navigation Ctrl + MOUSE LB CLICK - go to clicked object definition / occurences Ctrl + Shift + RIGHT (Linux/Ubuntu) - navigate forward Ctrl + Alt + RIGHT (other OS) Ctrl + Shift + LEFT (Linux/Ubuntu) - navigate backwards Ctrl + Alt + LEFT (other OS) Ctrl + G - go to line Ctrl + N - finds a class by name Ctrl + Shift + N - finds a file by name or path Alt + RIGHT, Alt + LEFT - switch between tabs Alt + UP, Alt + DOWN - jump between functions in code Search / replace Ctrl + F - find string/regexp in file Ctrl + L - move to next occurrence Ctrl + Shift + L - move to previous occurrence Ctrl + R - re

Command History Searching

Image
Using this trick you can speed up a lot your work at command line in Linux (and not only). Pressing Ctrl + R allows you to quickly find a previously used command. How to use it? In command line terminal press Ctrl + R . Start typing some part of command, for example `pul`: (reverse-i-search)`pul': git pull If you want to find a next match, press Ctrl + R again (repeat until successful). If you want to edit the current match press LEFT or RIGHT and edit the command. If you want to exit without running any command, press Ctrl + G . If command you need is displayed, press ENTER to run it. Useful shortcuts These shortcuts are not related to the bash history tool (Ctrl+R), but may be useful if you edit a found command. Ctrl + LEFT/RIGHT - jump over the words. Ctrl + A - move the cursor to the beginning of the line. Ctrl + E - move the cursor to the end of the line. Ctrl + U - remove the content from the be

Special relativity: Train-platform paradox

Image
This article is based on the Train-platform paradox simlation available at https://train.tdworakowski.com . The paradox If you consider two relativistic phenomena which are length contraction and time dilation , the special theory of relativity may seem inconsistent. Imagine a train 100 meters long is passing a platform 100 meters long traveling at 90% of the speed of light . According to the theory, for the observer on the platform the train is shortened and the time inside it elapses more slowly. But for observer inside the train the length of the train is normal, time elapses normally, however the platform is shortened and the time on the platform elapses more slowly. How is it possible that both of these facts coexist? To answer this question we need to understand the third relativistic phenomenon which is relativity of simultaneity . If we consider these three phenomena together, the theory becomes consistent. You can play with the simulation to confirm that the theory

Wiatr eteru [Polish]

Image
Bardzo ciekawą koncepcję fizyczną tzw. “eteru” przedstawiłem tu w formie krótkiego opowiadania. Jest to swego rodzaju preludium do teorii względności. Zapraszam do lektury. Opowiadanie Była letnia gwieździsta noc, kiedy nad łąkami rozbrzmiewał śpiew świerszczy, a łagodny ciepły wiatr przenikał korony sosen w pobliskim lesie. Czy to był wiatr eteru? Nie, o nim opowiem za chwilę. A na razie wsłuchajmy się dalszą część opowieści. Coś zaczęło mącić spokój. Odgłos stawał się coraz silniejszy. To był nadjeżdżający pociąg. Z ciemności wyłoniły się trzy jasne punkty, z których wydostające się światło przecinało przestrzeń tworząc efektowną smugę. Jarek postanowił rozprostować nogi. Wyszedł z przedziału i skierował się w stronę przodu pociągu do wagonu restauracyjnego, by zrelaksować się przy filiżance gorącej herbaty. Gdy szedł korytarzem mijając kolejne przedziały wpadła mu do głowy pewna myśl, a w zasadzie pytanie: “Z jaką prędkością się teraz poruszam?”. Przeanalizujmy teraz tę s