Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
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.
|
|
|
|
|
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 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
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 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
136 |
|
|
|
137 |
demo = gr.Interface(
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
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()
|