lyimo commited on
Commit
49db081
·
1 Parent(s): ef5294d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -50
app.py CHANGED
@@ -3,68 +3,66 @@ import subprocess
3
  import openai
4
  import gradio as gr
5
 
6
- openai.api_key = "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"
7
 
8
- import requests
9
 
10
- API_URL = "https://api-inference.huggingface.co/models/lyimo/whisper-small-sw2"
11
- headers = {"Authorization": "Bearer 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"}
12
 
13
- def query(filename):
14
- with open(filename, "rb") as f:
15
- data = f.read()
16
- response = requests.post(API_URL, headers=headers, data=data)
17
- return response.json()
18
 
19
  def transcribe(audio):
20
- with open(audio, "rb") as audio_file:
21
- transcript = openai.Audio.transcribe("whisper-1", audio_file)
22
- return transcript["text"]
 
23
 
24
  def generate_response(transcribed_text):
25
- response = openai.ChatCompletion.create(
26
- model="gpt-3.5-turbo",
27
- messages=[
28
- {"role": "system", "content": "Wewe ni mtaalamu wa viazi lishe, utajibu maswali yote kwa kiswahili"},
29
- {"role": "user", "content": "Mambo vipi?"},
30
- {"role": "assistant", "content": """Salama je una swali lolote kuhusu viazi lishe?"""},
31
- {"role": "user", "content": "nini maana ya Viazi lishe?"},
32
- {"role": "assistant", "content": """ viazi lishe ni Viazi vitamu vyenye rangi ya karoti kwa ndani ambavyo vina vitamin A kwa wingi"""},
33
- {"role": "user", "content": "nini matumizi ya viazi lishe?"},
34
- {"role": "assistant", "content": """ viazi lishe vinaweza kutengenezea chakula kama Keki,
35
- Maandazi, Kalimati na tambi: Ukisaga unga wa viazi lishe,
36
- unaweza kutumika kupika vyakula ambavyo huwa watu
37
- hutumia unga wa ngano kupika, unga wa viazi lishe una
38
- virutubisho vingi zaidi kuliko unga wa ngano na
39
- ukitumika kupikia vyakula tajwa hapo juu watumiaji
40
- watakuwa wanakula vyakula vyenye virutubisho Zaidi."""},
41
- {"role": "user", "content": transcribed_text},
42
- ]
43
- )
44
- return response['choices'][0]['message']['content']
 
45
 
46
  def inference(text):
47
- output_file = "tts_output.wav"
48
- cmd = ['tts', '--text', text, '--out_path', output_file]
49
- subprocess.run(cmd, check=True)
50
- return output_file
 
51
 
52
  def process_audio_and_respond(audio):
53
- text = transcribe(audio)
54
- response_text = generate_response(text)
55
- output_file = inference(response_text)
56
- return output_file
 
57
 
58
  demo = gr.Interface(
59
- process_audio_and_respond,
60
- gr.inputs.Audio(source="microphone", type="filepath", label="Bofya Kuuliza Swali"),
61
- gr.outputs.Audio(type="filepath", label="Bofya Kusikiliza Jibu"),
62
- title="Uliza Mtaalamu wa Viazi Lishe",
63
- description="Je ungependa Kujua nini kuhusu viazi Lishe?",
64
- theme="compact",
65
- layout="vertical",
66
- allow_flagging=False,
67
- live=True,
68
  )
69
 
70
- demo.launch()
 
 
3
  import openai
4
  import gradio as gr
5
 
 
6
 
7
+ import os
8
 
9
+ openai.api_key = os.getenv("OPENAI_API_KEY")
 
10
 
 
 
 
 
 
11
 
12
  def transcribe(audio):
13
+ with open(audio, "rb") as audio_file:
14
+ transcript = openai.Audio.transcribe("whisper-1", audio_file)
15
+ return transcript["text"]
16
+
17
 
18
  def generate_response(transcribed_text):
19
+ response = openai.ChatCompletion.create(
20
+ model="gpt-3.5-turbo",
21
+ messages=[
22
+ {"role": "system", "content": "Wewe ni mtaalamu wa viazi lishe na utajibu maswali yote kwa kiswahili tu!"},
23
+ {"role": "user", "content": "Mambo vipi?"},
24
+ {"role": "assistant", "content": """Salama je una swali lolote kuhusu viazi lishe?"""},
25
+ {"role": "user", "content": "nini maana ya Viazi lishe?"},
26
+ {"role": "assistant", "content": """ viazi lishe ni Viazi vitamu vyenye rangi ya karoti kwa ndani ambavyo vina vitamin A kwa wingi"""},
27
+ {"role": "user", "content": "nini matumizi ya viazi lishe?"},
28
+ {"role": "assistant", "content": """ viazi lishe vinaweza kutengenezea chakula kama Keki,
29
+ Maandazi, Kalimati na tambi: Ukisaga unga wa viazi lishe,
30
+ unaweza kutumika kupika vyakula ambavyo huwa watu
31
+ hutumia unga wa ngano kupika, unga wa viazi lishe una
32
+ virutubisho vingi zaidi kuliko unga wa ngano na
33
+ ukitumika kupikia vyakula tajwa hapo juu watumiaji
34
+ watakuwa wanakula vyakula vyenye virutubisho Zaidi."""},
35
+ {"role": "user", "content": transcribed_text},
36
+ ]
37
+ )
38
+ return response['choices'][0]['message']['content']
39
+
40
 
41
  def inference(text):
42
+ output_file = "tts_output.wav"
43
+ cmd = ['tts', '--text', text, '--out_path', output_file]
44
+ subprocess.run(cmd, check=True)
45
+ return output_file
46
+
47
 
48
  def process_audio_and_respond(audio):
49
+ text = transcribe(audio)
50
+ response_text = generate_response(text)
51
+ output_file = inference(response_text)
52
+ return response_text, output_file
53
+
54
 
55
  demo = gr.Interface(
56
+ process_audio_and_respond,
57
+ gr.inputs.Audio(source="microphone", type="filepath", label="Bonyeza kitufe cha kurekodi na uliza swali lako"),
58
+ [gr.outputs.Textbox(label="Jibu (kwa njia ya maandishi)"), gr.outputs.Audio(type="filepath", label="Jibu kwa njia ya sauti (Bofya kusikiliza Jibu)")],
59
+ title="Mtaalamu wa Viazi Lishe",
60
+ description="Uliza Mtaalamu wetu swali lolote Kuhusu viazi Lishe",
61
+ theme="compact",
62
+ layout="vertical",
63
+ allow_flagging=False,
64
+ live=True,
65
  )
66
 
67
+
68
+ demo.launch(share = True)