tts-api commited on
Commit
605ecc0
·
verified ·
1 Parent(s): 31ef339

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +20 -21
index.html CHANGED
@@ -132,17 +132,16 @@
132
  </head>
133
  <body>
134
  <div class="container">
135
- <h1>🎙️ Text to Speech</h1>
136
- <p class="subtitle">Powered by Edge TTS</p>
137
 
138
- <textarea id="text" placeholder="اكتب النص هنا بأي لغة..."></textarea>
139
 
140
  <div class="controls">
141
  <div class="control-group">
142
- <label>اللغة</label>
143
  <select id="language">
144
- <option value="ar">عربي (مصر)</option>
145
- <option value="ar-sa">عربي (السعودية)</option>
146
  <option value="en" selected>English</option>
147
  <option value="en-gb">English (UK)</option>
148
  <option value="fr">Français</option>
@@ -156,26 +155,26 @@
156
  </div>
157
 
158
  <div class="control-group">
159
- <label>الجنس</label>
160
  <select id="gender">
161
- <option value="female">أنثى</option>
162
- <option value="male">ذكر</option>
163
  </select>
164
  </div>
165
 
166
  <div class="control-group">
167
- <label>السرعة</label>
168
  <select id="rate">
169
- <option value="-50%">بطيء جداً</option>
170
- <option value="-25%">بطيء</option>
171
- <option value="+0%" selected>عادي</option>
172
- <option value="+25%">سريع</option>
173
- <option value="+50%">سريع جداً</option>
174
  </select>
175
  </div>
176
  </div>
177
 
178
- <button id="btn" onclick="generateSpeech()">🔊 توليد الصوت</button>
179
 
180
  <div class="status" id="status"></div>
181
  <audio id="audio" controls></audio>
@@ -193,13 +192,13 @@ async function generateSpeech() {
193
 
194
  if (!text) {
195
  status.className = 'status error';
196
- status.textContent = 'من فضلك أدخل نصاً';
197
  return;
198
  }
199
 
200
  btn.disabled = true;
201
  status.className = 'status loading';
202
- status.textContent = ' جاري توليد الصوت...';
203
  audio.style.display = 'none';
204
 
205
  try {
@@ -209,7 +208,7 @@ async function generateSpeech() {
209
  body: JSON.stringify({ text, language, gender, rate })
210
  });
211
 
212
- if (!response.ok) throw new Error('فشل في توليد الصوت');
213
 
214
  const blob = await response.blob();
215
  const url = URL.createObjectURL(blob);
@@ -218,10 +217,10 @@ async function generateSpeech() {
218
  audio.play();
219
 
220
  status.className = 'status success';
221
- status.textContent = ' تم توليد الصوت بنجاح!';
222
  } catch (err) {
223
  status.className = 'status error';
224
- status.textContent = ' حدث خطأ: ' + err.message;
225
  } finally {
226
  btn.disabled = false;
227
  }
 
132
  </head>
133
  <body>
134
  <div class="container">
135
+ <h1> Text to Speech</h1>
 
136
 
137
+ <textarea id="text" placeholder="Enter the text"></textarea>
138
 
139
  <div class="controls">
140
  <div class="control-group">
141
+ <label>Language</label>
142
  <select id="language">
143
+ <option value="ar">Arabic (Egypt)</option>
144
+ <option value="ar-sa">Arabic (Saudi Arabia)</option>
145
  <option value="en" selected>English</option>
146
  <option value="en-gb">English (UK)</option>
147
  <option value="fr">Français</option>
 
155
  </div>
156
 
157
  <div class="control-group">
158
+ <label>Gender</label>
159
  <select id="gender">
160
+ <option value="female">Female</option>
161
+ <option value="male">Male</option>
162
  </select>
163
  </div>
164
 
165
  <div class="control-group">
166
+ <label>speed</label>
167
  <select id="rate">
168
+ <option value="-50%">Very slow</option>
169
+ <option value="-25%">Slow</option>
170
+ <option value="+0%" selected>Normal</option>
171
+ <option value="+25%">Fast</option>
172
+ <option value="+50%">Very fast</option>
173
  </select>
174
  </div>
175
  </div>
176
 
177
+ <button id="btn" onclick="generateSpeech()">Sound generation</button>
178
 
179
  <div class="status" id="status"></div>
180
  <audio id="audio" controls></audio>
 
192
 
193
  if (!text) {
194
  status.className = 'status error';
195
+ status.textContent = 'Please enter text';
196
  return;
197
  }
198
 
199
  btn.disabled = true;
200
  status.className = 'status loading';
201
+ status.textContent = 'Sound is being generated...';
202
  audio.style.display = 'none';
203
 
204
  try {
 
208
  body: JSON.stringify({ text, language, gender, rate })
209
  });
210
 
211
+ if (!response.ok) throw new Error('Failed to generate sound');
212
 
213
  const blob = await response.blob();
214
  const url = URL.createObjectURL(blob);
 
217
  audio.play();
218
 
219
  status.className = 'status success';
220
+ status.textContent = 'Sound was successfully generated!';
221
  } catch (err) {
222
  status.className = 'status error';
223
+ status.textContent = 'An error occurred: ' + err.message;
224
  } finally {
225
  btn.disabled = false;
226
  }