Core23 commited on
Commit
0d1bbbe
·
verified ·
1 Parent(s): e7f6ae9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -34
app.py CHANGED
@@ -2,24 +2,28 @@ import os
2
  import openai
3
  import gradio as gr
4
  from transformers import pipeline
5
- from openai import OpenAI
6
- client = OpenAI()
7
 
 
8
  openai.api_key = os.getenv("OPENAI_API_KEY")
9
 
 
10
  pipe = pipeline(model="Ussen/whisper-medium-swc-drc-kat-1")
11
 
12
  def transcribe(audio):
 
13
  text = pipe(audio)["text"]
14
  return text
15
 
16
  def generate_response(transcribed_text):
17
- response = client.chat.completions.create(
18
-
 
19
  messages=[
20
  {
21
  "role": "system",
22
- "content": "All your answers should be in Congolese Swahili only, understand Swahili and France so here we start. Before you answer read the context in this chart find the best answer create a good summary and provide the answer maintaining Congolese Swahili...Mimi ni Haki des femmes AI bot iliyoundwa na Core23Lab. Mimi ni msaidizi wa sauti ya haki ya kumiliki ardhi kwa wanawake nchini DRC. Nikusaidie vipi!"
 
 
23
  },
24
  {
25
  "role": "user",
@@ -27,7 +31,7 @@ def generate_response(transcribed_text):
27
  },
28
  {
29
  "role": "assistant",
30
- "content": "Mimi ni Haki des femmes AI bot iliyoundwa na Core23Lab. Mimi ni msaidizi wa sauti ya haki ya kumiliki ardhi kwa wanawake nchini DRC. Nikusaidie vipi"
31
  },
32
  {
33
  "role": "user",
@@ -35,7 +39,7 @@ def generate_response(transcribed_text):
35
  },
36
  {
37
  "role": "assistant",
38
- "content": """Sheria au loi ile inangaria bulongo mu jamuri ya kidemokrasia ya kongo ni sheria namba 73-021 ya le 20/07/1973, ile iribadirishwa na
39
  ku ongezwa na sheria namba 80-008 ya le 18/07/1980, ile ina semezea pa régime foncier et immobilier na régime des suretés.
40
  Iyi sheria ayangarie paka regime juridique ya kutumikia bulongo, lakini inanaria pia « regime general des biens »,
41
  kwanzia ku article 1 nakufikia ku article 52 na « regime des suretes » kwanzia ku article 245 nakufikia ku article 396.
@@ -43,7 +47,7 @@ def generate_response(transcribed_text):
43
  kinangaria regime des sûretés kinakombozwa na acte unisaforme ya Ohada ile inasemea regime des sûretés.
44
  193 articles bule ya mu loi foncière inasemea regime foncier et immobilier (kwanzia ku article 53 nafikia ku article 244) ;
45
  njo ile ma articles ile inawekwa mu disposition ya bale banatumikiaka bulongo (population), bakubwa ba inchi bale banagariaka
46
- mambo ya bulongo (autorités foncières et cadastrales) na ba batshunga sheria (ba avocats na ba magistrats). """
47
  },
48
  {
49
  "role": "user",
@@ -51,7 +55,7 @@ def generate_response(transcribed_text):
51
  },
52
  {
53
  "role": "assistant",
54
- "content": """Sheria aiandike kukatazwa ata kumoya kufwatana na sexe ao bingine nju ya haki yaku tumikia domaine foncier. Lakini, banamuke kiloko njo beko napata ma mpango nju ya kukosa kujua ma procedures,
55
  certificat ya enregistrement, kukosa kwa makuta, incapacité juridique ya mwanamuke mwenye kuolewa, obligation ya autorisation ya bwana yake.
56
  Sheria nᴼ11/022 ya 24/12/2011 ile ina semea ma principes ya musingi ile inangaria agriculture, ina semea accès équitable ya bulongo ile banamuke bakumigini banekalaka ba victimes sana.
57
  Ku migini (milieux ruraux), kupata kwa ma mpango kuna fwatana ma kizazi na chefu wa clan. Lakini, kutumikiya kwa loi nᴼ73 ya le 20/07/1973 vile ili badishwa ina semea regime general,
@@ -106,43 +110,45 @@ def generate_response(transcribed_text):
106
 
107
  • Wakati ya kwatshana, bintu bita kaburiwa kipande kipande pashipo kwangaria kule biritokea ao namuna bariipata,
108
 
109
- • Risque ya bukonvi kama kuna kuya batoto ba kitanda kiakwanza."""
110
  },
111
  {
112
  "role": "user",
113
  "content": transcribed_text
114
  },
115
  ],
116
- model="gpt-4"
117
  )
 
