Angelo25 commited on
Commit
2ddf43e
·
verified ·
1 Parent(s): fcad19f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -45
app.py CHANGED
@@ -1,46 +1,46 @@
1
  import gradio as gr
2
- from transformers import AutoModelForSpeechSeq2Seq, AutoTokenizer, AutoModelForCausalLM, AutoModelForTextToWaveform
3
-
4
- asr_tokenizer = AutoTokenizer.from_pretrained("openai/whisper-tiny")
5
- asr_model = AutoModelForSpeechSeq2Seq.from_pretrained("openai/whisper-tiny")
6
-
7
- llm_tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct", trust_remote_code=True)
8
- llm_model = AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct", trust_remote_code=True)
9
-
10
- tts_tokenizer = AutoTokenizer.from_pretrained("kakao-enterprise/vits-ljs")
11
- tts_model = AutoModelForTextToWaveform.from_pretrained("kakao-enterprise/vits-ljs")
12
-
13
- def asr_transcript(audio):
14
- inputs = asr_tokenizer(audio, return_tensors="pt", padding=True, truncation=True)
15
- with torch.no_grad():
16
- logits = asr_model(input_values=inputs.input_values).logits
17
- predicted_ids = torch.argmax(logits, dim=-1)
18
- transcription = asr_tokenizer.batch_decode(predicted_ids)[0]
19
- return transcription
20
-
21
- def llm_response(input_text):
22
- input_text_encoded = llm_tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
23
- with torch.no_grad():
24
- output_ids = llm_model.generate(input_text_encoded.input_ids, max_length=100, num_return_sequences=1)
25
- response = llm_tokenizer.decode(output_ids[0], skip_special_tokens=True)
26
- return response
27
-
28
- def tts_convert(text):
29
- input_ids = tts_tokenizer(text, return_tensors="pt").input_ids
30
- with torch.no_grad():
31
- audio = tts_model.generate(input_ids)
32
- return audio
33
-
34
- # Create Gradio interfaces
35
- audio_input = gr.Audio(source="microphone", label="Speak Here")
36
- text_output = gr.Textbox(label="Transcription")
37
-
38
- text_input = gr.Textbox(label="Enter Text")
39
- text_output_gen = gr.Textbox(label="Response")
40
-
41
- output_audio = gr.Audio(label="Speech Output")
42
-
43
- # Combine everything into Gradio interfaces
44
- gr.Interface(asr_transcript, audio_input, text_output, title="ASR Transcription").launch()
45
- gr.Interface(llm_response, text_input, text_output_gen, title="Text Generation").launch()
46
- gr.Interface(tts_convert, text_input, output_audio, title="TTS Speech Output").launch()
 
1
  import gradio as gr
2
+ import torch
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM
4
+ from transformers import pipeline
5
+
6
+ # Load models
7
+ whisper = AutoModelForCausalLM.from_pretrained("openai/whisper-tiny")
8
+ whisper_tokenizer = AutoTokenizer.from_pretrained("openai/whisper-tiny")
9
+
10
+ llm_model = AutoModelForCausalLM.from_pretrained(
11
+ "microsoft/Phi-3-mini-4k-instruct",
12
+ device_map="cpu",
13
+ torch_dtype="auto",
14
+ trust_remote_code=True)
15
+ llm_tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
16
+ phi3_mini_4k = pipeline("text-generation", model=llm_model, tokenizer=llm_tokenizer)
17
+
18
+ vits_tts = pipeline("text-to-speech", model="kakao-enterprise/vits-ljs")
19
+
20
+ # Define function to convert audio to text
21
+ def audio_to_text(audio):
22
+ # Convert audio to text using Whisper model
23
+ inputs = whisper_tokenizer(audio, return_tensors="pt", padding=True, truncation=True)
24
+ outputs = whisper(**inputs)
25
+ predicted_ids = torch.argmax(outputs.logits, dim=-1)
26
+ transcribed_text = whisper_tokenizer.decode(predicted_ids[0])
27
+ return str(transcribed_text)
28
+
29
+ # Define functions for model predictions
30
+ def generate_text(prompt):
31
+ generated_text = phi3_mini_4k(prompt)[0]['generated_text']
32
+ return generated_text
33
+
34
+ def text_to_speech(text):
35
+ generated_text = phi3_mini_4k(text, max_length=50, do_sample=True)[0]['generated_text']
36
+ speech = vits_tts(generated_text)[0]['audio']
37
+ return speech
38
+
39
+ # Create Gradio interface
40
+ audio_input = gr.Audio(label="Can I Help You?", sources="microphone")
41
+ text_output = gr.Textbox(label="Transcribed Text")
42
+ gr.Interface(
43
+ text_to_speech,
44
+ inputs=audio_input,
45
+ outputs=gr.Audio(label="Answer:"),
46
+ title="MyAlexa AI Assistant").launch(inbrowser=True, debug=True)