other parts write to stdout, write output to tmp file
This commit is contained in:
parent
f6a1d168ee
commit
ecf5effc83
2 changed files with 13 additions and 6 deletions
|
@ -30,11 +30,13 @@ def transcribe(path, language=None, translate=None):
|
|||
|
||||
|
||||
if __name__ == "__main__":
|
||||
usage = "usage: %(prog)s [options] path"
|
||||
usage = "usage: %(prog)s [options] path output"
|
||||
parser = ArgumentParser(usage=usage, prog="run_whisper")
|
||||
parser.add_argument("-l", "--language", dest="language", default=None)
|
||||
parser.add_argument("-t", "--translate", dest="translate", default=None)
|
||||
parser.add_argument("path", metavar="path", type=str, help="media")
|
||||
parser.add_argument("path", metavar="path", type=str, help="media input")
|
||||
parser.add_argument("output", metavar="output", type=str, help="json output")
|
||||
opts = parser.parse_args()
|
||||
result = transcribe(opts.path, opts.language, opts.translate)
|
||||
print(json.dumps(result, indent=2, ensure_ascii=False))
|
||||
with open(opts.output, "w") as fd:
|
||||
json.dump(result, fd, indent=2, ensure_ascii=False)
|
||||
|
|
|
@ -104,6 +104,9 @@ def extract_subtitles(item, user, layer, translate, gpu=False, join_sentences=Fa
|
|||
return False
|
||||
src = item.streams()[0].media.path
|
||||
|
||||
tmp = tempfile.mkdtemp()
|
||||
output = os.pat.join(tmp, "output.json")
|
||||
|
||||
run_py = os.path.join(os.path.dirname(os.path.abspath(__file__)), "run_whisper.py")
|
||||
cmd = ["/opt/whisper-timestamped/bin/python", run_py]
|
||||
if language:
|
||||
|
@ -112,16 +115,18 @@ def extract_subtitles(item, user, layer, translate, gpu=False, join_sentences=Fa
|
|||
cmd += ["--translate"]
|
||||
language = "en"
|
||||
|
||||
cmd += [src]
|
||||
cmd += [src, output]
|
||||
|
||||
try:
|
||||
response = subprocess.check_output(cmd)
|
||||
subprocess.check_output(cmd)
|
||||
except:
|
||||
logger.error(
|
||||
"failed to extract subtitles from item %s\n%s", item.public_id, cmd
|
||||
)
|
||||
return False
|
||||
response = json.load(response)
|
||||
with open(output) as fd:
|
||||
response = json.load(fd)
|
||||
shutil.rmtree(tmp)
|
||||
annotations = prepare_annotations(response, join_sentences=join_sentences)
|
||||
if not annotations:
|
||||
return False
|
||||
|
|
Loading…
Add table
Reference in a new issue