Spaces:
Runtime error
Runtime error
| from openai import OpenAI | |
| import streamlit as st | |
| def audio_transcription(api_key, audio_file): | |
| api_key = api_key | |
| base_url = "https://api.siliconflow.cn/v1" | |
| client = OpenAI(api_key=api_key, base_url=base_url) | |
| transcription = client.audio.transcriptions.create( | |
| model="FunAudioLLM/SenseVoiceSmall", | |
| file=audio_file | |
| ) | |
| return transcription | |
| def audioText(api_key: str): | |
| if "uploaded_audio" not in st.session_state: | |
| st.session_state.uploaded_audio = None | |
| if "input_audio" not in st.session_state: | |
| st.session_state.input_audio = None | |
| if st.session_state.uploaded_audio == None and st.session_state.input_audio == None: | |
| disable = True | |
| elif st.session_state.uploaded_audio != None and st.session_state.input_audio == None: | |
| disable = False | |
| elif st.session_state.uploaded_audio == None and st.session_state.input_audio != None: | |
| disable = False | |
| audio_uploader = st.file_uploader("Upload an Audio", type=["MP3", "WAV"], key="audio_uploader", disabled=st.session_state.input_audio!=None) | |
| if audio_uploader is not None: | |
| st.session_state.uploaded_audio = audio_uploader | |
| elif audio_uploader is None: | |
| st.session_state.uploaded_audio = None | |
| audio_input = st.audio_input("Record an Audio", key="audio_input", disabled=st.session_state.uploaded_audio!=None) | |
| if audio_input is not None: | |
| st.session_state.input_audio = audio_input | |
| elif audio_input is None: | |
| st.session_state.input_audio = None | |
| transcript_btn = st.button("Transcript", "transcript_btn", type="primary") | |
| transcription_str = "" | |
| if transcript_btn: | |
| if st.session_state.uploaded_audio is not None and st.session_state.input_audio is None: | |
| try: | |
| with st.spinner("Processing..."): | |
| transcription = audio_transcription(api_key, st.session_state.uploaded_audio) | |
| if transcription: | |
| transcription_str = transcription.text | |
| except Exception as e: | |
| st.error(f"Error occured: {e}") | |
| elif st.session_state.uploaded_audio is None and st.session_state.input_audio is not None: | |
| try: | |
| with st.spinner("Processing..."): | |
| transcription = audio_transcription(api_key, st.session_state.input_audio) | |
| if transcription: | |
| transcription_str = transcription.text | |
| except Exception as e: | |
| st.error(f"Error occured: {e}") | |
| elif st.session_state.uploaded_audio is None and st.session_state.input_audio is None: | |
| st.info("Please upload an audio or record an audio!") | |
| if transcription_str: | |
| with st.container(border=True, key="trans_container"): | |
| st.markdown(transcription_str) | |