udayl commited on
Commit
8266b8d
·
1 Parent(s): fc0739a

fix: ensure gradio frpc

Browse files
Files changed (1) hide show
  1. gradio_app.py +25 -0
gradio_app.py CHANGED
@@ -8,6 +8,7 @@ import soundfile as sf
8
  import warnings
9
  import multiprocessing
10
  import concurrent.futures
 
11
 
12
  try:
13
  from moshi.models.tts import TTSModel
@@ -31,6 +32,29 @@ os.environ["MOSHI_CACHE_DIR"] = "/tmp/moshi"
31
  warnings.filterwarnings("ignore")
32
  NUM_WORKERS = multiprocessing.cpu_count()
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  def process_segment(entry_and_voice_map):
35
  entry, voice_map = entry_and_voice_map
36
  speaker, dialogue = entry
@@ -190,4 +214,5 @@ def create_gradio_app():
190
  return app
191
 
192
  if __name__ == "__main__":
 
193
  create_gradio_app().queue().launch(server_name="0.0.0.0", server_port=7860, share=True, debug=True, pwa=True)
 
8
  import warnings
9
  import multiprocessing
10
  import concurrent.futures
11
+ import urllib.request
12
 
13
  try:
14
  from moshi.models.tts import TTSModel
 
32
  warnings.filterwarnings("ignore")
33
  NUM_WORKERS = multiprocessing.cpu_count()
34
 
35
+
36
+ def ensure_gradio_frpc():
37
+ """
38
+ Ensures the frpc binary is present in the expected location for Gradio sharing to work.
39
+ """
40
+ # Get proper Gradio cache directory
41
+ cache_root = os.path.join(os.getenv("HF_HOME", "/tmp/huggingface"), "gradio", "frpc")
42
+ os.makedirs(cache_root, exist_ok=True)
43
+
44
+ frpc_file = os.path.join(cache_root, "frpc_linux_amd64_v0.3")
45
+
46
+ if not os.path.exists(frpc_file):
47
+ print(f"[INFO] Downloading frpc binary to: {frpc_file}")
48
+ try:
49
+ url = "https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_linux_amd64"
50
+ urllib.request.urlretrieve(url, frpc_file)
51
+ os.chmod(frpc_file, 0o755) # Make it executable
52
+ print("[SUCCESS] frpc binary downloaded and made executable.")
53
+ except Exception as e:
54
+ print(f"[ERROR] Failed to download frpc binary: {e}")
55
+ else:
56
+ print("[INFO] frpc binary already exists.")
57
+
58
  def process_segment(entry_and_voice_map):
59
  entry, voice_map = entry_and_voice_map
60
  speaker, dialogue = entry
 
214
  return app
215
 
216
  if __name__ == "__main__":
217
+ ensure_gradio_frpc()
218
  create_gradio_app().queue().launch(server_name="0.0.0.0", server_port=7860, share=True, debug=True, pwa=True)