CoolFace
Apppublic

Funbi/Translation_app

sourceHugging Faceupdated 4y agoView on Hugging Face
0likes
app.py152 linesDownload Raw Back to root
1import whisper2 3model = whisper.load_model("medium")4 5from transformers import pipeline6en_fr_translator = pipeline("translation_en_to_fr")7 8import gradio as gr 9import time10LANGUAGES = {11    "en": "english",12    "zh": "chinese",13    "de": "german",14    "es": "spanish",15    "ru": "russian",16    "ko": "korean",17    "fr": "french",18    "ja": "japanese",19    "pt": "portuguese",20    "tr": "turkish",21    "pl": "polish",22    "ca": "catalan",23    "nl": "dutch",24    "ar": "arabic",25    "sv": "swedish",26    "it": "italian",27    "id": "indonesian",28    "hi": "hindi",29    "fi": "finnish",30    "vi": "vietnamese",31    "iw": "hebrew",32    "uk": "ukrainian",33    "el": "greek",34    "ms": "malay",35    "cs": "czech",36    "ro": "romanian",37    "da": "danish",38    "hu": "hungarian",39    "ta": "tamil",40    "no": "norwegian",41    "th": "thai",42    "ur": "urdu",43    "hr": "croatian",44    "bg": "bulgarian",45    "lt": "lithuanian",46    "la": "latin",47    "mi": "maori",48    "ml": "malayalam",49    "cy": "welsh",50    "sk": "slovak",51    "te": "telugu",52    "fa": "persian",53    "lv": "latvian",54    "bn": "bengali",55    "sr": "serbian",56    "az": "azerbaijani",57    "sl": "slovenian",58    "kn": "kannada",59    "et": "estonian",60    "mk": "macedonian",61    "br": "breton",62    "eu": "basque",63    "is": "icelandic",64    "hy": "armenian",65    "ne": "nepali",66    "mn": "mongolian",67    "bs": "bosnian",68    "kk": "kazakh",69    "sq": "albanian",70    "sw": "swahili",71    "gl": "galician",72    "mr": "marathi",73    "pa": "punjabi",74    "si": "sinhala",75    "km": "khmer",76    "sn": "shona",77    "yo": "yoruba",78    "so": "somali",79    "af": "afrikaans",80    "oc": "occitan",81    "ka": "georgian",82    "be": "belarusian",83    "tg": "tajik",84    "sd": "sindhi",85    "gu": "gujarati",86    "am": "amharic",87    "yi": "yiddish",88    "lo": "lao",89    "uz": "uzbek",90    "fo": "faroese",91    "ht": "haitian creole",92    "ps": "pashto",93    "tk": "turkmen",94    "nn": "nynorsk",95    "mt": "maltese",96    "sa": "sanskrit",97    "lb": "luxembourgish",98    "my": "myanmar",99    "bo": "tibetan",100    "tl": "tagalog",101    "mg": "malagasy",102    "as": "assamese",103    "tt": "tatar",104    "haw": "hawaiian",105    "ln": "lingala",106    "ha": "hausa",107    "ba": "bashkir",108    "jw": "javanese",109    "su": "sundanese",110}111 112def transcribe(audio):113    114   115    # load audio and pad or trim it to fit 30 seconds116    audio = whisper.load_audio(audio)117    audio = whisper.pad_or_trim(audio)118 119    # make log-Mel spectrogram and move to the same device as the model120    mel = whisper.log_mel_spectrogram(audio).to(model.device)121 122    # detect the spoken language123    _, probs = model.detect_language(mel)124    language= max(probs, key=probs.get)125    lang = LANGUAGES[language]126    #lang=(f"Detected language: {max(probs, key=probs.get)}")127    lang=(f"Detected language: {lang}")128 129    130    131   132 133    # decode the audio134    options = whisper.DecodingOptions(fp16 = False,task= "translate")135    result = whisper.decode(model, mel, options)136    word= result.text137    trans = en_fr_translator(word)138    Trans = trans[0]['translation_text']139    result=f"{lang}\n{word}\n\nFrench translation: {Trans}"140    return result141 142 143gr.Interface(144title = 'OpenAI Whisper ASR Gradio Web UI',description="This app will take an audio input and it will try to guess the language and also translate it to french ",145fn=transcribe,146inputs=[147    gr.inputs.Audio(source="microphone", type="filepath")148],149outputs=[150    "textbox"151],152live=True).launch()