Spaces:
Sleeping
Sleeping
Download app.py from shohabbosdev/Uzbek-STT: direct link, hf CLI and curl.
- Browser
- Download file 2.8 kB
-
https://huggingface.co/spaces/shohabbosdev/Uzbek-STT/resolve/main/app.py
- Command line
-
hf download hf://spaces/shohabbosdev/Uzbek-STT/app.py
-
curl -L -o app.py https://huggingface.co/spaces/shohabbosdev/Uzbek-STT/resolve/main/app.py
2.8 kB
| import requests | |
| import gradio as gr | |
| import time | |
| from pydub import AudioSegment | |
| API_URL = "https://api-inference.huggingface.co/models/oyqiz/uzbek_stt_1_version" | |
| headers = {"Authorization": "Bearer "+ TOKEN } | |
| def query(filename, progress=gr.Progress()): | |
| try: | |
| progress(0, desc="Matnga o'tkazish boshlandi. Iltimos ozgina kuting...") | |
| if filename is None: | |
| return gr.Warning("Siz kiritgan fayl turida xatolik bor %s" %filename) | |
| else: | |
| with open(filename, "rb") as f: | |
| data = f.read() | |
| # Audio faylning uzunligini tekshirish | |
| audio = AudioSegment.from_file(filename) | |
| duration_seconds = audio.duration_seconds | |
| if duration_seconds < 20: | |
| return gr.Warning("Iltimos audio uzunligi 20 sekunddan kam bo'lmasin") | |
| response = requests.post(API_URL, headers=headers, data=data) | |
| for i in progress.tqdm(range(100)): | |
| time.sleep(0.1) | |
| return response.json()['text'] | |
| except Exception as e: | |
| return gr.Error("Xatolik sodir bo'ldi: %s" %e) | |
| stt = gr.Interface( | |
| fn=query, | |
| description="Ushbu dasturdan foydalanish siz uchun ajoyib taasurotlar keltirib chiqarishi mumkin", | |
| inputs=gr.Audio(label="Audioning kirish qismi", type='filepath'), | |
| outputs=gr.Textbox(label="Natija qismi", show_copy_button=True), | |
| title="Uzbek STT", | |
| examples=[ | |
| ['https://mohir.ai/sample.mp3'], | |
| ['https://mohir.ai/audios/give_address.wav'], | |
| ['https://mohir.ai/audios/give_department.wav'], | |
| ['https://mohir.ai/audios/give_situation.wav'], | |
| ['https://mohir.ai/audios/introduction.wav'], | |
| ['https://mohir.ai/audios/thank_you.wav'] | |
| ], | |
| examples_per_page=2, | |
| theme='HaleyCH/HaleyCH_Theme', | |
| css=""" | |
| body { | |
| background-image: url('img/pexels.jpg'); | |
| background-size: cover; | |
| background-position: center; | |
| animation: bg-animation 20s infinite alternate; | |
| } | |
| @keyframes bg-animation { | |
| 0% { | |
| background-color: rgba(255, 255, 255, 0.5); | |
| } | |
| 50% { | |
| background-color: rgba(255, 255, 255, 0.8); | |
| } | |
| 100% { | |
| background-color: rgba(255, 255, 255, 0.5); | |
| } | |
| } | |
| button:hover { | |
| background-color: #4FAF50; | |
| color: white; | |
| } | |
| """, | |
| additional_inputs_accordion=gr.Accordion(label="Additional Inputs", open=False), | |
| submit_btn = gr.Button("Tasdiqlash", variant="primary", size='sm', icon='submit.svg'), | |
| clear_btn = gr.Button("Tozalash", variant="primary", size='sm', icon='clear.svg'), | |
| delete_cache = (800, 800) | |
| ) | |
| if __name__ == "__main__": | |
| stt.launch() |