1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import sys
- import os
- import json
- def get_home_env():
- if sys.platform == "win32":
- return 'APPDATA'
- return 'HOME'
- def gen_home_doc_path():
- if sys.platform == "win32":
- import ctypes.wintypes
- path_id = 5 # 5:文档 0:桌面
- buf = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH)
- ctypes.windll.shell32.SHGetFolderPathW(None, path_id, None, 0, buf)
- path = buf.value
- elif sys.platform == "darwin":
- path = "%s/.iflytek" % (os.environ[get_home_env()])
- elif sys.platform == "linux":
- path = "%s/.iflytek" % (os.environ[get_home_env()])
- else:
- path = "%s/.iflytek" % (os.environ[get_home_env()])
- return path
- def gen_output_path(_input):
- _output = f"{_input}/output"
- if not os.path.exists(_output):
- os.makedirs(_output)
- return _output
- # 生成json数据模版
- def gen_q_data(code, data):
- return {"code": code, "data": data}
- # 判断字符串是否包含标点
- def symbol_in_word(word):
- if "," in word:
- return 1
- if "." in word:
- return 1
- if "," in word:
- return 1
- if "。" in word:
- return 1
- if ";" in word:
- return 1
- if ";" in word:
- return 1
- if "?" in word:
- return 1
- if "?" in word:
- return 1
- if "!" in word:
- return 1
- if "!" in word:
- return 1
- return 0
- def parse_aiui_v2_result(result_json):
- if result_json and result_json.get("code") == "0" and result_json.get("action") == "result":
- data = result_json.get("data")
- if data and data.get("sub"):
- sub = data.get("sub")
- result = {"code": "0", "sub": sub, "is_last": data.get("is_last"), "is_finish": data.get("is_finish")}
- if sub == "iat":
- text = data.get("text")
- result["pgs"] = text.get("pgs")
- ws_list = text.get("ws")
- words = list(map(lambda ws: ws.get("cw")[0].get("w"), ws_list))
- word = "".join(words)
- result["service"] = "raw"
- result["rawText"] = word
- return result
- elif sub == "nlp":
- intent = data.get("intent")
- if intent:
- service = intent.get("service")
- text = intent.get("text")
- # answer_text = intent.get("answer").get("text")
- result["service"] = service
- result["rawText"] = text
- return result
- elif sub == "tpp":
- content = data.get("content")
- if content:
- js = json.loads(content)
- result.update(js)
- return result
- return result_json
|