从 shell 脚本执行时如何避免重新启动长时间运行且启动缓慢的 python 程序?

从 shell 脚本执行时如何避免重新启动长时间运行且启动缓慢的 python 程序?

我使用 Whisper 转录声音文件。在我的硬件上,启动它需要几分钟甚至几十分钟(每次启动时都需要加载和处理几 GB 的数据)。我将其封装在一个 shell 脚本中,该脚本基本上只是在 for 循环中提供文件的耳语。

问题是 Whisper 会重新启动,并且需要在每个循环中重新加载所有数据。保留 Whisper“会话”并在前一个文件完成后在其中添加一个新文件会更快。这可以在 shell 脚本/for 循环“环境”中完成吗?

有两个问题需要考虑:

  1. 设置:我有三台机器在处理这个问题,处理网络目录中的文件,并且新文件不断添加到该目录中。

  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(请注意,三个示例中的参数不同) - 逗号表示新的“条目”。我不'不希望这能起作用。)现有文件,因为那不是静态“列表”。

此外,我想按大小顺序处理文件,因此当一台机器处理完一个文件时,它应该在源目录中查找并取最大的文件(这可能是执行开始后添加的文件)并进行处理。这个要求,就像不断添加新文件的事实一样,也阻止我在执行开始时使用完整的命令创建长的、完整的文本字符串。

相关内容