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()