72 lines
2.0 KiB
Python
72 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()
|
|
|
|
print('') |