2017-03-29 28 views
0

私の全体的な目的は、音声認識ソフトウェアの出力をPythonに文字列として入力することです。音声認識ソフトウェアは、リアルタイムで開いているフィールドに何を入力するかを入力します。それ以外の方法で出力することはできません。文章は数秒間の無音で区切られ、その間に音声認識ソフトウェアは何も入力しません。私は、各文章をPythonで別々の文字列にしたいと思います。Pythonの入力を一定時間入力が変わらないまで待つ方法

したがって、私のスクリプトは入力を常に聞いて、現在の入力が一定の時間変化しない場合は常に、現在の入力を文字列に保存して新しい入力を待ちます。これを実現するか、自分の目的を達成するためのより良い方法を持っているどのように誰もが知っている

While true: 
     start timer 
     While timer <= t: 
      Listen for input 
      if input changes: set timer to 0 
     save input to string 

:よう

何か?どうもありがとう!

+0

どのようなグラフィカルツールキット(テキストフィールドへのアクセスを提供するもの)を使用していますか?あるいは、音声認識ソフトウェアがコンソールに入力されますか? (そして後者のOSは?) –

+0

こんにちは、私はコンソールを使用していましたが、残念なことにWindowsでなければなりませんでしたが、他のパッケージやライブラリでこの目標をより簡単にすることができます。 –

答えて

0

マルチスレッドを実行します。スレッドでは、いくつかのタスクを同時に実行できます。私はあなたがスレッドとして入力フェッチ操作を行うことをお勧めし、別のスレッドでタイマー操作。これで、入力をフェッチしている間にタイマーをチェックし、タイマーが特定の制限に達するとフェッチを一時停止/再開できます。 マルチスレッドで参照が必要な場合:Multi-Threading tutorial in tutorialspoint

+0

ありがとう、私は今これを探しています。チェックするには、もう一方のスレッドに入力があるかどうかに基づいて、あるスレッドでタイマーをリセットすることは可能ですか? –

+0

@MichieldeJongはい。各スレッドは別個のプロセスのようなものですが、同じメモリ空間を共有します。 Pythonには、スレッド間通信によく使われる[queue](https://docs.python.org/2/library/queue.html)というクラスがあります。 –

関連する問題