Nocigar commited on
Commit
e137245
·
verified ·
1 Parent(s): c09dbef

Update audio_text.py

Browse files
Files changed (1) hide show
  1. 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)