118
  return response.choices[0].message.content
119
-
120
  def inference(text):
121
- #client = openai.OpenAI(api_key='your_api_key')
122
- response = client.audio.speech.create(
123
- model="tts-1",
124
- voice="nova",
125
- input=text
126
- )
127
- output_file = "tts_output.mp3"
128
- response.stream_to_file(output_file)
129
- return output_file
130
 
131
  def process_audio_and_respond(audio):
132
- text = transcribe(audio)
133
- response_text = generate_response(text)
134
- output_file = inference(response_text)
135
- return response_text, output_file
 
136
 
 
137
  demo = gr.Interface(
138
- process_audio_and_respond,
139
- gr.inputs.Audio(source="microphone", type="filepath", label="Bonyeza kitufe cha kurekodi na uliza swali lako"),
140
- [gr.outputs.Textbox(label="Jibu (kwa njia ya maandishi)"), gr.outputs.Audio(type="filepath", label="Jibu kwa njia ya sauti (Bofya kusikiliza Jibu)")],
141
- description="Uliza Swali kuhusu haki and sheria za udongo",
142
- theme="compact",
143
- layout="vertical",
144
- allow_flagging=False,
145
- live=True,
 
 
 
146
  )
147
 
148
- demo.launch()
 
2
  import openai
3
  import gradio as gr
4
  from transformers import pipeline
 
 
5
 
6
+ # Set the OpenAI API key from your environment variable
7
  openai.api_key = os.getenv("OPENAI_API_KEY")
8
 
9
+ # Initialize the transcription pipeline using a Hugging Face model
10
  pipe = pipeline(model="Ussen/whisper-medium-swc-drc-kat-1")
11
 
12
  def transcribe(audio):
13
+ # Use the pipeline to transcribe audio to text
14
  text = pipe(audio)["text"]
15
  return text
16
 
17
  def generate_response(transcribed_text):
