Przejdź do treści

Milena polski syntezator mowy dla systemu Linux

Menu

Malinowa Milena

Przede wszystkim: wersja na Raspberry Pi (konkretniej na Raspbiana) jest dość mocno okrojona. Nie ma tu aplikacji służących do tworzenia audioksiążek - na razie działa wyłącznie polecenie milena_say. Jednak w większości przypadków - np. RPi działający bez monitora z podłączonymi głośnikami - możliwość tworzenia głosowych komunikatów jest wystarczająca.

Instalacja

Niestety, malinka rozwija się tak szybko, że nie ma sensu tworzenie plików instalacyjnych. Pozostawię więc może informacje o nich jako część historii...

A więc po kolei:

A teraz historia...

Ściągamy następujące pliki:

Rozpoczynamy od instalacji mbroli i polskiego głosu:

sudo dpkg -i mbrola3.0.1h_armhf.deb
sudo apt install mbrola-pl1

Po zainstalowaniu mbroli wydajemy polecenie:

sudo dpkg -i milena*.deb

Teraz możemy wypróbować działanie syntezatora mowy:

milena_say cześć kolego

Powinniśmy usłyszeć powitanie.

Niestety - nie zawsze sprawa wygląda tak wesoło. Niektóre telewizory podłączone przez hdmi potrzebują dłuższego czasu (ponad sekundę) aby się dogadać z malinką; w efekcie tego opóźnienia komunikat może być w ogóle nie słyszany. Specjalnie w wersji dla Raspberry Pi skrypt milena_say posiada dodatkowy przełącznik -d pozwalający regulować opóźnienie generowania głosu - przykładowo polecenie:

milena_say -d 1300 cześć kolego

spowoduje, że generowana mowa będzie poprzedzona 1300 milisekundami ciszy, potrzebnej aby telewizor zrozumiał co ma robić.

Dla odważnych

Nowe wersje Mileny. Nie do końca sprawdzone, ale warto spróbować :)

Kedrigern - czyli głos dla Malinki

Serwer mowy przeznaczony jest przede wszystkim dla różnego rodzaju robotów i urządzeń IoT. W porównaniu z poleceniem milena_say jest dużo szybszy (mowa startuje prawie od razu) oraz ma większe możliwości konfiguracji (tempo, częstotliwość bazowa, częstotliwość próbkowania i odtwarzania). Dodatkowo ma możliwość podłączenia ust robota (na dzień dzisiejszy na razie jeden moduł obsługujący pojedynczą matrycę 8x8 LED na układzie MAX7219.

Zaczynamy od instalacji Mileny w wersji co najmniej 0.2.92. Jeśli polecenie milena_say działa, możemy przystąpić do instalacji serwera mowy. Ściągamy następujące pliki:

Teraz możemy przystąpić do instalacji.

Zaczynamy od instalacji serwera, czyli


sudo dpkg -i kedrigern_0.2.2-1_armhf.deb

Jeśli mamy podłąćzoną matrycę LED (8x8, MAX7219) możemy użyć jej jako wyświetlacz ust:


sudo dpkg -i kedrigern-matrix_0.2.2-1_armhf.deb
No i oczywiście coś co pozwoli nam korzystać z serwera, czyli:

sudo dpkg -i libkedrigern_0.2.2-1_armhf.deb

Teraz możemy sprawdzić, co potrafi nasz serwer:


kedrigern -h

lub (jeśli mamy zainstalowany moduł matrix)


kedrigern -M matrix -h
W odpowiedzi dostaniemy wykaz opcji, z którymi możemy uruchomić serwer. Aby je przetestować, należy otworzyć drugi terminal; w pierwszym uruchamiamy serwer poleceniem "kedrigern" z różnymi opcjami, w drugim testujemy poleceniem kdr-say.

Po ustaleniu opcji należy zedytować plik /etc/default/kedrigern i w nim ustawić domyślne parametry. Po przetestowaniu poleceniem


kedrigern -C /etc/default/kedrigern

możemy już uruchomić nasz serwer w tle:

sudo systemctl start kedrigern

Jeśli chcemy, aby serwer startował od razu przy starcie systemu, należy wydać polecenie:


sudo systemctl enable kedrigern

Do komunikacji z serwerem służą polecenia kdr-say, kdr-stop i kdr-speaking.

Moduł w Pythonie (działa zarówno w 2 jak i 3):

Typowe wywołanie:

from kedrigern import Voice
voice = Voice()
voice.say("To jest test")

Jeśli kogoś interesują pliki żródłowe, są tu: