シェルスクリプトで実行しているときに長く実行され、ゆっくり起動するPythonプログラムを再起動しない方法は何ですか?

シェルスクリプトで実行しているときに長く実行され、ゆっくり起動するPythonプログラムを再起動しない方法は何ですか?

私はWhisperを使ってサウンドファイルをコピーします。私のハードウェアでは、起動には数分または数十分かかります(起動するたびに数ギガバイトのデータをロードして処理する必要があります)。私はこれを基本的にforループでファイルのささやきを提供するシェルスクリプトでラップしました。

問題は、Whisperが再起動し、サイクルごとにすべてのデータを再ロードする必要があることです。 Whisperの「セッション」を維持し、以前のセッションが完了した後に新しいファイルを追加する方が高速です。シェルスクリプト/forループ「環境」でこれを行うことはできますか?

考慮すべき2つの問題があります。

  1. 設定:これを行う3台のコンピュータがあり、ネットワークディレクトリのファイルを処理しており、新しいファイルがディレクトリに継続的に追加されています。

  2. マシンを同期するためにforループで最初に行うことは、入力ファイルに対応する出力ファイルがあることを確認することです。それ以外の場合は、touch次の出力ファイルを作成します。たとえば、入力ファイルは「2023-Oct-25 15:25:12.aac」で、touch「2023-Oct-25 15:25:12.aac」を使用します。 「対応するテキストファイルを生成します。TXT」)。

これにより、スクリプトの起動時に長いコマンドラインコマンド((擬似コード)に似ています)をリンクできなくなりますwhisper 1.aac > 1.txt --model large --language English, 2.aac > 2.txt --model large --language French , 3.aac > 3.txt --model medium --language French(3つの例ではパラメータが異なります)。カンマは新しい「項目」を表します。動作します。)既存のファイルは静的「リスト」ではないためです。

また、ファイルをサイズ順に処理したいので、あるコンピュータでファイルの処理が終わったら、ソースディレクトリを見つけて最大のファイル(実行が開始された後に追加されたファイルかもしれません)をインポートして処理する必要があります。新しいファイルが継続的に追加されるという事実と同様に、これらの要件により、実行開始時に完全なコマンドを使用して長くて完全なテキスト文字列を生成することはできません。

関連情報