fixed tiktok voice with external API

pull/1352/head
zxcvbinz 3 years ago
parent 297fb9d54b
commit bba44c6893

@ -2,6 +2,7 @@ import base64
from utils import settings from utils import settings
import random import random
import requests import requests
import json
from requests.adapters import HTTPAdapter, Retry from requests.adapters import HTTPAdapter, Retry
# from profanity_filter import ProfanityFilter # from profanity_filter import ProfanityFilter
@ -63,7 +64,8 @@ noneng = [
class TikTok: # TikTok Text-to-Speech Wrapper class TikTok: # TikTok Text-to-Speech Wrapper
def __init__(self): def __init__(self):
self.URI_BASE = ( self.URI_BASE = (
"https://api16-normal-useast5.us.tiktokv.com/media/api/text/speech/invoke/?text_speaker=" #"https://api16-normal-useast5.us.tiktokv.com/media/api/text/speech/invoke/?text_speaker="
"https://tiktok-tts.weilnet.workers.dev/api/generation"
) )
self.max_chars = 300 self.max_chars = 300
self.voices = {"human": human, "nonhuman": nonhuman, "noneng": noneng} self.voices = {"human": human, "nonhuman": nonhuman, "noneng": noneng}
@ -81,7 +83,21 @@ class TikTok: # TikTok Text-to-Speech Wrapper
) )
) )
try: try:
r = requests.post(f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0") payload = json.dumps({
"text": text,
"voice": voice
})
headers = {
'authority': 'tiktok-tts.weilnet.workers.dev',
'accept': '*/*',
'content-type': 'application/json',
}
#r = requests.post(f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0")
r = requests.post(self.URI_BASE, headers=headers, data=payload)
#print(r.text)
except requests.exceptions.SSLError: except requests.exceptions.SSLError:
# https://stackoverflow.com/a/47475019/18516611 # https://stackoverflow.com/a/47475019/18516611
session = requests.Session() session = requests.Session()
@ -89,9 +105,12 @@ class TikTok: # TikTok Text-to-Speech Wrapper
adapter = HTTPAdapter(max_retries=retry) adapter = HTTPAdapter(max_retries=retry)
session.mount("http://", adapter) session.mount("http://", adapter)
session.mount("https://", adapter) session.mount("https://", adapter)
r = session.post(f"{self.URI_BASE}{voice}&req_text={text}&speaker_map_type=0") r = requests.post(self.URI_BASE, headers=headers, data=payload)
except Exception as e:
print(e)
# print(r.text) # print(r.text)
vstr = [r.json()["data"]["v_str"]][0] vstr = r.json()["data"]
b64d = base64.b64decode(vstr) b64d = base64.b64decode(vstr)
with open(filepath, "wb") as out: with open(filepath, "wb") as out:

Loading…
Cancel
Save