Spaces:
Running
Running
Update audio_text.py
Browse files- audio_text.py +66 -69
audio_text.py
CHANGED
@@ -1,69 +1,66 @@
|
|
1 |
-
from openai import OpenAI
|
2 |
-
import streamlit as st
|
3 |
-
|
4 |
-
def audio_transcription(api_key, audio_file):
|
5 |
-
api_key = api_key
|
6 |
-
base_url = "https://api.siliconflow.cn/v1"
|
7 |
-
client = OpenAI(api_key=api_key, base_url=base_url)
|
8 |
-
|
9 |
-
transcription = client.audio.transcriptions.create(
|
10 |
-
model="FunAudioLLM/SenseVoiceSmall",
|
11 |
-
file=audio_file
|
12 |
-
)
|
13 |
-
|
14 |
-
return transcription
|
15 |
-
|
16 |
-
def audioText(api_key: str):
|
17 |
-
if "uploaded_audio" not in st.session_state:
|
18 |
-
st.session_state.uploaded_audio = None
|
19 |
-
if "input_audio" not in st.session_state:
|
20 |
-
st.session_state.input_audio = None
|
21 |
-
|
22 |
-
if st.session_state.uploaded_audio == None and st.session_state.input_audio == None:
|
23 |
-
disable = True
|
24 |
-
elif st.session_state.uploaded_audio != None and st.session_state.input_audio == None:
|
25 |
-
disable = False
|
26 |
-
elif st.session_state.uploaded_audio == None and st.session_state.input_audio != None:
|
27 |
-
disable = False
|
28 |
-
|
29 |
-
audio_uploader = st.file_uploader("Upload an Audio", type=["MP3", "WAV"], key="audio_uploader", disabled=st.session_state.input_audio!=None)
|
30 |
-
if audio_uploader is not None:
|
31 |
-
st.session_state.uploaded_audio = audio_uploader
|
32 |
-
elif audio_uploader is None:
|
33 |
-
st.session_state.uploaded_audio = None
|
34 |
-
audio_input = st.audio_input("Record an Audio", key="audio_input", disabled=st.session_state.uploaded_audio!=None)
|
35 |
-
if audio_input is not None:
|
36 |
-
st.session_state.input_audio = audio_input
|
37 |
-
elif audio_input is None:
|
38 |
-
st.session_state.input_audio = None
|
39 |
-
|
40 |
-
transcript_btn = st.button("Transcript", "transcript_btn", type="primary", disabled=disable)
|
41 |
-
|
42 |
-
transcription_str = ""
|
43 |
-
|
44 |
-
if transcript_btn:
|
45 |
-
if st.session_state.uploaded_audio is not None and st.session_state.input_audio is None:
|
46 |
-
try:
|
47 |
-
with st.spinner("Processing..."):
|
48 |
-
transcription = audio_transcription(api_key, st.session_state.uploaded_audio)
|
49 |
-
if transcription:
|
50 |
-
transcription_str = transcription.text
|
51 |
-
except Exception as e:
|
52 |
-
st.error(f"Error occured: {e}")
|
53 |
-
elif st.session_state.uploaded_audio is None and st.session_state.input_audio is not None:
|
54 |
-
try:
|
55 |
-
with st.spinner("Processing..."):
|
56 |
-
transcription = audio_transcription(api_key, st.session_state.input_audio)
|
57 |
-
if transcription:
|
58 |
-
transcription_str = transcription.text
|
59 |
-
except Exception as e:
|
60 |
-
st.error(f"Error occured: {e}")
|
61 |
-
elif st.session_state.uploaded_audio is None and st.session_state.input_audio is None:
|
62 |
-
st.info("Please upload an audio or record an audio!")
|
63 |
-
|
64 |
-
if transcription_str:
|
65 |
-
with st.container(border=True, key="trans_container"):
|
66 |
-
st.markdown(transcription_str)
|
67 |
-
|
68 |
-
if __name__ == "__main__":
|
69 |
-
audioText("sk-hvnjkojhpyitxfeqwdpynrsacitcvqffprrrzzgrwytpebrf")
|
|
|
1 |
+
from openai import OpenAI
|
2 |
+
import streamlit as st
|
3 |
+
|
4 |
+
def audio_transcription(api_key, audio_file):
|
5 |
+
api_key = api_key
|
6 |
+
base_url = "https://api.siliconflow.cn/v1"
|
7 |
+
client = OpenAI(api_key=api_key, base_url=base_url)
|
8 |
+
|
9 |
+
transcription = client.audio.transcriptions.create(
|
10 |
+
model="FunAudioLLM/SenseVoiceSmall",
|
11 |
+
file=audio_file
|
12 |
+
)
|
13 |
+
|
14 |
+
return transcription
|
15 |
+
|
16 |
+
def audioText(api_key: str):
|
17 |
+
if "uploaded_audio" not in st.session_state:
|
18 |
+
st.session_state.uploaded_audio = None
|
19 |
+
if "input_audio" not in st.session_state:
|
20 |
+
st.session_state.input_audio = None
|
21 |
+
|
22 |
+
if st.session_state.uploaded_audio == None and st.session_state.input_audio == None:
|
23 |
+
disable = True
|
24 |
+
elif st.session_state.uploaded_audio != None and st.session_state.input_audio == None:
|
25 |
+
disable = False
|
26 |
+
elif st.session_state.uploaded_audio == None and st.session_state.input_audio != None:
|
27 |
+
disable = False
|
28 |
+
|
29 |
+
audio_uploader = st.file_uploader("Upload an Audio", type=["MP3", "WAV"], key="audio_uploader", disabled=st.session_state.input_audio!=None)
|
30 |
+
if audio_uploader is not None:
|
31 |
+
st.session_state.uploaded_audio = audio_uploader
|
32 |
+
elif audio_uploader is None:
|
33 |
+
st.session_state.uploaded_audio = None
|
34 |
+
audio_input = st.audio_input("Record an Audio", key="audio_input", disabled=st.session_state.uploaded_audio!=None)
|
35 |
+
if audio_input is not None:
|
36 |
+
st.session_state.input_audio = audio_input
|
37 |
+
elif audio_input is None:
|
38 |
+
st.session_state.input_audio = None
|
39 |
+
|
40 |
+
transcript_btn = st.button("Transcript", "transcript_btn", type="primary", disabled=disable)
|
41 |
+
|
42 |
+
transcription_str = ""
|
43 |
+
|
44 |
+
if transcript_btn:
|
45 |
+
if st.session_state.uploaded_audio is not None and st.session_state.input_audio is None:
|
46 |
+
try:
|
47 |
+
with st.spinner("Processing..."):
|
48 |
+
transcription = audio_transcription(api_key, st.session_state.uploaded_audio)
|
49 |
+
if transcription:
|
50 |
+
transcription_str = transcription.text
|
51 |
+
except Exception as e:
|
52 |
+
st.error(f"Error occured: {e}")
|
53 |
+
elif st.session_state.uploaded_audio is None and st.session_state.input_audio is not None:
|
54 |
+
try:
|
55 |
+
with st.spinner("Processing..."):
|
56 |
+
transcription = audio_transcription(api_key, st.session_state.input_audio)
|
57 |
+
if transcription:
|
58 |
+
transcription_str = transcription.text
|
59 |
+
except Exception as e:
|
60 |
+
st.error(f"Error occured: {e}")
|
61 |
+
elif st.session_state.uploaded_audio is None and st.session_state.input_audio is None:
|
62 |
+
st.info("Please upload an audio or record an audio!")
|
63 |
+
|
64 |
+
if transcription_str:
|
65 |
+
with st.container(border=True, key="trans_container"):
|
66 |
+
st.markdown(transcription_str)
|
|
|
|
|
|