Update app.py
Browse files
app.py
CHANGED
|
@@ -48,6 +48,9 @@ WHISPER_LANGUAGES = {
|
|
| 48 |
"Lingala": "ln", "Hausa": "ha", "Bashkir": "ba", "Javanese": "jw", "Sundanese": "su",
|
| 49 |
}
|
| 50 |
SORTED_LANGUAGES = dict(sorted(WHISPER_LANGUAGES.items()))
|
|
|
|
|
|
|
|
|
|
| 51 |
def file_to_base64(filepath: str) -> str:
|
| 52 |
if not filepath: return None
|
| 53 |
try:
|
|
@@ -73,9 +76,13 @@ def moderate_content(text_input, image_input, video_input, audio_input, language
|
|
| 73 |
if video_b64 := file_to_base64(video_input): payload["video"] = video_b64
|
| 74 |
if audio_b64 := file_to_base64(audio_input):
|
| 75 |
payload["voice"] = audio_b64
|
| 76 |
-
language_code =
|
| 77 |
payload["language"] = language_code
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
logging.info(f"Sending request to {MODERATION_ENDPOINT} with inputs: {list(payload.keys())}")
|
| 80 |
latency_ms = None
|
| 81 |
start_time = time.monotonic()
|
|
@@ -140,7 +147,12 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="sky"), cs
|
|
| 140 |
video_input = gr.Video(label="Video Input")
|
| 141 |
with gr.TabItem("🎤 Audio"):
|
| 142 |
audio_input = gr.Audio(label="Voice/Audio Input", type="filepath")
|
| 143 |
-
language_input = gr.Dropdown(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 144 |
with gr.Row():
|
| 145 |
clear_button = gr.Button("Clear All")
|
| 146 |
submit_button = gr.Button("▶️ Moderate Content", variant="primary")
|
|
|
|
| 48 |
"Lingala": "ln", "Hausa": "ha", "Bashkir": "ba", "Javanese": "jw", "Sundanese": "su",
|
| 49 |
}
|
| 50 |
SORTED_LANGUAGES = dict(sorted(WHISPER_LANGUAGES.items()))
|
| 51 |
+
# Add Auto Language Detection as the first option for the dropdown
|
| 52 |
+
LANGUAGES_WITH_AUTO = {"Auto Language Detection": "auto", **SORTED_LANGUAGES}
|
| 53 |
+
|
| 54 |
def file_to_base64(filepath: str) -> str:
|
| 55 |
if not filepath: return None
|
| 56 |
try:
|
|
|
|
| 76 |
if video_b64 := file_to_base64(video_input): payload["video"] = video_b64
|
| 77 |
if audio_b64 := file_to_base64(audio_input):
|
| 78 |
payload["voice"] = audio_b64
|
| 79 |
+
language_code = LANGUAGES_WITH_AUTO.get(language_full_name, "auto")
|
| 80 |
payload["language"] = language_code
|
| 81 |
+
if language_code == "auto":
|
| 82 |
+
logging.info(f"Audio detected. Using language: Auto Language Detection (auto)")
|
| 83 |
+
else:
|
| 84 |
+
logging.info(f"Audio detected. Using language: {language_full_name} ({language_code})")
|
| 85 |
+
|
| 86 |
logging.info(f"Sending request to {MODERATION_ENDPOINT} with inputs: {list(payload.keys())}")
|
| 87 |
latency_ms = None
|
| 88 |
start_time = time.monotonic()
|
|
|
|
| 147 |
video_input = gr.Video(label="Video Input")
|
| 148 |
with gr.TabItem("🎤 Audio"):
|
| 149 |
audio_input = gr.Audio(label="Voice/Audio Input", type="filepath")
|
| 150 |
+
language_input = gr.Dropdown(
|
| 151 |
+
label="Audio Language",
|
| 152 |
+
choices=list(LANGUAGES_WITH_AUTO.keys()),
|
| 153 |
+
value="Auto Language Detection",
|
| 154 |
+
interactive=True
|
| 155 |
+
)
|
| 156 |
with gr.Row():
|
| 157 |
clear_button = gr.Button("Clear All")
|
| 158 |
submit_button = gr.Button("▶️ Moderate Content", variant="primary")
|