LINUX.ORG.RU

uiop/launch-process и espeak

 


0

2

Экспериментирую я тут с espeak:

(defmacro with-espeak-process ((&rest args)
                               &body code)
  `(let ((*espeak-process*
           (uiop:launch-program '("espeak" ,@args)
                                :input :stream
                                :output :stream)))
     (unwind-protect
          (progn ,@code)
       (uiop:close-streams *esrap-process*)
       (uiop:terminate-process *esrap-process*))))

Но espeak после такой сессии не подыхает и может дальше принимать текст на озвучку и озвучивать его. Как его убить с не вдаваясь в специфичные функции sbcl?

SBCL

★★★★★

(uiop:terminate-process *espeak-process*) не работает?

А кто такой *esrap-process*? Он вообще при чём?

monk ★★★★★
()
Ответ на: комментарий от monk

Это называется я эпично затупил.

ados ★★★★★
() автор топика

Вот так правильно:

(defmacro with-espeak-process ((&rest args)
                               &body code)
  `(let ((*espeak-process*
           (uiop:launch-program '("espeak" ,@args)
                                :input :stream
                                :output :stream)))
     (unwind-protect
          (progn ,@code)
       (uiop:close-streams *espeak-process*)
       (uiop:wait-process *espeak-process*))))
ados ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.