18
+ # Call the OpenAI ChatCompletion API directly
19
+ response = openai.ChatCompletion.create(
20
+ model="gpt-4",
21
  messages=[
22
  {
23
  "role": "system",
24
+ "content": ("All your answers should be in Congolese Swahili only, understand Swahili and France so here we start. "
25
+ "Before you answer read the context in this chart find the best answer create a good summary and provide the answer maintaining Congolese Swahili... "
26
+ "Mimi ni Haki des femmes AI bot iliyoundwa na Core23Lab. Mimi ni msaidizi wa sauti ya haki ya kumiliki ardhi kwa wanawake nchini DRC. Nikusaidie vipi!")
27
  },
28
  {
29
  "role": "user",
 
31
  },
32
  {
33
  "role": "assistant",
34
+ "content": ("Mimi ni Haki des femmes AI bot iliyoundwa na Core23Lab. Mimi ni msaidizi wa sauti ya haki ya kumiliki ardhi kwa wanawake nchini DRC. Nikusaidie vipi")
35
  },
36
  {
37
  "role": "user",
 
39
  },
40
  {
41
  "role": "assistant",
42
+ "content": ("""Sheria au loi ile inangaria bulongo mu jamuri ya kidemokrasia ya kongo ni sheria namba 73-021 ya le 20/07/1973, ile iribadirishwa na
43
  ku ongezwa na sheria namba 80-008 ya le 18/07/1980, ile ina semezea pa régime foncier et immobilier na régime des suretés.
44
  Iyi sheria ayangarie paka regime juridique ya kutumikia bulongo, lakini inanaria pia « regime general des biens »,
45
  kwanzia ku article 1 nakufikia ku article 52 na « regime des suretes » kwanzia ku article 245 nakufikia ku article 396.
 
47
  kinangaria regime des sûretés kinakombozwa na acte unisaforme ya Ohada ile inasemea regime des sûretés.
48
  193 articles bule ya mu loi foncière inasemea regime foncier et immobilier (kwanzia ku article 53 nafikia ku article 244) ;
49
  njo ile ma articles ile inawekwa mu disposition ya bale banatumikiaka bulongo (population), bakubwa ba inchi bale banagariaka
50
+ mambo ya bulongo (autorités foncières et cadastrales) na ba batshunga sheria (ba avocats na ba magistrats). """)
51
  },
52
  {
53
  "role": "user",
 
55
  },
56
  {
57
  "role": "assistant",
58
+ "content": ("""Sheria aiandike kukatazwa ata kumoya kufwatana na sexe ao bingine nju ya haki yaku tumikia domaine foncier. Lakini, banamuke kiloko njo beko napata ma mpango nju ya kukosa kujua ma procedures,
59
  certificat ya enregistrement, kukosa kwa makuta, incapacité juridique ya mwanamuke mwenye kuolewa, obligation ya autorisation ya bwana yake.
60
  Sheria nᴼ11/022 ya 24/12/2011 ile ina semea ma principes ya musingi ile inangaria agriculture, ina semea accès équitable ya bulongo ile banamuke bakumigini banekalaka ba victimes sana.
61
  Ku migini (milieux ruraux), kupata kwa ma mpango kuna fwatana ma kizazi na chefu wa clan. Lakini, kutumikiya kwa loi nᴼ73 ya le 20/07/1973 vile ili badishwa ina semea regime general,
 
110
 
111
  • Wakati ya kwatshana, bintu bita kaburiwa kipande kipande pashipo kwangaria kule biritokea ao namuna bariipata,
112
 
113
+ • Risque ya bukonvi kama kuna kuya batoto ba kitanda kiakwanza.""")
114
  },
115
  {
116
  "role": "user",
117
  "content": transcribed_text
118
  },
119
  ],
 
120
  )
121
+ # Return the content of the first message from the assistant
122
  return response.choices[0].message.content
123
+
124
  def inference(text):
125
+ # Placeholder for a text-to-speech API call.
126
+ # Since OpenAI does not offer an official TTS endpoint, we'll simulate TTS output.
127
+ output_file = "tts_output.mp3"
128
+ with open(output_file, "wb") as f:
129
+ f.write(b"Dummy audio data for TTS output")
130
+ return output_file
 
 
 
131
 
132
  def process_audio_and_respond(audio):
133
+ # Process audio: transcribe, generate a response, and produce TTS output.
134
+ text = transcribe(audio)
135
+ response_text = generate_response(text)
136
+ output_file = inference(response_text)
137
+ return response_text, output_file
138
 
139
+ # Updated Gradio interface syntax
140
  demo = gr.Interface(
141
+ fn=process_audio_and_respond,
142
+ inputs=gr.Audio(source="microphone", type="filepath", label="Bonyeza kitufe cha kurekodi na uliza swali lako"),
143
+ outputs=[
144
+ gr.Textbox(label="Jibu (kwa njia ya maandishi)"),
145
+ gr.Audio(type="filepath", label="Jibu kwa njia ya sauti (Bofya kusikiliza Jibu)")
146
+ ],
147
+ description="Uliza Swali kuhusu haki and sheria za udongo",
148
+ theme="compact",
149
+ layout="vertical",
150
+ allow_flagging=False,
151
+ live=True,
152
  )
153
 
154
+ demo.launch()