greykingreys's picture
Update app.py
256c831 verified
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")
# Fonction
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'
# Configuration de l'interface Gradio
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()