Dionyssos commited on
Commit
51196f8
·
1 Parent(s): 0adf4ba
Files changed (1) hide show
  1. app.py +40 -21
app.py CHANGED
@@ -464,6 +464,10 @@ def other_tts(text='Hallov worlds Far over the',
464
  return tmp_file
465
 
466
 
 
 
 
 
467
  description = (
468
  "Estimate **age**, **gender**, and **expression** "
469
  "of the speaker contained in an audio file or microphone recording. \n"
@@ -473,11 +477,7 @@ description = (
473
  f"whereas [{expression_model_name}]"
474
  f"(https://huggingface.co/{expression_model_name}) "
475
  "recognises the expression dimensions arousal, dominance, and valence. "
476
- )
477
-
478
- def update_selected_voice(voice_filename, current_text):
479
- _full = 'wav/' + voice_filename + '.wav'
480
- return _full, gr.Textbox.update(label=f"Text for TTS: Vox=`{voice_filename}`", value=current_text)
481
 
482
  css_buttons = """
483
  .cool-button {
@@ -504,30 +504,49 @@ css_buttons = """
504
 
505
  with gr.Blocks(theme='huggingface', css=css_buttons) as demo:
506
  with gr.Tab(label="other TTS"):
507
- initial_voice = 'en_US_m-ailabs_mary_ann.wav'
508
- selected_voice = gr.State(value=initial_voice)
 
509
  with gr.Row():
510
- text_input = gr.Textbox(label=f"Text for TTS: Vox=`{initial_voice}`",
511
- placeholder="Enter Text for TTS:",
512
- lines=4,
513
- value="Farover the misty mountains cold too dungeons deep and caverns old.")
514
- generate_button = gr.Button("Generate Audio",
515
- variant="primary")
 
 
 
 
 
 
516
  output_audio = gr.Audio(label="TTS Output")
 
517
  with gr.Column():
518
  voice_buttons = []
519
  for i in range(0, len(VOICES), 7):
520
  with gr.Row(elem_classes=["cool-row"]):
521
  for voice_filename in VOICES[i:i+7]:
522
  voice_filename = voice_filename[4:-4] # drop wav/ for visibility
523
- button = gr.Button(voice_filename, elem_classes=["cool-button"])
524
- button.click(fn=lambda: update_selected_voice(voice_filename, text_input.value),
525
- inputs=[],
526
- outputs=[selected_voice, text_input])
 
 
 
 
 
 
 
 
527
  voice_buttons.append(button)
528
- generate_button.click(fn=other_tts,
529
- inputs=[text_input, selected_voice],
530
- outputs=output_audio)
 
 
 
531
 
532
  with gr.Tab(label="Speech Analysis"):
533
  with gr.Row():
@@ -560,4 +579,4 @@ with gr.Blocks(theme='huggingface', css=css_buttons) as demo:
560
  submit_btn.click(recognize, input, outputs)
561
 
562
 
563
- demo.launch(debug=True)
 
464
  return tmp_file
465
 
466
 
467
+ def update_selected_voice(voice_filename):
468
+ return 'wav/' + voice_filename + '.wav'
469
+
470
+
471
  description = (
472
  "Estimate **age**, **gender**, and **expression** "
473
  "of the speaker contained in an audio file or microphone recording. \n"
 
477
  f"whereas [{expression_model_name}]"
478
  f"(https://huggingface.co/{expression_model_name}) "
479
  "recognises the expression dimensions arousal, dominance, and valence. "
480
+ )
 
 
 
 
481
 
482
  css_buttons = """
483
  .cool-button {
 
504
 
505
  with gr.Blocks(theme='huggingface', css=css_buttons) as demo:
506
  with gr.Tab(label="other TTS"):
507
+
508
+ selected_voice = gr.State(value='wav/en_US_m-ailabs_mary_ann.wav')
509
+
510
  with gr.Row():
511
+ voice_info = gr.Markdown(f'`{selected_voice.value}`')
512
+
513
+ # Main input and output components
514
+ with gr.Row():
515
+ text_input = gr.Textbox(
516
+ label="Enter text for TTS:",
517
+ placeholder="Type your message here...",
518
+ lines=4,
519
+ value="Farover the misty mountains cold too dungeons deep and caverns old.",
520
+ )
521
+ generate_button = gr.Button("Generate Audio", variant="primary")
522
+
523
  output_audio = gr.Audio(label="TTS Output")
524
+
525
  with gr.Column():
526
  voice_buttons = []
527
  for i in range(0, len(VOICES), 7):
528
  with gr.Row(elem_classes=["cool-row"]):
529
  for voice_filename in VOICES[i:i+7]:
530
  voice_filename = voice_filename[4:-4] # drop wav/ for visibility
531
+ button = gr.Button(voice_filename, elem_classes=["cool-button"])
532
+
533
+ button.click(
534
+ fn=update_selected_voice,
535
+ inputs=[gr.Textbox(value=voice_filename, visible=False)],
536
+ outputs=[selected_voice]
537
+ )
538
+ button.click(
539
+ fn=lambda v=voice_filename: f'`{v}`',
540
+ inputs=None,
541
+ outputs=voice_info
542
+ )
543
  voice_buttons.append(button)
544
+
545
+ generate_button.click(
546
+ fn=other_tts,
547
+ inputs=[text_input, selected_voice],
548
+ outputs=output_audio
549
+ )
550
 
551
  with gr.Tab(label="Speech Analysis"):
552
  with gr.Row():
 
579
  submit_btn.click(recognize, input, outputs)
580
 
581
 
582
+ demo.launch(debug=True)