Devity4756 commited on
Commit
ffb6ef0
·
verified ·
1 Parent(s): 6fe2f71

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -0
app.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask
2
+ from flask_socketio import SocketIO, emit
3
+ from gradio_client import Client
4
+ import base64
5
+
6
+ app = Flask(__name__)
7
+ socketio = SocketIO(app, cors_allowed_origins="*")
8
+
9
+ # Connect to Tony Assi's hosted space
10
+ client = Client("https://tonyassi-voice-clone.hf.space/")
11
+
12
+ @socketio.on("clone_request")
13
+ def handle_clone(data):
14
+ try:
15
+ text = data.get("text")
16
+ audio_file = data.get("audio") # expect base64 audio string from frontend
17
+
18
+ # Save incoming base64 audio to file
19
+ with open("input.wav", "wb") as f:
20
+ f.write(base64.b64decode(audio_file.split(",")[-1]))
21
+
22
+ # Call Hugging Face Space
23
+ result = client.predict(
24
+ text,
25
+ "input.wav", # path to saved audio
26
+ api_name="/clone"
27
+ )
28
+
29
+ # Read generated output.wav file
30
+ with open(result, "rb") as f:
31
+ audio_bytes = f.read()
32
+
33
+ # Send back as base64 so frontend can play without download
34
+ audio_base64 = "data:audio/wav;base64," + base64.b64encode(audio_bytes).decode()
35
+ emit("clone_response", {"audio": audio_base64})
36
+
37
+ except Exception as e:
38
+ emit("clone_response", {"error": str(e)})
39
+
40
+ if __name__ == "__main__":
41
+ socketio.run(app, host="0.0.0.0", port=5000)