SCROLL
Среднее время на прочтение: 2 мин.

Установка из исходников синтезатора речи Festival 2.4 на Ubuntu 14.04 Trusty Tahr. Добавление в синтезатор Festival поддержку русской речи.

Наткнулся недавно на такую замечательную программу Festival. Данная утилита является синтезатором речи, а именно с помощью нее можно заставить ваш ПК читать тексты, записывать прочтенный текст в звуковой файл. Мне показалась данная программа интересной и я решил разобрать как установить ее на Ubuntu 14.04 Trusty Tahr.

 

JUQwJUExJUQwJUJFJUQwJUIxJUQwJUI4JUQxJTgwJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJThGJTIwJUQxJTgwJUQwJUI1JUQxJTg4JUQwJUI4JUQwJUJCJTIwJUQwJUI4JUQwJUI3JTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJEJUQxJThFJUQxJThFJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThFJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQwJUJDJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJTIwMi40LiUyMCVEMCU5MiUyMCVEMSU4MCVEMCVCNSVEMCVCRiVEMCVCRSVEMCVCNyVEMCVCOCVEMSU4MiVEMCVCRSVEMSU4MCVEMCVCOCVEMSU4RiVEMSU4NSUyMFVidW50dSUyMDE0LjA0JTIwVHJ1c3R5JTIwVGFociVDMiVBMCVEMCVCRCVEMCVCMCVEMSU4NSVEMCVCRSVEMCVCNCVEMCVCOCVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMSU4RiUyMDIuMS4lMjAlRDAlQTIlRDAlQjAlRDAlQkElMjAlRDAlQjYlRDAlQjUlMjAlRDElODAlRDAlQjAlRDAlQjclRDAlQkUlRDAlQjElRDElODAlRDAlQjAlRDAlQkIlMjAlRDAlQkElRDAlQjAlRDAlQkElMjAlRDAlQjclRDAlQjAlRDElODElRDElODIlRDAlQjAlRDAlQjIlRDAlQjglRDElODIlRDElOEMlMjBGZXN0aXZhbCUyMCVEMCVCMyVEMCVCRSVEMCVCMiVEMCVCRSVEMSU4MCVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCRiVEMCVCRS0lRDElODAlRDElODMlRDElODElRDElODElRDAlQkElRDAlQjgu

 

Создаем временный каталог, куда будем скачивать необходимые файлы для сборки Festival

sudo mkdir /usr/src/temp

Переходим в созданный каталог

cd /usr/src/temp

Скачиваем архивы сборки Festival

sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/speech_tools-2.4-release.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festival-2.4-release.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_CMU.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_OALD.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_POSLEX.tar.gz

JUQwJUEwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUIwJUQxJTgwJUQxJTg1JUQwJUI4JUQwJUIyJUQxJThC

sudo tar -zxvf speech_tools-2.4-release.tar.gz -C /usr/src/
sudo tar -zxvf festival-2.4-release.tar.gz -C /usr/src/
sudo tar -xvf festlex_CMU.tar.gz -C /usr/src/
sudo tar -xvf festlex_OALD.tar.gz -C /usr/src/
sudo tar -xvf festlex_POSLEX.tar.gz -C /usr/src/

Установим зависимость, для успешной сборки пакетов

sudo apt-get install libncurses-dev

JUQwJUEyJUQwJUI1JUQwJUJGJUQwJUI1JUQxJTgwJUQxJThDJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJBJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUI1JTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUIyLiUyMCVEMCVBMSVEMCVCRiVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCMCUyMCVEMSU4MSVEMCVCRSVEMCVCMSVEMCVCNSVEMSU4MCVEMCVCNSVEMCVCQyUyMCVEMCVCRiVEMCVCMCVEMCVCQSVEMCVCNSVEMSU4MiUyMHNwZWVjaF90b29scyUzQQ==

cd /usr/src/speech_tools
sudo ./configure
sudo make
sudo make install

JUQwJUEyJUQwJUI1JUQwJUJGJUQwJUI1JUQxJTgwJUQxJThDJTIwJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUI4JUQxJTgwJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTIwZmVzdGl2YWwlM0E=

cd ..
cd festival
sudo ./configure
sudo make
sudo make install

Добавляем в PATH путь до бинарных файлов:

export PATH=$PATH:/usr/src/festival/bin/

Переходим во временный каталог:

cd /usr/src/temp

JUQwJUExJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI3JUQwJUIyJUQxJTgzJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI1JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQxJThCJTIwRmVzdGl2YWwlMjAoJUQwJTkwJUQwJUJEJUQwJUIzJUQwJUJCJUQwJUI4JUQwJUI5JUQxJTgxJUQwJUJBJUQwJUI4JUQwJUI5JTJDJTIwJUQwJUEwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUI4JUQwJUI5KS4lMjAlRDAlOTAlRDAlQkQlRDAlQjMlRDAlQkIlRDAlQjglRDAlQjklRDElODElRDAlQkElRDAlQjAlRDElOEYlMjAlRDElODAlRDAlQjUlRDElODclRDElOEMlMkMlMjAlRDAlQjQlRDAlQkUlRDElODElRDElODIlRDElODMlRDAlQkYlRDAlQkQlRDAlQjAlMjAlRDAlQjIlMjAlRDAlQkMlRDElODMlRDAlQjYlRDElODElRDAlQkElRDAlQkUlRDAlQkMlMjAlRDAlQjglMjAlRDAlQjYlRDAlQjUlRDAlQkQlRDElODElRDAlQkElRDAlQkUlRDAlQkMlMjAlRDAlQjglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjUlRDAlQkQlRDAlQjglRDAlQjglMkMlMjAlRDAlQjAlMjAlRDElODAlRDElODMlRDElODElRDElODElRDAlQkElRDAlQjAlRDElOEYlMjAlRDElODAlRDAlQjUlRDElODclRDElOEMlMjAlRDElODIlRDAlQkUlRDAlQkIlRDElOEMlRDAlQkElRDAlQkUlMjAlRDAlQjIlMjAlRDAlQkMlRDElODMlRDAlQjYlRDElODElRDAlQkElRDAlQkUlRDAlQkMu

sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/kal_diphone.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/msu_ru_nsh_clunits-0.5.tar.bz2

Создаем каталоги для расположения речевых данных:

sudo mkdir -p /usr/src/festival/lib/voices/english
sudo mkdir -p /usr/src/festival/lib/voices/russian

Распаковываем архив с английской речью:

sudo tar -zxvf kal_diphone.tar.gz -C /usr/src/festival/lib/voices/english/

JUQwJUEwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIwJUQxJTgwJUQxJTg1JUQwJUI4JUQwJUIyJTIwJUQxJTgxJTIwJUQxJTgwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQxJTgwJUQwJUI1JUQxJTg3JUQxJThDJUQxJThFJTNB

sudo tar -jxvf msu_ru_nsh_clunits-0.5.tar.bz2 -C /usr/src/festival/lib/voices/russian/

 

JUQwJTkyJUQwJUJEJUQwJUI1JUQxJTgxJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQxJThCJUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUI4JTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUIyJUQwJUJFJUQxJTgxJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI4JUQwJUI3JUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUI5JTIwJUQxJTgwJUQwJUI1JUQxJTg3JUQwJUI4LiUyMCVEMCVBMCVEMCVCNSVEMCVCNCVEMCVCMCVEMCVCQSVEMSU4MiVEMCVCOCVEMSU4MCVEMSU4MyVEMCVCNSVEMCVCQyUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOSVEMCVCQSVEMCVCOCUyMCVEMSU4RiVEMCVCNyVEMSU4QiVEMCVCQSVEMCVCRSVEMCVCMiUzQQ==

sudo nano /usr/src/festival/lib/languages.scm

JUQwJTkyJTIwJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQwJUJFJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwJTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUJBJUQwJUI4JTNB

(define (language_russian)
 "(language_russian)
  Set up language parameters for Russian."
  (set! male1 voice_msu_ru_nsh_clunits)
  (male1)
  (Parameter.set 'Language 'russian)
)

Находим строки:

