Skip to content

Commit

Permalink
Merge pull request #763 from Ikaros-521/owner
Browse files Browse the repository at this point in the history
兼容CyberWon的webtts-v1.4 v2
  • Loading branch information
Ikaros-521 committed Apr 15, 2024
2 parents deb5eb5 + 9705c30 commit 8fcb079
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 14 deletions.
1 change: 1 addition & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@
"fragment_interval": "0.3"
},
"webtts": {
"version": "1",
"api_ip_port": "http://127.0.0.1:8080",
"spk": "sanyueqi",
"lang": "zh",
Expand Down
1 change: 1 addition & 0 deletions config.json.bak
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@
"fragment_interval": "0.3"
},
"webtts": {
"version": "1",
"api_ip_port": "http://127.0.0.1:8080",
"spk": "sanyueqi",
"lang": "zh",
Expand Down
44 changes: 34 additions & 10 deletions utils/audio_handle/my_tts.py
Original file line number Diff line number Diff line change
Expand Up @@ -781,19 +781,43 @@ async def websocket_client_logic(websocket, data_json):

params["speed"] = self.get_random_float(params["speed"])
params["text"] = data["content"]

async with aiohttp.ClientSession() as session:
async with session.get(data["webtts"]["api_ip_port"], params=params, timeout=self.timeout) as response:
response = await response.read()

file_name = 'gpt_sovits_' + self.common.get_bj_time(4) + '.wav'

voice_tmp_path = self.common.get_new_audio_path(self.audio_out_path, file_name)
if params["version"] in ["1", "2"]:
async with aiohttp.ClientSession() as session:
async with session.get(data["webtts"]["api_ip_port"], params=params, timeout=self.timeout) as response:
response = await response.read()

file_name = 'gpt_sovits_' + self.common.get_bj_time(4) + '.wav'

with open(voice_tmp_path, 'wb') as f:
f.write(response)
voice_tmp_path = self.common.get_new_audio_path(self.audio_out_path, file_name)

return voice_tmp_path
with open(voice_tmp_path, 'wb') as f:
f.write(response)

return voice_tmp_path
elif params["version"] == "1.4":
async with aiohttp.ClientSession() as session:
async with session.get(data["webtts"]["api_ip_port"], params=params, timeout=self.timeout) as response:
resp_json = await response.json()

file_url = urljoin(data["webtts"]["api_ip_port"], resp_json['url'])

async with session.get(file_url, timeout=self.timeout) as response:
if response.status == 200:
content = await response.read()

# voice_tmp_path = os.path.join(self.audio_out_path, 'gpt_sovits_' + self.common.get_bj_time(4) + '.wav')
file_name = 'gpt_sovits_' + self.common.get_bj_time(4) + '.wav'

voice_tmp_path = self.common.get_new_audio_path(self.audio_out_path, file_name)

with open(voice_tmp_path, 'wb') as file:
file.write(content)

return voice_tmp_path
else:
logging.error(f'gpt_sovits下载音频失败: {response.status}')
return None
except aiohttp.ClientError as e:
logging.error(traceback.format_exc())
logging.error(f'gpt_sovits请求失败: {e}')
Expand Down
20 changes: 16 additions & 4 deletions webui.py
Original file line number Diff line number Diff line change
Expand Up @@ -2053,6 +2053,8 @@ def common_textarea_handle(content):
config_data["gpt_sovits"]["api_0322"]["split_bucket"] = switch_gpt_sovits_api_0322_split_bucket.value
config_data["gpt_sovits"]["api_0322"]["return_fragment"] = switch_gpt_sovits_api_0322_return_fragment.value

config_data["gpt_sovits"]["webtts"]["version"] = select_gpt_sovits_webtts_version.value
config_data["gpt_sovits"]["webtts"]["api_ip_port"] = input_gpt_sovits_webtts_api_ip_port.value
config_data["gpt_sovits"]["webtts"]["spk"] = input_gpt_sovits_webtts_spk.value
config_data["gpt_sovits"]["webtts"]["lang"] = select_gpt_sovits_webtts_lang.value
config_data["gpt_sovits"]["webtts"]["speed"] = input_gpt_sovits_webtts_speed.value
Expand Down Expand Up @@ -4359,7 +4361,17 @@ def vits_get_speaker_id():
with ui.card().style(card_css):
ui.label("WebTTS相关配置")
with ui.row():
input_gpt_sovits_webtts_spk = ui.input(label='音色', value=config.get("gpt_sovits", "webtts", "spk"), placeholder='音色').style("width:200px;")
select_gpt_sovits_webtts_version = ui.select(
label='版本',
options={
'1':'1',
'1.4':'1.4',
'2':'2'
},
value=config.get("gpt_sovits", "webtts", "version")
).style("width:80px;")
input_gpt_sovits_webtts_api_ip_port = ui.input(label='API地址', value=config.get("gpt_sovits", "webtts", "api_ip_port"), placeholder='API监听地址').style("width:200px;")
input_gpt_sovits_webtts_spk = ui.input(label='音色', value=config.get("gpt_sovits", "webtts", "spk"), placeholder='音色').style("width:100px;")
select_gpt_sovits_webtts_lang = ui.select(
label='语言',
options={
Expand All @@ -4368,9 +4380,9 @@ def vits_get_speaker_id():
'jp':'日文'
},
value=config.get("gpt_sovits", "webtts", "lang")
).style("width:200px;")
input_gpt_sovits_webtts_speed = ui.input(label='语速', value=config.get("gpt_sovits", "webtts", "speed"), placeholder='语速').style("width:200px;")
input_gpt_sovits_webtts_emotion = ui.input(label='情感', value=config.get("gpt_sovits", "webtts", "emotion"), placeholder='情感').style("width:200px;")
).style("width:100px;")
input_gpt_sovits_webtts_speed = ui.input(label='语速', value=config.get("gpt_sovits", "webtts", "speed"), placeholder='语速').style("width:100px;")
input_gpt_sovits_webtts_emotion = ui.input(label='情感', value=config.get("gpt_sovits", "webtts", "emotion"), placeholder='情感').style("width:100px;")

if config.get("webui", "show_card", "tts", "clone_voice"):
with ui.card().style(card_css):
Expand Down

0 comments on commit 8fcb079

Please sign in to comment.