-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnon_streaming_client.py
80 lines (65 loc) · 2.03 KB
/
non_streaming_client.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import argparse
import json
import os
import requests
from sys import exit, stderr
def handle_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--auth-token",
type=str,
required=True,
help="Authorization token get from Emotech LTD",
)
parser.add_argument(
"--file", type=str, required=True, help="Path to the file to be assessed"
)
parser.add_argument(
"--language",
type=str,
default="auto",
help="Specify the language to assess. [Default] auto",
)
parser.add_argument("--version", action="store_true", help="Get ASR server version")
parser.add_argument(
"--endpoint",
type=str,
default="https://asr-whisper-large.api.emotechlab.com",
help="URL of the Emotech ASR API to use",
)
return parser.parse_args()
def get_response(args):
URL = args.endpoint
if args.version:
url = URL + "/version"
return requests.get(url)
else:
path = os.path.expanduser(args.file)
if not os.path.exists(path):
raise FileNotFoundError(path)
files = {"audio": open(path, "rb")}
headers = {"Authorization": "Bearer " + args.auth_token.strip()}
if args.language == "auto":
url = URL + "/assess"
else:
url = URL + "/" + args.language + "/assess"
return requests.post(url, headers=headers, files=files)
def main():
# System init.
args = handle_args()
response = get_response(args)
if response.status_code == 200:
json_ = json.loads(response.text)
print(json.dumps(json_, indent=4))
elif response.status_code == 413:
print("File too large", file=stderr)
else:
print("Unexpected response, status code:", response.status_code, file=stderr)
exit(-1)
if __name__ == "__main__":
try:
main()
except FileNotFoundError as e:
print("Cannot find file:", e, file=stderr)
except Exception as e:
print(e, file=stderr)