rahul7star commited on
Commit
4a10b52
·
verified ·
1 Parent(s): a6276b5

Update app_qwen_tts.py

Browse files
Files changed (1) hide show
  1. app_qwen_tts.py +36 -8
app_qwen_tts.py CHANGED
@@ -98,18 +98,46 @@ def answer_question(question):
98
  # =====================================================
99
  # TTS (BASE64 → WAV)
100
  # =====================================================
101
- def generate_audio(text):
102
- payload = {"text": text, "language_id": "en", "mode": "Speak 🗣️"}
 
 
 
 
 
103
  r = requests.post(TTS_API_URL, json=payload, timeout=None)
104
- audio_b64 = r.json()["audio"]
105
 
106
- audio_bytes = base64.b64decode(audio_b64)
107
- wav_path = "/tmp/output.wav"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
 
109
- with open(wav_path, "wb") as f:
110
- f.write(audio_bytes)
111
 
112
- return wav_path
113
 
114
  # =====================================================
115
  # MAIN HANDLER
 
98
  # =====================================================
99
  # TTS (BASE64 → WAV)
100
  # =====================================================
101
+ def generate_audio(text: str):
102
+ payload = {
103
+ "text": text,
104
+ "language_id": "en",
105
+ "mode": "Speak 🗣️"
106
+ }
107
+
108
  r = requests.post(TTS_API_URL, json=payload, timeout=None)
 
109
 
110
+ # ---- Case 1: API returns raw WAV bytes ----
111
+ if r.headers.get("content-type", "").startswith("audio"):
112
+ wav_path = "/tmp/output.wav"
113
+ with open(wav_path, "wb") as f:
114
+ f.write(r.content)
115
+ return wav_path
116
+
117
+ # ---- Case 2: API returns JSON ----
118
+ data = r.json()
119
+
120
+ # Try known keys safely
121
+ audio_b64 = (
122
+ data.get("audio")
123
+ or data.get("audio_base64")
124
+ or data.get("wav")
125
+ )
126
+
127
+ if audio_b64:
128
+ wav_bytes = base64.b64decode(audio_b64)
129
+ wav_path = "/tmp/output.wav"
130
+ with open(wav_path, "wb") as f:
131
+ f.write(wav_bytes)
132
+ return wav_path
133
+
134
+ # ---- Case 3: API returns a file path ----
135
+ if "path" in data and os.path.exists(data["path"]):
136
+ return data["path"]
137
 
138
+ # ---- Otherwise ----
139
+ raise RuntimeError(f"TTS API response invalid: {data}")
140
 
 
141
 
142
  # =====================================================
143
  # MAIN HANDLER