Espeak на Windows 7 и Python 2.7

В начале скажу, что здесь есть похожий пост: Как использовать espeak с python, и я использовал ответы из этого поста, но все равно получаю ошибки, поэтому, возможно, вы сможете помочь мне исправить это.

import subprocess
text = '"Hello world"'
subprocess.call('espeak '+text, shell=True)

Этот код дает мне ошибку:

'espeak' is not recognized as an internal or external command,
operable program or batch file.

пс. Я думаю, что правильно установил espeak, потому что я могу использовать в строке CMD:

espeak "text"

и он будет говорить "текст" правильно.

PS2. вероятно, ответ на этот вопрос будет ответом на мой другой вопрос, который я разместил ранее. (Как сохранить вывод PyTTSx в файл wav< /а>)


person degath    schedule 18.08.2016    source источник
comment
Вы уверены, что можете запустить espeak из командной строки в том же терминале, в котором вы вызываете свой скрипт Python?   -  person Chris_Rands    schedule 18.08.2016
comment
О, теперь я понял. Я использую espeak say на своей CMD-консоли в Windows (пуск->cmd), и там все работает правильно. Но когда я использую терминал python в своем pyCharm, он дает мне «espeak» не распознается как внутренняя или внешняя команда, работающая программа или ошибка пакетного файла. Любая идея, как решить мою проблему?   -  person degath    schedule 18.08.2016
comment
Попробуйте добавить полный путь к вашей установке espeak   -  person Chris_Rands    schedule 18.08.2016
comment
получилось, спасибо :-)   -  person degath    schedule 18.08.2016


Ответы (1)


person    schedule
comment
просто: import subprocess text = "something" subprocess.call(['espeak', text], shell=True) он все еще дает мне «espeak» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. как я и написал в начале поста - person degath; 18.08.2016
comment
попробуйте 'c:\\espeak.bat' - person vadim vaduxa; 18.08.2016
comment
не знаю, что вы имеете в виду. ты хочешь, чтобы я поместил это в консоль или как? - person degath; 18.08.2016
comment
Пинг 127.0.0.1 с 32 байтами данных: Ответ от 127.0.0.1: байт=32 раз‹1 мс TTL=128 Ответ от 127.0.0.1: байт=32 раз‹1 мс TTL=128 Ответ от 127.0.0.1: байт=32 раз ‹1 мс TTL=128 Ответ от 127.0.0.1: байты=32 время‹1 мс TTL=128 Статистика пинга для 127.0.0.1: Пакеты: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), приблизительное время приема-передачи в миллисекундах: Минимум = 0 мс, Максимум = 0 мс, Среднее = 0 мс, похоже, пинг работает нормально. - person degath; 18.08.2016
comment
subprocess.call(['c:\\123\\espeak.exe', text], shell=True) - person vadim vaduxa; 18.08.2016
comment
Хорошо, это сработало, я прочитал то, что хотел, я рад, что вы мне помогли, и действительно спасибо за помощь, но теперь мне любопытно, почему мой start-›cmd не работает как терминал python... где различия? Может быть, вы знаете, где я могу найти статью, которая объяснит мне это, или, может быть, вы можете ответить в нескольких словах? :-) - person degath; 18.08.2016
comment
ааа, проблема с путями. Я использовал os.chdir(os.path.join(C:\Program Files (x86)\eSpeak\command_line)) и теперь он работает как надо :-) - person degath; 18.08.2016