MaenGit commited on
Commit
40754f7
·
1 Parent(s): af07f6c

update server and requirements

Browse files
Files changed (2) hide show
  1. requirements.txt +2 -1
  2. server.py +20 -10
requirements.txt CHANGED
@@ -1,2 +1,3 @@
1
- TTS==0.13.0
2
  flask
 
 
1
+ TTS
2
  flask
3
+ huggingface_hub
server.py CHANGED
@@ -1,31 +1,41 @@
1
  from flask import Flask, request, send_file
2
  from TTS.api import TTS
 
3
  import tempfile
 
4
 
5
  app = Flask(__name__)
6
 
7
- # XTTS-v2 model
8
- tts = TTS(model_name="coqui/XTTS-v2", gpu=False)
9
-
10
 
 
 
11
 
12
  voices = tts.speakers
13
- male_voice = voices[1] if len(voices) > 1 else voices[0]
14
  female_voice = voices[0]
 
 
15
 
16
  @app.route("/tts", methods=["GET"])
17
  def tts_api():
18
  text = request.args.get("text", "")
19
  gender = request.args.get("gender", "female").lower()
 
20
  speaker = female_voice if gender == "female" else male_voice
21
 
22
- with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as tmp:
23
- tts.tts_to_file(text=text, speaker=speaker, file_path=tmp.name)
24
- tmp_path = tmp.name
 
 
 
 
 
 
 
25
 
26
- response = send_file(tmp_path, mimetype="audio/wav")
27
- os.remove(tmp_path) # delete after sending
28
- return response
29
 
30
  if __name__ == "__main__":
31
  app.run(host="0.0.0.0", port=7860)
 
1
  from flask import Flask, request, send_file
2
  from TTS.api import TTS
3
+ from huggingface_hub import snapshot_download
4
  import tempfile
5
+ import os
6
 
7
  app = Flask(__name__)
8
 
9
+ # Download XTTS-v2 from HF
10
+ MODEL_NAME = "coqui/XTTS-v2"
11
+ model_path = snapshot_download(repo_id=MODEL_NAME)
12
 
13
+ # Load locally
14
+ tts = TTS(model_path=model_path, gpu=False)
15
 
16
  voices = tts.speakers
 
17
  female_voice = voices[0]
18
+ male_voice = voices[1] if len(voices) > 1 else voices[0]
19
+
20
 
21
  @app.route("/tts", methods=["GET"])
22
  def tts_api():
23
  text = request.args.get("text", "")
24
  gender = request.args.get("gender", "female").lower()
25
+
26
  speaker = female_voice if gender == "female" else male_voice
27
 
28
+ tmp = tempfile.NamedTemporaryFile(suffix=".wav", delete=False)
29
+
30
+ tts.tts_to_file(
31
+ text=text,
32
+ speaker=speaker,
33
+ file_path=tmp.name,
34
+ language="en"
35
+ )
36
+
37
+ return send_file(tmp.name, mimetype="audio/wav")
38
 
 
 
 
39
 
40
  if __name__ == "__main__":
41
  app.run(host="0.0.0.0", port=7860)