Jayanths9 commited on
Commit
b0d3f4a
·
verified ·
1 Parent(s): fec92f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -59
app.py CHANGED
@@ -1,60 +1,63 @@
1
- import streamlit as st
2
- from streamlit_webrtc import webrtc_streamer, WebRtcMode, ClientSettings
3
- import av
4
- import numpy as np
5
- import wave
6
- import os
7
-
8
- st.title("Audio Recorder and Uploader")
9
-
10
- # Function to save recorded audio
11
- def save_audio(frames, filename, sample_width, framerate, nchannels):
12
- wf = wave.open(filename, 'wb')
13
- wf.setnchannels(nchannels)
14
- wf.setsampwidth(sample_width)
15
- wf.setframerate(framerate)
16
- wf.writeframes(b''.join(frames))
17
- wf.close()
18
-
19
- # Record audio
20
- if st.button("Start Recording"):
21
- webrtc_ctx = webrtc_streamer(
22
- key="key",
23
- mode=WebRtcMode.SENDONLY,
24
- client_settings=ClientSettings(
25
- rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]},
26
- media_stream_constraints={"audio": True, "video": False},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  ),
28
- audio_receiver_size=1024,
29
- )
30
-
31
- if webrtc_ctx.audio_receiver:
32
- frames = []
33
- sample_width = 2
34
- framerate = 44100
35
- nchannels = 1
36
-
37
- while True:
38
- try:
39
- audio_frames = webrtc_ctx.audio_receiver.get_frames(timeout=1)
40
- for frame in audio_frames:
41
- sound_chunk = np.frombuffer(frame.to_ndarray(), dtype=np.int16)
42
- frames.append(sound_chunk.tobytes())
43
- except av.error.BlockingIOError:
44
- break
45
-
46
- filename = "recorded_audio.wav"
47
- save_audio(frames, filename, sample_width, framerate, nchannels)
48
- st.audio(filename, format='audio/wav')
49
-
50
- # Upload audio
51
- uploaded_file = st.file_uploader("Upload an audio file", type=["wav", "mp3"])
52
-
53
- if uploaded_file is not None:
54
- st.audio(uploaded_file, format='audio/wav')
55
- file_details = {"filename": uploaded_file.name, "filetype": uploaded_file.type,
56
- "filesize": uploaded_file.size}
57
- st.write(file_details)
58
- with open(os.path.join("uploads", uploaded_file.name), "wb") as f:
59
- f.write(uploaded_file.getbuffer())
60
- st.success("File uploaded successfully")
 
1
+ import gradio as gr
2
+ from huggingface_hub import InferenceClient
3
+
4
+ """
5
+ For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
6
+ """
7
+ client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
8
+
9
+
10
+ def respond(
11
+ message,
12
+ history: list[tuple[str, str]],
13
+ system_message,
14
+ max_tokens,
15
+ temperature,
16
+ top_p,
17
+ ):
18
+ messages = [{"role": "system", "content": system_message}]
19
+
20
+ for val in history:
21
+ if val[0]:
22
+ messages.append({"role": "user", "content": val[0]})
23
+ if val[1]:
24
+ messages.append({"role": "assistant", "content": val[1]})
25
+
26
+ messages.append({"role": "user", "content": message})
27
+
28
+ response = ""
29
+
30
+ for message in client.chat_completion(
31
+ messages,
32
+ max_tokens=max_tokens,
33
+ stream=True,
34
+ temperature=temperature,
35
+ top_p=top_p,
36
+ ):
37
+ token = message.choices[0].delta.content
38
+
39
+ response += token
40
+ yield response
41
+
42
+ """
43
+ For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
44
+ """
45
+ demo = gr.ChatInterface(
46
+ respond,
47
+ additional_inputs=[
48
+ gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
49
+ gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
50
+ gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
51
+ gr.Slider(
52
+ minimum=0.1,
53
+ maximum=1.0,
54
+ value=0.95,
55
+ step=0.05,
56
+ label="Top-p (nucleus sampling)",
57
  ),
58
+ ],
59
+ )
60
+
61
+
62
+ if __name__ == "__main__":
63
+ demo.launch()