-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmain.py
47 lines (36 loc) · 1.14 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import argparse
import logging
import os
import uuid
from vosk import Model, SetLogLevel
from sharetape import Sharetape
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--video", type=str, required=False, default="")
parser.add_argument("-a", "--audio", type=str, required=False, default="")
args = parser.parse_args()
if not (args.video or args.audio):
parser.error("No action requested, add --video or --audio")
elif args.video and args.audio:
parser.error("Only select one action --video or --audio")
SetLogLevel(-1)
model = Model(model_path="vosk-model-en-us-0.42-gigaspeech")
logging.info("sp2t setup")
video_id = str(uuid.uuid4())
os.makedirs(f"{video_id}")
if args.audio != "":
audio = args.audio
else:
audio = f"{video_id}/audio.wav"
shartape = Sharetape(
args.video,
audio,
f"{video_id}/mono_audio.wav",
f"{video_id}/transcript.txt",
f"{video_id}/words.json",
f"{video_id}/captions.srt",
model,
)
shartape.extract_transcript()
if __name__ == "__main__":
main()