bert-vits2-utils
This commit is contained in:
1 parent
3f78fcb12c
commit
33c952d327
37 files changed
+137723
-1
No files matched your search
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
翻译api
|
||||
"""
|
||||
|
||||
from ..config import config
|
||||
|
||||
import random
|
||||
import hashlib
|
||||
import requests
|
||||
|
||||
|
||||
def translate(Sentence: str, to_Language: str = "jp", from_Language: str = ""):
|
||||
"""
|
||||
:param Sentence: 待翻译语句
|
||||
:param from_Language: 待翻译语句语言
|
||||
:param to_Language: 目标语言
|
||||
:return: 翻译后语句 出错时返回None
|
||||
|
||||
常见语言代码:中文 zh 英语 en 日语 jp
|
||||
"""
|
||||
appid = config.translate_config.app_key
|
||||
key = config.translate_config.secret_key
|
||||
if appid == "" or key == "":
|
||||
return "请开发者在config.yml中配置app_key与secret_key"
|
||||
url = "https://fanyi-api.baidu.com/api/trans/vip/translate"
|
||||
texts = Sentence.splitlines()
|
||||
outTexts = []
|
||||
for t in texts:
|
||||
if t != "":
|
||||
# 签名计算 参考文档 https://api.fanyi.baidu.com/product/113
|
||||
salt = str(random.randint(1, 100000))
|
||||
signString = appid + t + salt + key
|
||||
hs = hashlib.md5()
|
||||
hs.update(signString.encode("utf-8"))
|
||||
signString = hs.hexdigest()
|
||||
if from_Language == "":
|
||||
from_Language = "auto"
|
||||
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||
payload = {
|
||||
"q": t,
|
||||
"from": from_Language,
|
||||
"to": to_Language,
|
||||
"appid": appid,
|
||||
"salt": salt,
|
||||
"sign": signString,
|
||||
}
|
||||
# 发送请求
|
||||
try:
|
||||
response = requests.post(
|
||||
url=url, data=payload, headers=headers, timeout=3
|
||||
)
|
||||
response = response.json()
|
||||
if "trans_result" in response.keys():
|
||||
result = response["trans_result"][0]
|
||||
if "dst" in result.keys():
|
||||
dst = result["dst"]
|
||||
outTexts.append(dst)
|
||||
except Exception:
|
||||
return Sentence
|
||||
else:
|
||||
outTexts.append(t)
|
||||
return "\n".join(outTexts)
|
||||
Reference in new issue
Block a user