| from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM |
| import gradio as gr |
| import joblib |
| import soundfile as sf |
| import nemo.collections.asr as nemo_asr |
|
|
|
|
| pipe = pipeline("text-generation", model="greykingreys/bart_CHATbotOrangeMoney_model") |
|
|
| asr_canary = nemo_asr.models.ASRModel.from_pretrained("nvidia/canary-1b-flash") |
| narrator_fr = pipeline("text-to-speech", model="facebook/mms-tts-fra") |
|
|
| tokenizer = AutoTokenizer.from_pretrained("greykingreys/bart_CHATbotOrangeMoney_model") |
| model = AutoModelForSeq2SeqLM.from_pretrained("greykingreys/bart_CHATbotOrangeMoney_model") |
|
|
| |
| def chat(prompt): |
| inputs = tokenizer(prompt, return_tensors="pt", truncation=True, padding="max_length", max_length=512) |
| outputs = model.generate( |
| input_ids=inputs["input_ids"], |
| attention_mask=inputs["attention_mask"], |
| max_length=512, |
| num_beams=5, |
| do_sample=True, |
| temperature=0.9 |
| ) |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
| def vocal(audio): |
| transcriptions = asr_canary.transcribe([audio], source_lang = 'fr', target_lang = "fr") |
| text = transcriptions[0].text |
| text = chat(text) |
| narrated_text = narrator_fr(text) |
| sf.write("narrated_audio3.wav", narrated_text["audio"][0], narrated_text["sampling_rate"]) |
| return text, 'narrated_audio3.wav' |
|
|
|
|
| |
| site = gr.Blocks(theme='NoCrypt/miku') |
|
|
|
|
| chatbot = gr.Interface( |
| fn = chat, |
| inputs=gr.Textbox(lines=2, placeholder="Posez-moi une question sur OM..."), |
| outputs=gr.Textbox(lines = 12, label= 'Reponse'), |
| title="Chatbot d'assistance Orange Money", |
| description="Un chatbot qui vous assiste dans vos activitez avec le service orange money", |
| examples=[ |
| ["Comment consulter mon solde sur Orange Money"], |
| ["Comment recharger de credit un compte avec Orange money"], |
| ["comment activer mon compte"] |
| ] |
| ) |
|
|
| vocalbot = gr.Interface(fn = vocal, |
| inputs = gr.Audio(sources="microphone", |
| type="filepath"), |
| outputs = [ |
| gr.Textbox(lines = 7, label = 'text'), |
| gr.Audio(label= 'audio') |
| ], |
| title = "audio d'assistance Orange Money", |
| description = "Vous etes pressé, utiliser l'interface audio pour votre assistance Orange Money" |
| ) |
|
|
| with site: |
| gr.TabbedInterface( |
| [chatbot, |
| vocalbot,], |
| ["Assistance en ecrit", |
| "Assitance en audio"],) |
|
|
| site.launch() |