2016-06-29 8 views
-1

проблема заключается в том, что при запуске моего сценария требуется больше времени, чем ожидаемое время за 1 секунду до того, как будет произнесена следующая команда. Я думаю, что это имеет какое-то отношение к речевой команде. что я могу сделать, чтобы оптимизировать это?Как оптимизировать сценарий, чтобы иметь 1 секунду между произносимыми словами с использованием речевого модуля

редактировать: ссылка на модуль sppech https://pypi.python.org/pypi/speech/0.5.2

edit2: по запросу я измерил время сна только с помощью DateTime. 2016-06-29 18: 39: 42,953000 2016-06-29 18: 39: 43,954000 я обнаружил, что это было довольно точным

Edit3: я пытался построить в импорте win32com.client и оно не работает, либо

import speech 
import time 
import os 

def exercise1(): 
    speech.say("exercise1") 
    time.sleep(0.5) 
    for n in range(0, rep*2): 
     speech.say("1") 
     t ime.sleep(1) 
     speech.say("2") 
     time.sleep(1) 
     speech.say("3") 
     time.sleep(1) 
     speech.say("switch") 
+3

захвата системного времени до/после Say() вызовы. Вероятно, вы найдете, что сон для сна составляет ровно 1 секунду, а вызов say() - с переменной durati на. –

+0

вы можете намекнуть мне, как сделать это, и да я думаю, что вы правильно редактировать: я получил это: 2016-06-29 18: 39: 42,953000 2016-06-29 18: 39: 43,954000 так почти отлично 1 секунда, как я могу исправить речь? – rasmus393

ответ

0

См пост здесь How accurate is python's time.sleep()?

Он говорит:

«точность функции time.sleep висимость ds с точностью точность вашей базовой ОС. Для не-реального времени ОС, как складе Windows, самый маленький интервал, который вы можете спать, составляет около 10-13 мс. Я видел точные сны в течение нескольких миллисекунд то время, когда выше минимальных 10-13ms.»

+0

из-за другой рекомендации парня я попытался измерить время сна, чтобы найти, что он довольно точный 1 секунда – rasmus393

0

Как говорят в комментариях, сон (1) довольно точно 1s.

То, что вы хотите чтобы сделать, чтобы каждая часть займет 1s, это время «говорят» вызов, а затем ждать, оставшееся время, чтобы заполнить второе Что-то вроде этого:.

start = time.time() 
speech.say("whatever") 
end = time.time() 
sleep(1 - (end - start)) # Wait however long will bring the time up to 1 second total 
+0

ty i havent подумал о том, что на самом деле он все еще не собирается совпадать, но я думаю, что это лучший его способ будет – rasmus393

+0

@ rasmus393 Если ответ был полезен или решил вашу проблему, я бы посоветовал вам принять его (не обязательно мой!) – mbrig

+0

это прекрасно, это просто полезно или он должен решить мою проблему. не будучи дерзкий – rasmus393

 Смежные вопросы

  • Нет связанных вопросов^_^