Ryanus commited on
Commit
7702694
·
verified ·
1 Parent(s): 13b063e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -6
app.py CHANGED
@@ -4,6 +4,10 @@ import gradio as gr
4
  import os
5
  import tempfile
6
 
 
 
 
 
7
  # --- 解決 Coqui TTS 授權同意問題 ---
8
  os.environ["COQUI_TOS_AGREED"] = "1"
9
 
@@ -15,7 +19,6 @@ from TTS.config.shared_configs import BaseDatasetConfig
15
  from TTS.tts.models.xtts import XttsArgs
16
 
17
  try:
18
- # 將所有可能導致問題的類都加入白名單
19
  torch.serialization.add_safe_globals([XttsConfig, XttsAudioConfig, BaseDatasetConfig, XttsArgs])
20
  print("已將 XTTS 相關配置類加入 PyTorch 安全全局變數白名單。")
21
  except Exception as e:
@@ -104,7 +107,7 @@ def generate_speech(text, language, speaker_audio_path):
104
  return None, "請輸入一些文字!"
105
  if not language:
106
  return None, "請選擇一個語言!"
107
- if not speaker_audio_path: # 檢查是否提供了語音參考檔案
108
  return None, "請上傳一個語音參考檔案 (WAV 格式) 來克隆語音!"
109
 
110
  output_file = None
@@ -113,7 +116,6 @@ def generate_speech(text, language, speaker_audio_path):
113
  output_file = fp.name
114
 
115
  print(f"正在為語言 '{language}' 生成語音,使用語音參考檔案: {speaker_audio_path}...")
116
- # 將上傳的語音檔案路徑傳遞給 speaker_wav 參數
117
  tts.tts_to_file(text=text, language=language, speaker_wav=speaker_audio_path, file_path=output_file)
118
  print(f"語音已生成到:{output_file}")
119
 
@@ -130,11 +132,11 @@ iface = gr.Interface(
130
  inputs=[
131
  gr.Textbox(lines=5, label="輸入文字", placeholder="請在這裡輸入你想要轉換成語音的文字..."),
132
  gr.Dropdown(choices=SUPPORTED_LANGUAGES, label="選擇語言", value="en"),
133
- # 新增一個 Audio 輸入組件,用於上傳語音參考檔案
134
  gr.Audio(
135
- type="filepath", # 接收檔案路徑
136
  label="上傳語音參考檔案 (WAV)",
137
- sources=["microphone", "upload"], # 允許從麥克風錄音或上傳檔案
 
138
  waveform_options=gr.Audio.WaveformOptions(
139
  skip_length=True,
140
  show_controls=False,
 
4
  import os
5
  import tempfile
6
 
7
+ # --- 打印 Gradio 版本以供診斷 ---
8
+ print(f"Gradio version at runtime: {gr.__version__}")
9
+ # ---
10
+
11
  # --- 解決 Coqui TTS 授權同意問題 ---
12
  os.environ["COQUI_TOS_AGREED"] = "1"
13
 
 
19
  from TTS.tts.models.xtts import XttsArgs
20
 
21
  try:
 
22
  torch.serialization.add_safe_globals([XttsConfig, XttsAudioConfig, BaseDatasetConfig, XttsArgs])
23
  print("已將 XTTS 相關配置類加入 PyTorch 安全全局變數白名單。")
24
  except Exception as e:
 
107
  return None, "請輸入一些文字!"
108
  if not language:
109
  return None, "請選擇一個語言!"
110
+ if not speaker_audio_path:
111
  return None, "請上傳一個語音參考檔案 (WAV 格式) 來克隆語音!"
112
 
113
  output_file = None
 
116
  output_file = fp.name
117
 
118
  print(f"正在為語言 '{language}' 生成語音,使用語音參考檔案: {speaker_audio_path}...")
 
119
  tts.tts_to_file(text=text, language=language, speaker_wav=speaker_audio_path, file_path=output_file)
120
  print(f"語音已生成到:{output_file}")
121
 
 
132
  inputs=[
133
  gr.Textbox(lines=5, label="輸入文字", placeholder="請在這裡輸入你想要轉換成語音的文字..."),
134
  gr.Dropdown(choices=SUPPORTED_LANGUAGES, label="選擇語言", value="en"),
 
135
  gr.Audio(
136
+ type="filepath",
137
  label="上傳語音參考檔案 (WAV)",
138
+ sources=["microphone", "upload"],
139
+ # 這裡保留 WaveformOptions,因為我們需要確認 Gradio 版本
140
  waveform_options=gr.Audio.WaveformOptions(
141
  skip_length=True,
142
  show_controls=False,