MaktubCN commited on
Commit
a96de63
·
verified ·
1 Parent(s): 599ffe3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -6
app.py CHANGED
@@ -5,7 +5,7 @@ import requests
5
  import tempfile
6
  from languages import languages
7
 
8
- def generate_audio(input_text, voice, output_format, base_url_input, api_key_input, request: gr.Request):
9
  # 获取 URL 参数
10
  query_params = request.query_params
11
  # 优先使用 URL 参数中的 base_url 和 api_key
@@ -13,7 +13,7 @@ def generate_audio(input_text, voice, output_format, base_url_input, api_key_inp
13
  api_key = query_params.get("api_key", api_key_input)
14
  # 准备请求负载
15
  payload = {
16
- "model": "tts-1",
17
  "input": input_text,
18
  "voice": voice.lower(),
19
  "format": output_format
@@ -38,8 +38,8 @@ def generate_audio(input_text, voice, output_format, base_url_input, api_key_inp
38
  # 返回文件路径
39
  return temp_file.name
40
 
41
- def on_generate_click(input_text_value, voice_value, output_format_value, base_url_value, api_key_value, request: gr.Request):
42
- audio_path = generate_audio(input_text_value, voice_value, output_format_value, base_url_value, api_key_value, request)
43
  return audio_path
44
 
45
  def update_settings_from_url(request: gr.Request):
@@ -61,6 +61,7 @@ def update_language(language_choice):
61
  gr.update(value=f"# {labels['title']}"), # title_markdown
62
  gr.update(value=labels['intro']), # intro_text
63
  gr.update(label=labels['input_text_label'], placeholder=labels['input_text_placeholder']), # input_text
 
64
  gr.update(label=labels['voice_label']), # voice
65
  gr.update(label=labels['output_format_label']), # output_format
66
  gr.update(value=labels['generate_button_label']), # generate_button
@@ -94,6 +95,8 @@ with gr.Blocks(css=None, theme="Zarkel/IBM_Carbon_Theme", title="TTS Web") as de
94
  intro_text = gr.Markdown(languages["中文"]["intro"]) # 初始加载中文的介绍
95
  # 输入文本
96
  input_text = gr.Textbox(label="输入文本", placeholder="请输入要合成的文本")
 
 
97
  # 选择声音
98
  voice = gr.Radio(choices=["Alloy", "Echo", "Fable", "Onyx", "Nova", "Shimmer"], label="声音", value="Alloy")
99
  # 选择输出格式
@@ -128,6 +131,7 @@ with gr.Blocks(css=None, theme="Zarkel/IBM_Carbon_Theme", title="TTS Web") as de
128
  title_markdown,
129
  intro_text, # 添加 intro_text 的更新
130
  input_text,
 
131
  voice,
132
  output_format,
133
  generate_button,
@@ -159,8 +163,8 @@ with gr.Blocks(css=None, theme="Zarkel/IBM_Carbon_Theme", title="TTS Web") as de
159
  # 按钮点击事件
160
  generate_button.click(
161
  on_generate_click,
162
- inputs=[input_text, voice, output_format, base_url_input, api_key_input],
163
  outputs=[audio_output]
164
  )
165
 
166
- demo.launch(server_name="0.0.0.0", server_port=7860)
 
5
  import tempfile
6
  from languages import languages
7
 
8
+ def generate_audio(input_text, model, voice, output_format, base_url_input, api_key_input, request: gr.Request):
9
  # 获取 URL 参数
10
  query_params = request.query_params
11
  # 优先使用 URL 参数中的 base_url 和 api_key
 
13
  api_key = query_params.get("api_key", api_key_input)
14
  # 准备请求负载
15
  payload = {
16
+ "model": model, # 使用选择的模型
17
  "input": input_text,
18
  "voice": voice.lower(),
19
  "format": output_format
 
38
  # 返回文件路径
39
  return temp_file.name
40
 
41
+ def on_generate_click(input_text_value, model_value, voice_value, output_format_value, base_url_value, api_key_value, request: gr.Request):
42
+ audio_path = generate_audio(input_text_value, model_value, voice_value, output_format_value, base_url_value, api_key_value, request)
43
  return audio_path
44
 
45
  def update_settings_from_url(request: gr.Request):
 
61
  gr.update(value=f"# {labels['title']}"), # title_markdown
62
  gr.update(value=labels['intro']), # intro_text
63
  gr.update(label=labels['input_text_label'], placeholder=labels['input_text_placeholder']), # input_text
64
+ gr.update(label=labels['model_label']), # model
65
  gr.update(label=labels['voice_label']), # voice
66
  gr.update(label=labels['output_format_label']), # output_format
67
  gr.update(value=labels['generate_button_label']), # generate_button
 
95
  intro_text = gr.Markdown(languages["中文"]["intro"]) # 初始加载中文的介绍
96
  # 输入文本
97
  input_text = gr.Textbox(label="输入文本", placeholder="请输入要合成的文本")
98
+ # 选择模型
99
+ model = gr.Radio(choices=["tts-1", "tts-1-hd"], label="模型", value="tts-1")
100
  # 选择声音
101
  voice = gr.Radio(choices=["Alloy", "Echo", "Fable", "Onyx", "Nova", "Shimmer"], label="声音", value="Alloy")
102
  # 选择输出格式
 
131
  title_markdown,
132
  intro_text, # 添加 intro_text 的更新
133
  input_text,
134
+ model, # 更新模型组件
135
  voice,
136
  output_format,
137
  generate_button,
 
163
  # 按钮点击事件
164
  generate_button.click(
165
  on_generate_click,
166
+ inputs=[input_text, model, voice, output_format, base_url_input, api_key_input, gr.Request()],
167
  outputs=[audio_output]
168
  )
169
 
170
+ demo.launch(server_name="0.0.0.0", server_port=7860)