Angelo25 commited on
Commit
be7970b
·
verified ·
1 Parent(s): a9347ca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -37
app.py CHANGED
@@ -1,45 +1,26 @@
1
  import gradio as gr
2
  import torch
3
- from transformers import WhisperForConditionalGeneration, WhisperProcessor, AutoTokenizer, AutoModelForCausalLM, VitsModel
4
-
5
- # Load the models and tokenizers
6
- asr_model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-tiny")
7
- asr_tokenizer = AutoTokenizer.from_pretrained("openai/whisper-tiny")
8
- asr_processor = WhisperProcessor.from_pretrained("openai/whisper-tiny")
9
-
10
- llm_model = AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct", trust_remote_code=True)
11
- llm_tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
12
 
13
- tts_model = VitsModel.from_pretrained("kakao-enterprise/vits-ljs")
14
- tts_tokenizer = AutoTokenizer.from_pretrained("kakao-enterprise/vits-ljs")
 
15
 
16
- # Define the function to transcribe audio
17
- def transcribe_audio(audio):
18
- input_features = asr_processor(audio, return_tensors="pt").input_features
19
- predicted_ids = asr_model.generate(input_features)
20
- transcription = asr_processor.batch_decode(predicted_ids, skip_special_tokens=True)
21
- return transcription[0]
22
 
23
- # Define the function to generate text
24
- def generate_text(transcription):
25
- input_ids = llm_tokenizer.encode(transcription, return_tensors="pt")
26
- output_ids = llm_model.generate(input_ids)
27
- generated_text = llm_tokenizer.decode(output_ids[0], skip_special_tokens=True)
28
- return generated_text
29
 
30
- def text_to_speech(generated_text):
31
- text_input = tts_tokenizer(generated_text, return_tensors="pt")
32
-
33
- with torch.no_grad():
34
- output = tts_model(**text_input).waveform
35
-
36
- return output
37
 
38
- def my_alexa(audio_input):
39
- transcription = transcribe_audio(audio_input)
40
- generated_text = generate_text(transcription)
41
- speech_output = text_to_speech(generated_text)
42
- return speech_output
43
 
44
- gr.Interface(fn=my_alexa, inputs=gr.Audio(sources="microphone"), outputs=gr.Audio(), title="MyAlexa AI Assistant",
45
- description="An AI Assistant That Can Answer Your Questions!").launch(inbrowser=True, debug=True)
 
 
 
1
  import gradio as gr
2
  import torch
3
+ from transformers import pipeline
4
+ import gradio as gr
5
+ from transformers import pipeline
 
 
 
 
 
 
6
 
7
+ asr_pipe = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
8
+ llm_pipe = pipeline("text-generation", model="microsoft/Phi-3-mini-4k-instruct", trust_remote_code=True)
9
+ tts_pipe = pipeline("text-to-speech", model="kakao-enterprise/vits-ljs")
10
 
11
+ def process_audio(audio):
12
+ # Convert audio to text using ASR pipeline
13
+ transcribed_text = asr_pipe(audio)[0]['transcription']
 
 
 
14
 
15
+ # Generate text using LLM pipeline
16
+ generated_text = llm_pipe(transcribed_text)[0]['generated_text']
 
 
 
 
17
 
18
+ # Convert generated text to speech using TTS pipeline
19
+ speech = tts_pipe(generated_text)[0]['audio']
 
 
 
 
 
20
 
21
+ return speech
 
 
 
 
22
 
23
+ audio_input = gr.Audio(label="Audio Input", sources="microphone")
24
+ my_alexa_output = gr.Interface(fn=process_audio, inputs=audio_input, outputs="audio", title="MyAlexa AI Assistant",
25
+ description="An AI Assistant That Will Answer Your Questions!")
26
+ my_alexa_output.launch(inbrowser=True)