21.01.10

Говорящий python

Разговорить змия по русски оказалось совсем несложно.

1. Ставим festival:

sudo aptitude install festival festvox-ru

2. Учим его болтать со включенной музыкой. Добавляем в конфиг ~/.festivalrc

;use ALSA
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

3. Ну и, собственно, модуль pystival состоящий из единственной функции:

import subprocess

def pysti(text):
    p = subprocess.Popen(
        ['festival', "--tts", "--language", "russian"], 
        stdin=subprocess.PIPE, stdout=subprocess.PIPE,
        stderr=subprocess.PIPE, close_fds=True)
    stdout, stderr = p.communicate(text.encode('utf-8'))     


if __name__ == "__main__":
    # тестим
    pysti(u'Шар шипящий, шар говнящий за моим грустил окном. ' +
        u'Я открыл окно тихонько и пустил бедняжку в дом.')