import streamlit as st import requests # Function to send the audio file to the Hugging Face Whisper API def query(file_data, my_key): API_URL = "https://api-inference.huggingface.co/models/openai/whisper-large-v3-turbo" headers = {"Authorization": f"Bearer {my_key}"} try: response = requests.post(API_URL, headers=headers, files={'file': file_data}) return response.json() except requests.exceptions.RequestException as e: return {"error": str(e)} # Streamlit UI elements st.title("Whisper Transcription App") st.write("Upload a .wav, .mp3, or .flac audio file, and get the transcription.") # Get the user's Hugging Face API key my_key = st.text_input('Enter your Hugging Face API Key', type='password') # File uploader for audio files uploaded = st.file_uploader("Choose an audio file", type=["mp3", "wav", "flac"], accept_multiple_files=True) if my_key: # Proceed only if the API key is provided API_URL = "https://api-inference.huggingface.co/models/openai/whisper-large-v3-turbo" headers = {"Authorization": f"Bearer {my_key}"} def query(filename): filename = list(uploaded.keys())[0] # Get the uploaded file's nameprint("Uploaded filename:", filename) with open(filename, "rb") as f: data = f.read() response = requests.post(API_URL, headers=headers, data=data) return response.json() results = {} for filename, file_data in uploaded.items(): # Save the file locally with open(filename, "wb") as f: f.write(file_data) print(f"Sending {filename} to API...") output = query(filename) # Store the result results[filename] = output # Step 3: Print results for file, result in results.items(): st.write(f"\nResults for {file}:\n{result}")