TTS_all_in_one / TTSs /genshin_api_tts.py
jianuo
submit
446c342
raw
history blame
1.48 kB
import io
import json
import requests
from pydub import AudioSegment
from .tts_utils import mix_background_music
def infer(token, appid, speaker, text, sdp, noise, noisew, length, 背景音乐, speaker_up, back_up):
try:
speed = (100 - length) / 100
headers = {'Content-Type': 'application/json'}
infer_info = {'lang': 'zh', 'appid': appid, 'token': token, 'speaker': speaker, 'text': text,
'sdp_ratio': sdp, 'noise': noise, 'noisew': noisew, 'length': speed}
resp = requests.post(url=f"{genshin_api}/api/ex/vits", headers=headers,
data=json.dumps(infer_info))
data = json.loads(resp.text)
wmv_file = requests.get(data["audio"]).content
original_audio = AudioSegment.from_wav(io.BytesIO(wmv_file))
return data["message"].replace("\\n", "\n"), *mix_background_music(original_audio, 背景音乐, speaker_up,
back_up)
except Exception as e:
return str(e), None, None
def get_spk():
resp = requests.get(url=f"{genshin_api}/spklist/spks.json")
data = json.loads(resp.text)
return data
def search_speaker(search_value):
for s in speakers_genshin:
if search_value == s:
return s
for s in speakers_genshin:
if search_value in s:
return s
genshin_api = "https://tirs.ai-lab.top"
speakers_genshin = get_spk()