Skip to main content

Pytońska treść do mowy – Polish text to speech

Project description

PyTDM

ie. Pytońska treść do mowy which is Polish for Python Text To Speech. Both for standard python and for iOS (iOS version is in the pythonista directory on github).

ok but why

This lil library was designed in order to assure that people programming for Pollacks have some sort of a offline-working text to speech python software. For english speaking people there already is the pyttsx3 library which provides such functionalities. If you want your programme to talk you simply run few commands

import pyttsx3
engine = pyttsx3.init()
engine.say("now we're talkin'")
engine.runAndWait()

and it's literally that easy! But for Polish there was no such thing. Until now.

installation

it is avalaible on PyPI! you can just run:

pip install pytdm

and you can use it just like that!

how it's made

It's based on the same pyttsx3 package I've just mentioned. The thing is that contrary to what many English speaking people think (looking at u americans) Polish actually is pronounceable for someone knowing English.

What PyTDM does is

  • first it translates* the given polish string/text into english
  • then it gets pronounced with the pyttsx3

The asterisk above next to the word "translates" is there for a reason – it's not exactly translation. More like transcription or transliteration. We shall get back to that later

usage

An example for how well does the software work with approxima... translation of polish words is to be seen in the demo.py file (avalaible on my github). You just can run it and then see how well it handles the most sacred polish song (actually the second sacred-est. For the most sacred one see barka.py. Both demo files are in the demos github directory) – the anthem of the third republic of Poland. Actually there is a video showing how the demo.py file works (recorded in low quality by me and posted on youtube) here.

But just for simple basic stuff you should do it as follows:

import pytdm
pytdm.mów("dzień dobry, dobranoc")

or the old way:

from pytdm import mowa
mowa.mów("dzień dobry, dobranoc")

and then you can happily listen to the sweet sound of the polish language spoken by the pyttsx3 synthesiser guy. Isn't that great?

dependencies

all you need are built-in packages like re and apart from that the pyttsx3 package avalaible on pypi.

what OS?

The only problem is it's different for every OS. Eg windows is stoopid (per usual) and reads 'ch' as /k/ and not /t͡ʃ/. For all I know it works best on iOS but I lack enough feedback to know whether it is fine on Linux and what other issues are there when using windows (+ I highly discourage everyone from using windows. like at all).

iOS

for iOS see the pythonista directory. Everything there is the iOS version of PyTDM

Function names are weird?

As a cautious reader might have noticed the main speaking function is mów (fyi it means say just like in the pyttsx3). One could ask wthell? or more properly co do diabła? but that is exactly how the package was intended to be: the functions have polish names. Deal with it.

behind the scenes

Now for some calrification about how the so called translation process actually works.

For every word passed to the mów function it is first tanslated by another polish-named func tłumacz (ie. translate) and it calls 2 more functions first:

  • repolonizuj ie. repolonise – it deals with all the weird polish ortographic stuff like the diagraphs, some consonants being devoiced etc
  • anglicyzuj ie. anglicise – it takes the repolonised text and tries to find the closes approximations for all the sounds that are to be found.

only then mów gives the anglicised repolonised text to the engine.say as shown above.

So when you do something like mów('czuję, że będzie dziś dość średni dzień') it first calls tłumacz which calls repolonizuj that returns this simplified polish text: 'czuje, że bendźe dźiś dość średni dźen' and it is passed to the anglicyzuj which gives the final result to be said by pyttsx3: 'choo yeah, zsheh behnjeh jeesh dawshtch shrehdnee jehn'

it sure is amazing

TO DO
  • saving mp3
  • polish the Polish
  • implement pronouncing numbers above 199
  • extend this list

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytdm-0.0.5.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

pytdm-0.0.5-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page