Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import pipeline | |
| import time | |
| from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub | |
| from fairseq.models.text_to_speech.hub_interface import TTSHubInterface | |
| import torch | |
| from fairseq.utils import move_to_cuda | |
| """ | |
| Notes: | |
| pip install sentencepiece | |
| pip install phonemizer | |
| install ffmpeg and add to path | |
| Must install e-speak to path | |
| solution | |
| 1.Download and install the Windows version of espeak: http://espeak.sourceforge.net/download.html | |
| 2. set PATH=%PATH%;"C:\Program Files (x86)\eSpeak\command_line"_ | |
| 3. Install .msi from https://github.com/espeak-ng/espeak-ng/releases | |
| 4.Enter environment variable | |
| 1.PHONEMIZER_ESPEAK_LIBRARY="c:\Program Files\eSpeak NG\libespeak-ng.dll" | |
| 2.PHONEMIZER_ESPEAK_PATH =“c:\Program Files\eSpeak NG” | |
| and Restart your Computer. Run the same command again from the Command Prompt (cmd.exe): | |
| """ | |
| asr = pipeline("automatic-speech-recognition",model="facebook/wav2vec2-base-960h" ) # | |
| translation_pipeline = pipeline('translation_en_to_fr',model = "Helsinki-NLP/opus-mt-en-fr" ) #This model version is built for en- to -fr , less mistakes | |
| models, cfg, task = load_model_ensemble_and_task_from_hf_hub( | |
| "facebook/tts_transformer-fr-cv7_css10", | |
| arg_overrides={"vocoder": "hifigan", "fp16": False} | |
| ) | |
| model = models[0] | |
| model = model.to(torch.device("cuda:0")) if torch.cuda.is_available() else model | |
| TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg) | |
| generator = task.build_generator(models, cfg) | |
| def transcribe_translate(audio): | |
| time.sleep(3) | |
| text_en = asr(audio)["text"] | |
| text_fr = translation_pipeline(text_en.lower()) # for some reason all audio converted to all caps and it translates differently??? | |
| text_fr = text_fr[0]['translation_text'] # good evening = bonsoir but GOOD EVENING = BONNES SÉANCES . WEIRD | |
| sample = TTSHubInterface.get_model_input(task, text_fr) | |
| sample = move_to_cuda(sample) if torch.cuda.is_available() else sample | |
| wav, rate = TTSHubInterface.get_prediction(task, model, generator, sample) | |
| wav = wav.to('cpu') | |
| wav = wav.numpy() | |
| print(wav.dtype) | |
| return text_en,text_fr , (rate,wav) | |
| iface = gr.Interface( | |
| fn=transcribe_translate, | |
| inputs=[ | |
| gr.Audio(source="microphone", type="filepath") | |
| ], | |
| outputs=[ | |
| gr.Textbox(label= "English Transcription"), | |
| gr.Textbox(label= "French Translation"), | |
| gr.Audio(label = "French Audio") | |
| ], | |
| live=True) | |
| iface.launch() | |