2016-06-29 19 views
-1

das Problem ist, dass wenn ich mein Skript ausführen dauert es länger als die erwartete Zeit 1 Sekunde, bevor es den nächsten Befehl sagt. Ich denke, das hat etwas mit dem Sprachbefehl zu tun. Was kann ich tun, um dies zu optimieren?wie Skript zu optimieren, um 1 Sekunde zwischen gesprochenen Worten mit Sprachmodul

edit: Link zum sppech Modul https://pypi.python.org/pypi/speech/0.5.2

edit2: pro Anfrage i die Ruhezeit gemessen nur Datetime verwenden. 2016.06.29 18: 39: 42,953000 2016.06.29 18: 39: 43,954000 ich fand, dass es

EDIT3 ziemlich genau war: Ich habe versucht, den Bau in dem Import win32com.client und es hat nicht funktioniert entweder

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

Erfassung der Systemzeit vor/nach dem Wort() Sie werden wahrscheinlich feststellen, dass der Schlaf ziemlich genau 1 Sekunde beträgt, und der Aufruf say() ist derjenige mit der Variablen Durati auf. –

+0

können Sie mir andeuten, wie das zu tun, und ja, ich glaube, Sie richtig bearbeiten sind: ich das bekam: 2016.06.29 18: 39: 42,953000 2016.06.29 18: 39: 43,954000 so fast perfekt 1 Sekunde wie gehe ich dann die Rede zu reparieren? – rasmus393

Antwort

0

siehe den Beitrag hier How accurate is python's time.sleep()?

Dort heißt es:

„die Genauigkeit der time.sleep Funktion depen ds auf die Genauigkeit von Ihrer Schlaf-Genauigkeit. Für Nicht-Echtzeit-Betriebssysteme wie ein Lager Windows ist das kleinste Intervall, in dem Sie schlafen können, ungefähr 10-13ms. Ich habe, wenn sie über die Mindest 10-13ms innerhalb weniger Millisekunden von , dass die Zeit genau schläft gesehen.“

+0

wegen der anderen Kerl Empfehlung Ich habe versucht, die Schlafzeit zu messen, um zu finden, dass es ziemlich genau ist 1 Sekunde – rasmus393

0

Wie Sie in den Kommentaren sagen, sleep (1) ist ziemlich genau 1 s.

Was Sie wollen, zu tun, jeder Teil nehmen 1s zu machen, ist das „sagen“ Anruf, Zeit und dann die verbleibende Zeit warten, um die zweite füllen Sie etwas wie folgt aus:.

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 ich habe nicht darüber nachgedacht, dass es noch nicht übereinstimmen wird, aber ty ich denke, das ist das Beste, was es wird – rasmus393

+0

@ rasmus393 Wenn eine Antwort hilfreich war oder Ihr Problem gelöst wurde, würde ich Sie ermutigen, es zu akzeptieren (nicht unbedingt meins!) – mbrig

+0

ist es in Ordnung, es ist nur hilfreich oder muss es mein Problem zu lösen. Sein nicht frech – rasmus393