Remsky commited on
Commit
82635ac
·
1 Parent(s): bf1c3fd

Remove static label text in TTS demo and update label formatting

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -279,11 +279,11 @@ with gr.Blocks(title="Kokoro TTS Demo", css="""
279
 
280
  def update_chapters(book_name):
281
  if not book_name:
282
- return gr.update(choices=[], value=None), "", '<div class="token-label">Text to speak</div>'
283
  # Find the corresponding book file
284
  book_file = next((book['value'] for book in books if book['label'] == book_name), None)
285
  if not book_file:
286
- return gr.update(choices=[], value=None), "", '<div class="token-label">Text to speak</div>'
287
  book_path = os.path.join("texts/processed", book_file)
288
  book_title, chapters = get_book_info(book_path)
289
  # Create simple choices list of chapter titles
@@ -293,18 +293,18 @@ with gr.Blocks(title="Kokoro TTS Demo", css="""
293
  if initial_text:
294
  tokens = count_tokens(initial_text)
295
  time_estimate = math.ceil(tokens / 150 / 10) * 10
296
- label = f'<div class="token-label">Text to speak <span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
297
  else:
298
- label = '<div class="token-label">Text to speak</div>'
299
  return gr.update(choices=chapter_choices, value=chapter_choices[0] if chapter_choices else None), initial_text, label
300
 
301
  def load_chapter_text(book_name, chapter_title):
302
  if not book_name or not chapter_title:
303
- return "", '<div class="token-label">Text to speak</div>'
304
  # Find the corresponding book file
305
  book_file = next((book['value'] for book in books if book['label'] == book_name), None)
306
  if not book_file:
307
- return "", '<div class="token-label">Text to speak</div>'
308
  book_path = os.path.join("texts/processed", book_file)
309
  # Get all chapters and find the one matching the title
310
  _, chapters = get_book_info(book_path)
@@ -313,8 +313,8 @@ with gr.Blocks(title="Kokoro TTS Demo", css="""
313
  text = get_chapter_text(book_path, ch['id'])
314
  tokens = count_tokens(text)
315
  time_estimate = math.ceil(tokens / 150 / 10) * 10
316
- return text, f'<div class="token-label">Text to speak <span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
317
- return "", '<div class="token-label">Text to speak</div>'
318
 
319
  # Set up event handlers for book/chapter selection
320
  book_dropdown.change(
@@ -339,12 +339,12 @@ with gr.Blocks(title="Kokoro TTS Demo", css="""
339
 
340
  def load_text_from_file(file_bytes):
341
  if file_bytes is None:
342
- return None, '<div class="token-label">Text to speak</div>'
343
  try:
344
  text = file_bytes.decode('utf-8')
345
  tokens = count_tokens(text)
346
  time_estimate = math.ceil(tokens / 150 / 10) * 10 # Round up to nearest 10 seconds
347
- return text, f'<div class="token-label">Text to speak <span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
348
  except Exception as e:
349
  raise gr.Error(f"Failed to read file: {str(e)}")
350
 
 
279
 
280
  def update_chapters(book_name):
281
  if not book_name:
282
+ return gr.update(choices=[], value=None), "", '<div class="token-label"></div>'
283
  # Find the corresponding book file
284
  book_file = next((book['value'] for book in books if book['label'] == book_name), None)
285
  if not book_file:
286
+ return gr.update(choices=[], value=None), "", '<div class="token-label"></div>'
287
  book_path = os.path.join("texts/processed", book_file)
288
  book_title, chapters = get_book_info(book_path)
289
  # Create simple choices list of chapter titles
 
293
  if initial_text:
294
  tokens = count_tokens(initial_text)
295
  time_estimate = math.ceil(tokens / 150 / 10) * 10
296
+ label = f'<div class="token-label"><span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
297
  else:
298
+ label = '<div class="token-label"></div>'
299
  return gr.update(choices=chapter_choices, value=chapter_choices[0] if chapter_choices else None), initial_text, label
300
 
301
  def load_chapter_text(book_name, chapter_title):
302
  if not book_name or not chapter_title:
303
+ return "", '<div class="token-label"></div>'
304
  # Find the corresponding book file
305
  book_file = next((book['value'] for book in books if book['label'] == book_name), None)
306
  if not book_file:
307
+ return "", '<div class="token-label"></div>'
308
  book_path = os.path.join("texts/processed", book_file)
309
  # Get all chapters and find the one matching the title
310
  _, chapters = get_book_info(book_path)
 
313
  text = get_chapter_text(book_path, ch['id'])
314
  tokens = count_tokens(text)
315
  time_estimate = math.ceil(tokens / 150 / 10) * 10
316
+ return text, f'<div class="token-label"> <span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
317
+ return "", '<div class="token-label"></div>'
318
 
319
  # Set up event handlers for book/chapter selection
320
  book_dropdown.change(
 
339
 
340
  def load_text_from_file(file_bytes):
341
  if file_bytes is None:
342
+ return None, '<div class="token-label"></div>'
343
  try:
344
  text = file_bytes.decode('utf-8')
345
  tokens = count_tokens(text)
346
  time_estimate = math.ceil(tokens / 150 / 10) * 10 # Round up to nearest 10 seconds
347
+ return text, f'<div class="token-label"><span class="token-count">({tokens} tokens, ~{time_estimate}s generation time)</span></div>'
348
  except Exception as e:
349
  raise gr.Error(f"Failed to read file: {str(e)}")
350