((equal? language 'americanenglish)
 (language_american_english))

JUQwJTlEJUQwJUI4JUQwJUI2JUQwJUI1JTIwJUQwJUIyJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUJBJUQwJUI4JTNB

((equal? language 'russian) 
 (language_russian))

JUQwJUExJUQwJUJFJUQxJTg1JUQxJTgwJUQwJUIwJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTgwJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJBLiUyMCVEMCU5RCVEMCVCMCUyMCVEMSU4RCVEMSU4MiVEMCVCRSVEMCVCQyUyMCVEMSU4MyVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCQSVEMCVCMCUyMCVEMCVCOCUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOSVEMCVCQSVEMCVCMCUyMEZlc3RpdmFsJTIwJUQwJUI3JUQwJUIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTg4JUQwJUI1JUQwJUJEJUQwJUIwLiUyMCVEMCU5RiVEMSU4MCVEMCVCRSVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCOCVEMCVCQyUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMSU4MyUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCMyVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCQyVEMSU4QiUyQyUyMCVEMCVCMiVEMCVCRSVEMSU4MSVEMCVCRiVEMSU4MCVEMCVCRSVEMCVCOCVEMCVCNyVEMCVCMiVEMCVCNSVEMCVCNCVEMCVCNSVEMCVCQyUyMCVEMSU4MiVEMCVCNSVEMCVCQSVEMSU4MSVEMSU4MiUyMCVEMCVCRCVEMCVCMCUyMCVEMCVCMCVEMCVCRCVEMCVCMyVEMCVCQiVEMCVCOCVEMCVCOSVEMSU4MSVEMCVCQSVEMCVCRSVEMCVCQyUzQQ==

echo "Hello world" | festival --tts

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUIyJUQwJUJFJUQxJTgxJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI4JUQwJUI3JUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgxJUQxJTgyJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTNB

echo "Привет" | festival --tts --language russian

Если все сделали правильно, то услышим голос на английском и на русском.

 

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUIzJUQwJUJFJUQwJUJCJUQwJUJFJUQxJTgxJUQwJUIwJTIwJUQwJUJGJUQwJUJFLSVEMSU4MyVEMCVCQyVEMCVCRSVEMCVCQiVEMSU4NyVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RSUyQyUyMCVEMSU4MiVEMCVCRSUyMCVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCMCVEMCVCQSVEMSU4MiVEMCVCOCVEMSU4MCVEMSU4MyVEMCVCNSVEMCVCQyUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiUzQQ==

sudo nano /usr/src/festival/lib/siteinit.scm

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgxJUQxJTgyJUQwJUJFJUQwJUJDJTNB

(provide 'siteinit)

Пишем следующее:

(set! voice_default 'voice_msu_ru_nsh_clunits)

JUQwJUEyJUQwJUI1JUQwJUJGJUQwJUI1JUQxJTgwJUQxJThDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQxJTgzJUQxJTgxJUQwJUJCJUQxJThCJUQxJTg4JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUIyJUQwJUJFJUQxJTgxJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI4JUQwJUI3JUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgwJUQxJTgzJUQxJTgxJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTIwJUQwJUJEJUQwJUI1JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JTIwJUUyJTgwJTk0bGFuZ3VhZ2UlMjBydXNzaWFuLg==

 

RmVzdGl2YWwlMjAlRDElODIlRDAlQjAlRDAlQkElMjAlRDAlQjYlRDAlQjUlMjAlRDAlQkMlRDAlQkUlRDAlQjYlRDAlQjUlRDElODIlMjAlRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDAlQjklMjAlRDElODIlRDAlQjUlRDAlQkElRDElODElRDElODIlMjAlRDAlQjclRDAlQjAlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDElODIlRDElOEMlQzIlQTAlRDAlQjIlMjAlRDAlQjclRDAlQjIlRDElODMlRDAlQkElRDAlQkUlRDAlQjIlRDAlQkUlRDAlQjklMjAlRDElODQlRDAlQjAlRDAlQjklRDAlQkIlMjB3YXYlM0E=

cat test.txt | text2wave > test.wav

Вот так можно указать какой речевой язык использовать при создании звукового файла (пример. использовать русский язык):

cat test.txt | text2wave > test.wav -eval '(voice_msu_ru_nsh_clunits)'

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUIxJUQwJUI4JUQxJTgyJUQxJTgwJUQwJUI1JUQwJUI5JUQxJTgyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUIyJUQxJThCJUQxJTg1JUQwJUJFJUQwJUI0JUQxJThGJUQxJTg5JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI3JUQwJUIyJUQxJTgzJUQwJUJBJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUIwJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQwJUIwJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUIyJUQxJThCJUQwJUIzJUQwJUJCJUQxJThGJUQwJUI0JUQwJUI1JUQxJTgyJUQxJThDJTIwJUQxJTgyJUQwJUIwJUQwJUJBJTNB

cat test.txt | text2wave > test.wav -F 8000

Запись воспроизведения текста с последующей конвертацией звукового файла в формат mp3:

cat text.txt | text2wave | lame - test.mp3

 

Чтобы добиться более приемлемого произношения текста, в текста можно указывать где использовать ударения в словах, для более точного произношения. Это делается знаками (+, , .), например:

echo "До+брый день.. Хочу сказать спас+ибо Жак+онде. за предоставленный материал" | festival --tts --language russian

 

JUQwJUExJTIwJUQwJUJGJUQwJUJFJUQwJUJDJUQwJUJFJUQxJTg5JUQxJThDJUQxJThFJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI4JUQwJUJEJUQxJTgyJUQwJUI1JUQwJUI3JUQwJUIwJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUIwJTIwJUQxJTgwJUQwJUI1JUQxJTg3JUQwJUI4JTJDJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgwJUQwJUI1JUQwJUIwJUQwJUJCJUQwJUI4JUQwJUI3JUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUI4JUQwJUJEJUQxJTgyJUQwJUI1JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUIyJUQwJUI1JUQxJTg5JUQwJUI4JTJDJTIwJUQxJTgxJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUJDJUQwJUI4JTIwJUQxJThGJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUIyJUQwJUJFJUQwJUI3JUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQxJTgzJTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUI4JUQxJTgyJUQxJTgxJUQxJThGLg==

 

Понравилась или оказалась полезной статья, поблагодари автора

 

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.