| import json |
| import whisper |
| import requests |
|
|
| medium_en = whisper.load_model("medium.en") |
|
|
| |
| |
| |
|
|
| |
| |
| |
| |
|
|
|
|
| def process_audio(params): |
| try: |
| params = json.loads(params) |
| except json.JSONDecodeError as e: |
| return {"error": f"Invalid JSON input: {e.msg} at line {e.lineno} column {e.colno}"} |
| |
| audio_files = params.get("urls",[]) |
| |
| |
|
|
| solutions=[] |
|
|
| for audio in audio_files: |
| result_medium = medium_en.transcribe(audio) |
| text = result_medium['text'] |
|
|
| answer_dict = {} |
| answer_dict.update({'url':audio, 'answer':text}) |
| solutions.append(answer_dict) |
| |
| |
|
|
| return json.dumps({"solutions":solutions}) |
|
|
| import gradio as gr |
| inputt = gr.Textbox(label="Parameters in json format Eg. {'audio_files':['file1.mp3','file2.wav'], 'api':'https://api.example.com', 'job_id':'1001'}") |
| outputt = gr.JSON() |
|
|
| application = gr.Interface(fn=process_audio, inputs= inputt, outputs = outputt, title = "Audio Transcription with API Integration") |
| application.launch() |