HayZun commited on
Commit
f01fe14
1 Parent(s): 9163352

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -63
app.py CHANGED
@@ -1,71 +1,30 @@
1
  import gradio as gr
 
2
  from transformers import pipeline
3
- import requests
4
- import json
5
- import edge_tts
6
- import asyncio
7
  import tempfile
8
- import os
9
  import inflect
10
- from huggingface_hub import InferenceClient
11
- import re
12
- import time
13
- from streaming_stt_nemo import Model
14
 
 
15
  number_to_word = inflect.engine()
16
 
17
- default_lang = "fr"
 
18
 
19
- engines = { default_lang: Model(default_lang) }
20
-
21
- def transcribe(audio):
22
  lang = "fr"
23
- model = engines[lang]
24
- text = model.stt_file(audio)[0]
25
  return text
26
 
27
- client1 = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
28
-
29
- system_instructions1 = "<s>[SYSTEM] Répondez comme le vrai Jarvis JARVIS, fabriqué par 'Tony Stark'. La conversation doit être très courte, claire, amicale et concise. Le texte fourni est une demande de réponse spécifique de votre part, en tant qu'assistant virtuel. Il vous demande de fournir des réponses amicales comme si vous étiez le personnage Jarvis, créé par « Tony Stark ». On s'attend à ce que j'évite les présentations et que je réponde directement à la requête, en développant tous les aspects de la demande. En tant qu'assistant doté d'une IA, votre tâche consiste à générer des réponses qui semblent avoir été créées par l'utilisateur et non par un assistant doté d'une IA.[USER]"
30
-
31
- def model(text):
32
- generate_kwargs = dict(
33
- temperature=0.7,
34
- max_new_tokens=512,
35
- top_p=0.95,
36
- repetition_penalty=1,
37
- do_sample=True,
38
- seed=42,
39
- )
40
-
41
- formatted_prompt = system_instructions1 + text + "[JARVIS]"
42
- stream = client1.text_generation(
43
- formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
44
- output = ""
45
- for response in stream:
46
- if not response.token.text == "</s>":
47
- output += response.token.text
48
-
49
- return output
50
-
51
- def number_to_words(str):
52
- words = str.split(' ')
53
- result = []
54
-
55
- for word in words:
56
- if( any(char.isdigit() for char in word) ):
57
- word = number_to_word.number_to_words(word)
58
-
59
- result.append(word)
60
-
61
- final_result = ' '.join(result).replace('point', '')
62
- return final_result
63
-
64
  async def respond(audio):
65
- user = transcribe(audio)
66
- reply = model(user)
67
- reply2 = number_to_words(reply)
68
- communicate = edge_tts.Communicate(reply2)
 
 
 
69
  with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp_file:
70
  tmp_path = tmp_file.name
71
  await communicate.save(tmp_path)
@@ -81,14 +40,8 @@ MORE = """ ## TRY Other Models
81
  ### Instant Image: 4k images in 5 Second -> https://huggingface.co/spaces/KingNish/Instant-Image
82
  """
83
 
84
- BETA = """ ### Voice Chat (BETA)"""
85
-
86
  FAST = """## Fastest Model"""
87
 
88
- Complex = """## Best in Complex Question"""
89
-
90
- Detail = """## Best for Detailed Generation or Long Answers"""
91
-
92
  base_loaded = "mistralai/Mixtral-8x7B-Instruct-v0.1"
93
 
94
  client1 = InferenceClient(base_loaded)
@@ -145,4 +98,4 @@ with gr.Blocks(css="style.css") as demo:
145
  gr.Markdown(MORE)
146
 
147
  if __name__ == "__main__":
148
- demo.queue(max_size=200).launch()
 
1
  import gradio as gr
2
+ from googletrans import Translator
3
  from transformers import pipeline
 
 
 
 
4
  import tempfile
5
+ import edge_tts
6
  import inflect
 
 
 
 
7
 
8
+ translator = Translator()
9
  number_to_word = inflect.engine()
10
 
11
+ # Modèle de langue français
12
+ model = pipeline("text-generation", model="dbddv01/gpt2-french-small")
13
 
14
+ async def transcribe(audio):
 
 
15
  lang = "fr"
16
+ # Supposons que vous avez déjà défini la fonction de transcription transcribe() dans votre code
17
+ text = transcribe(audio)
18
  return text
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  async def respond(audio):
21
+ user = await transcribe(audio)
22
+ # Traduire l'entrée utilisateur en français
23
+ user_fr = translator.translate(user, src='en', dest='fr').text
24
+ reply = model(user_fr, max_length=50, num_return_sequences=1)[0]['generated_text']
25
+ # Traduire la réponse en anglais
26
+ reply_en = translator.translate(reply, src='fr', dest='en').text
27
+ communicate = edge_tts.Communicate(reply_en)
28
  with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp_file:
29
  tmp_path = tmp_file.name
30
  await communicate.save(tmp_path)
 
40
  ### Instant Image: 4k images in 5 Second -> https://huggingface.co/spaces/KingNish/Instant-Image
41
  """
42
 
 
 
43
  FAST = """## Fastest Model"""
44
 
 
 
 
 
45
  base_loaded = "mistralai/Mixtral-8x7B-Instruct-v0.1"
46
 
47
  client1 = InferenceClient(base_loaded)
 
98
  gr.Markdown(MORE)
99
 
100
  if __name__ == "__main__":
101
+ demo.queue(max_size=200).launch()