Files
scribe/scraibe/app/app.py
T
2024-01-26 16:15:58 +01:00

70 lines
2.0 KiB
Python

"""
Gradio App.
--------------------------------
This module provides an interface to transcribe audio files using the
Scraibe model. Users can either upload an audio file or record their speech
live for transcription. The application supports multiple languages and provides
options to specify the number of speakers and the language of the audio.
Attributes:
LANGUAGES (list): A list of supported languages for transcription.
Usage:
Run this script to start the Gradio web interface for audio transcription.
"""
####
# Gradio Interface
####
from threading import Thread
import scraibe.app.global_var as gv
from .interface import gradio_Interface
from .multi import *
from .utils import *
def app(config : str = None, **kwargs):
"""
Launches the Gradio interface for audio transcription.
Args:
interface_params (dict): A dictionary of parameters for the Gradio interface.
queue_params (dict): A dictionary of parameters for the queue.
launch_params (dict): A dictionary of parameters for launching the interface.
Returns:
None
"""
# Load the configuration
config = AppConfig.load_config(config, **kwargs)
gv.MODEL_PROCESS = start_model_worker(gv.MODEL_PARAMS,
gv.REQUEST_QUEUE,
gv.LAST_ACTIVE_TIME,
gv.RESPONSE_QUEUE,
gv.LOADED_EVENT,
gv.RUNNING_EVENT)
timer = Thread(target=timer_thread, args=(gv.REQUEST_QUEUE,
gv.LAST_ACTIVE_TIME,
gv.LOADED_EVENT,
gv.RUNNING_EVENT), daemon=True)
layout = config.get_layout()
timer.start()
print("Starting Gradio Web Interface")
gradio_Interface(layout).queue(**config.queue).launch(**config.launch)
timer.join()
gv.MODEL_PROCESS.join()