|
|
|
@ -1,10 +1,11 @@
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
import base64
|
|
|
|
|
import os
|
|
|
|
|
import random
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
import requests
|
|
|
|
|
from moviepy.editor import AudioFileClip, concatenate_audioclips, CompositeAudioClip
|
|
|
|
|
from requests.adapters import HTTPAdapter, Retry
|
|
|
|
|
|
|
|
|
|
# from profanity_filter import ProfanityFilter
|
|
|
|
|
# pf = ProfanityFilter()
|
|
|
|
@ -90,9 +91,18 @@ class TTTTSWrapper: # TikTok Text-to-Speech Wrapper
|
|
|
|
|
|
|
|
|
|
chunkId = 0
|
|
|
|
|
for chunk in chunks:
|
|
|
|
|
try:
|
|
|
|
|
r = requests.post(
|
|
|
|
|
f"{self.URI_BASE}{voice}&req_text={chunk}&speaker_map_type=0"
|
|
|
|
|
)
|
|
|
|
|
except requests.exceptions.SSLError:
|
|
|
|
|
# https://stackoverflow.com/a/47475019/18516611
|
|
|
|
|
session = requests.Session()
|
|
|
|
|
retry = Retry(connect=3, backoff_factor=0.5)
|
|
|
|
|
adapter = HTTPAdapter(max_retries=retry)
|
|
|
|
|
session.mount('http://', adapter)
|
|
|
|
|
session.mount('https://', adapter)
|
|
|
|
|
r = session.post(f"{self.URI_BASE}{voice}&req_text={chunk}&speaker_map_type=0")
|
|
|
|
|
vstr = [r.json()["data"]["v_str"]][0]
|
|
|
|
|
b64d = base64.b64decode(vstr)
|
|
|
|
|
|
|
|
|
|