|
import whisper
|
|
import numpy as np
|
|
|
|
from whisper import load_model, transcribe
|
|
from whisper.audio import load_audio
|
|
|
|
def transcribe_audio(audio):
|
|
model = load_model("small")
|
|
|
|
|
|
result = transcribe(model, audio)
|
|
|
|
|
|
detected_language = result.get("language")
|
|
whisper_to_indictrans2 = {
|
|
"as": "asm_Beng",
|
|
"bn": "ben_Beng",
|
|
"brx": "brx_Deva",
|
|
"doi": "doi_Deva",
|
|
"gu": "guj_Gujr",
|
|
"hi": "hin_Deva",
|
|
"kn": "kan_Knda",
|
|
"ks": "kas_Arab",
|
|
"ks_Deva": "kas_Deva",
|
|
"kok": "kok_Deva",
|
|
"mai": "mai_Deva",
|
|
"ml": "mal_Mlym",
|
|
"mni": "mni_Beng",
|
|
"mni_Mtei": "mni_Mtei",
|
|
"mr": "mar_Deva",
|
|
"ne": "nep_Deva",
|
|
"or": "ory_Orya",
|
|
"pa": "pan_Guru",
|
|
"sa": "san_Deva",
|
|
"sat": "sat_Olck",
|
|
"sd": "snd_Arab",
|
|
"sd_Deva": "snd_Deva",
|
|
"ta": "tam_Taml",
|
|
"te": "tel_Telu",
|
|
"ur": "urd_Arab",
|
|
"en": "eng_Latn",
|
|
}
|
|
if detected_language in whisper_to_indictrans2.keys():
|
|
detected_language = whisper_to_indictrans2[detected_language]
|
|
elif detected_language not in whisper_to_indictrans2.keys():
|
|
return "Unknown language detected",None
|
|
|
|
|
|
transcription = result.get("text")
|
|
|
|
return detected_language, transcription
|
|
|
|
|